فهرست مطالب:

چگونه بلاک چین در واقع کار می کند
چگونه بلاک چین در واقع کار می کند

تصویری: چگونه بلاک چین در واقع کار می کند

تصویری: چگونه بلاک چین در واقع کار می کند
تصویری: جاسوسان: CIA و KGB | جنگ سرد (1944-1994) 21 از 24 2024, ممکن است
Anonim

این پست قصد دارد به همه بگوید چرا بلاک چین اختراع شد، ارزهای دیجیتال چگونه کار می کنند و چرا از نظر منطق زیباترین سیستم در سال های اخیر است.

فوراً به شما هشدار می دهم که در زیر برش یک صفحه متن بزرگ وجود دارد و اگر آماده نیستید یک بار برای همیشه سؤال در مورد ارزهای دیجیتال را ببندید، همین الان یک ورودی به موارد دلخواه خود اضافه کنید و زمان رزرو کنید)

بلاک چین یک فناوری است، جدید، عجیب، غیرقابل درک، اما به نظر می رسد برخلاف این داستان های شما، دنیا را تغییر می دهد. ظاهراً او مدت زیادی است که با ما است.

این پست طوری نوشته شده که انگار به افرادی گفته می شود که خیلی از کامپیوتر دور هستند و آنها را فقط سطحی می شناسند، مثلا تصور کنید برای پدر و مادر شما آماده می شود. من حتی می توانم آن را برای همنوعان علوم انسانی ام پرتاب کنم و مطمئن باشم که آنها متوجه خواهند شد.

و اولگ به همه ما در این موضوع دشوار کمک خواهد کرد. ملاقات!

اگر اولگ را دوست نداری، او را بیرون خواهم کرد.

اصول اولیه: چرا به بلاک چین نیاز داریم؟

بلاک چین در مقاله ساتوشی ناکاموتو «بیت کوین: یک سیستم نقدی الکترونیکی همتا به همتا» توضیح داده شده است. در آنجا، نویسنده تنها در هشت صفحه، اصول اولیه ارز دیجیتال بیت کوین را که بر اساس الگوریتم بلاک چین بود، توضیح داد.

لیستی که قابل تغییر نیست

بلاک چین - زنجیره ای از بلوک ها یا به عبارت دیگر یک لیست پیوندی. در چنین فهرستی، هر رکورد بعدی به یک رکورد قبلی اشاره دارد و به همین ترتیب در زنجیره تا اولین رکورد. مانند واگن های قطار، هر کدام واگن بعدی را می کشاند. در مورد لیست ها، مقاله خوبی از نیکیتا لیخاچف در TJ وجود دارد که در آن برای افراد کاملاً تازه کار توضیح داده شده است. قیاس ها تا حدی از آنجا گرفته شده است.

بیایید یک مثال بزنیم

دوستان اولگ مدام از او پول قرض می کنند. اولگ مهربان است، اما به شدت فراموشکار است. یک هفته بعد او دیگر به یاد نمی آورد که چه کسی بدهی را به او پس نداده است، اما خجالت می کشد از همه در مورد آن بپرسد. بنابراین، یک روز تصمیم گرفت با ایجاد لیستی از دوستان روی تخته سیاه خانه خود که از آنها پول قرض کرده بود، به این موضوع پایان دهد.

اکنون اولگ همیشه می تواند به هیئت مدیره برود و مطمئن شود که مکس همه چیز را پس داده است ، اما وانیا قبلاً 700 روبل نمی دهد. یک روز اولگ از وانیا دعوت می کند تا در خانه اش نوشیدنی بنوشد. در حالی که اولگ در حال رفتن به توالت است، وانیا ورودی "من 200 روبل برای وانیا قرض گرفتم" را پاک می کند و به جای آن می نویسد "وانیا 500 روبل داد".

اولگ که به لیست خود اعتماد داشت، بدهی را فراموش می کند و 700 روبل از دست می دهد. او تصمیم می گیرد به نوعی با آن مبارزه کند. سال گذشته، اولگ در یک دوره برنامه نویسی شرکت کرد، جایی که به او در مورد هش گفته شد. او به خاطر می‌آورد که هر رشته‌ای را می‌توان به مجموعه‌ای از کاراکترهای بدون ابهام تبدیل کرد - یک هش، و تغییر هر کاراکتر در رشته آن را کاملاً تغییر می‌دهد.

افزودن یک نقطه در پایان، هش نهایی را غیرقابل تشخیص تغییر داد - می توانید از آن استفاده کنید.

اولگ هش معروف SHA-256 را می گیرد و هر رکورد را با آن هش می کند و در پایان نتیجه را اضافه می کند. اکنون اولگ می تواند با هش کردن مجدد رکوردهای او و مقایسه آنها با رکوردهای سبز مطمئن شود که هیچکس رکوردهای او را تغییر نداده است.

اما EVIL IVAN نحوه استفاده از SHA-256 را نیز می داند و به راحتی می تواند ورودی را به همراه هش خود تغییر دهد. به خصوص اگر هش درست در کنار آن روی برد نوشته شده باشد.

بنابراین، برای امنیت بیشتر، اولگ تصمیم می گیرد نه تنها خود رکورد را هش کند، بلکه آن را به همراه هش رکورد قبلی اضافه کند. اکنون تمام ورودی های زیر به موارد قبلی بستگی دارد. اگر حداقل یک خط را تغییر دهید، باید هش همه خطوط دیگر زیر در لیست را دوباره محاسبه کنید.

اما یک روز ایوان شبانه یواشکی می آید، ورودی مورد نیاز خود را تغییر می دهد و هش ها را برای کل لیست تا انتها به روز می کند. چند ساعت طول می کشد، اما اولگ هنوز در خواب عمیق است و نمی تواند بشنود. در صبح، اولگ یک لیست کاملاً صحیح را کشف می کند - همه هش ها مطابقت دارند. اما ایوان به هر حال او را فریب داد، اگرچه یک شب بی خوابی را در آن گذراند. چگونه می توانید از خود در برابر شب ایوان محافظت کنید؟

اولگ تصمیم می گیرد به نحوی زندگی خود را پیچیده کند. اکنون، برای افزودن یک ورودی جدید به لیست، اولگ یک مسئله پیچیده مرتبط با آن، به عنوان مثال، یک معادله ریاضی را حل می کند. او پاسخ را به هش نهایی اضافه می کند.

اولگ در ریاضیات خوب است، اما حتی ده دقیقه طول می کشد تا یک ورودی اضافه کنید. با وجود این، زمان صرف شده ارزشش را دارد، زیرا اگر ایوان بخواهد دوباره چیزی را تغییر دهد، باید معادلات هر ردیف را دوباره حل کند و می تواند ده ها مورد باشد. این کار زمان زیادی می برد، زیرا معادلات هر بار منحصر به فرد هستند و با یک رکورد خاص مرتبط هستند.

اما بررسی لیست به همین سادگی است: ابتدا باید هش ها را مانند قبل مقایسه کنید و سپس حل معادلات را با جایگزینی ساده بررسی کنید. اگر همه چیز همگرا باشد، لیست تغییر نمی کند.

در واقعیت، همه چیز با معادلات چندان خوب نیست: رایانه‌ها آنها را خیلی خوب حل می‌کنند، و این همه معادله منحصر به فرد را در کجا ذخیره می‌کنند. بنابراین، نویسندگان بلاک چین با مشکل زیباتری مواجه شدند: شما باید چنین عددی (غیر) را پیدا کنید تا هش نهایی کل رکورد با 10 صفر شروع شود. یافتن چنین چیزی دشوار است، اما همیشه می توان نتیجه را فقط با چشم بررسی کرد.

اکنون Oleg تمام هش ها را تأیید می کند و علاوه بر این مطمئن می شود که هر کدام با تعداد مشخص شده صفر شروع می شوند. ایوان حیله گر، حتی مجهز به یک لپ تاپ قدرتمند، فرصتی برای محاسبه مجدد همه هش ها در یک شب نخواهد داشت تا شرایط را برآورده کنند - زمان کافی وجود نخواهد داشت.

چنین فهرستی در واقع همان بلاک چین خانگی است. ایمنی آن توسط ریاضیدانان تضمین شده است، که ثابت کردند این هش ها را نمی توان به نحوی سریعتر محاسبه کرد، مگر با نیروی بی رحم. چنین شمارش هش برای هر رکورد استخراج است، که امروز در مورد آن بسیار و با جزئیات وجود خواهد داشت.

تمرکز اعتماد

دوستان ما از ایده نگه داشتن یک لیست جعلی از "چه کسی چه کسی را قرض گرفته" خوششان آمد. آنها همچنین نمی خواهند به خاطر بیاورند که چه کسی برای چه کسی در بار پرداخت و هنوز چقدر بدهکار است - همه چیز روی دیوار نوشته شده است. شما در مورد این ایده بحث کردید و تصمیم گرفتید که اکنون به یک لیست واحد برای همه نیاز دارید.

اما دفترداری چنین مهمی به چه کسی باید سپرده شود؟ به هر حال، وقتی صحبت از پول می شود، اعتماد مطرح می شود. ما برای حفظ پول خود به ناشناخته اعتماد نخواهیم کرد. برای این کار، اجداد ما بانک‌هایی را اختراع کردند که به مرور زمان مورد اعتماد قرار گرفتند، زیرا پشتوانه آنها مجوز، قوانین و بیمه بانک مرکزی است.

در دایره دوستان همه به یکدیگر اعتماد دارند و شما به سادگی می توانید مسئولیت پذیرترین را برای این نقش انتخاب کنید. اما اگر سوال در مورد غریبه ها باشد چه؟ کل یک شهر، کشور یا کل جهان، همانطور که در مورد بیت کوین وجود دارد؟ به طور کلی، هیچ کس نمی تواند در آنجا به کسی اعتماد کند.

عدم تمرکز: هیچکس به کسی اعتماد ندارد

بنابراین آنها به یک رویکرد جایگزین رسیدند: یک کپی از لیست را برای همه نگه دارید. بنابراین، یک مهاجم نه تنها باید یک لیست را بازنویسی کند، بلکه باید به هر خانه وارد شود و لیست ها را در آنجا بازنویسی کند. و بعد معلوم می شود که شخصی چندین لیست را در خانه نگه داشته است که هیچ کس از آنها خبر نداشت. این عدم تمرکز است.

نقطه ضعف این روش این است که برای ایجاد ورودی های جدید، باید با سایر شرکت کنندگان تماس بگیرید و هر یک از آنها را از آخرین تغییرات مطلع کنید. اما اگر این شرکت کنندگان ماشین های بی روح باشند، دیگر مشکلی وجود ندارد.

در چنین نظامی، هیچ نقطه اعتماد واحدی وجود ندارد و از این رو امکان رشوه و تقلب وجود دارد. همه شرکت کنندگان در سیستم طبق یک قانون عمل می کنند: هیچ کس به کسی اعتماد نمی کند. همه فقط اطلاعاتی را که در اختیار دارند باور می کنند. این قانون اصلی هر شبکه غیرمتمرکز است.

معاملات

هنگام خرید گلدان در فروشگاه، کد پین کارت خود را وارد می‌کنید و به فروشگاه اجازه می‌دهد از بانک بپرسد که آیا 35 روبل در حساب خود دارید یا خیر. به عبارت دیگر، شما یک تراکنش به مبلغ 35 روبل را با کد پین خود امضا می کنید که بانک آن را تأیید یا رد می کند.

سوابق ما از نوع "من وانیا 500 روبل قرض گرفتم" نیز معاملات است. اما ما بانکی نداریم که به نویسنده تراکنش ها اجازه دهد. چگونه می توانیم بررسی کنیم که ایوان بی سر و صدا عبارت "Max به اولگ 100500 روبل بدهکار است" را اضافه نکرده است؟

بلاک چین از مکانیسم کلیدهای عمومی و خصوصی برای این کار استفاده می کند؛ متخصصان فناوری اطلاعات مدت هاست که از آنها برای مجوز در همان SSH استفاده می کنند. در پست "امنیت، رمزگذاری، سایبرپانک" در قسمت "معرفی رمزگذاری" روی انگشتانم توضیح دادم.

به طور خلاصه در مورد نحوه عملکرد این ریاضیات پیچیده اما زیبا: شما یک جفت اعداد اول بلند را در رایانه خود ایجاد می کنید - یک کلید عمومی و یک کلید خصوصی. کلید خصوصی فوق سری در نظر گرفته می شود زیرا می تواند آنچه را که در عموم رمزگذاری شده است رمزگشایی کند.

اما برعکس آن نیز کار می کند. اگر کلید عمومی را با همه دوستان خود به اشتراک بگذارید، آنها می توانند هر پیامی را برای آنها رمزگذاری کنند تا فقط شما بتوانید آن را بخوانید، زیرا شما صاحب کلید خصوصی هستید.

اما علاوه بر این، کلید عمومی تأثیر مفیدی دارد - با آن می توانید بررسی کنید که داده ها با کلید خصوصی شما رمزگذاری شده اند، بدون اینکه خود داده ها را رمزگشایی کنید. همه این ویژگی ها در «کتاب رمزها» به خوبی توضیح داده شده است.

ما در یک اینترنت غیرمتمرکز هستیم که در آن نمی توان به کسی اعتماد کرد. تراکنش با یک کلید خصوصی امضا می شود و همراه با کلید عمومی به یک ذخیره سازی ویژه ارسال می شود - مجموعه ای از تراکنش های تایید نشده. بنابراین هر عضوی از شبکه می‌تواند تأیید کند که این شما هستید که آن را راه‌اندازی کرده‌اید، نه شخص دیگری که بخواهد با پول شما پرداخت کند.

این امر باز بودن و امنیت شبکه را تضمین می کند. اگر بانک‌های قبلی مسئول این کار بودند، پس در بلاک چین، ریاضیدانان مسئول این کار هستند.

برای کاربران عادی که نمی خواهند بفهمند چگونه کلیدهای خصوصی را صادر و ذخیره کنند، خدمات کیف پول آنلاین کمک خواهد کرد. برای کپی کلیدهای عمومی طولانی، کدهای QR مناسب در آنجا ساخته می شوند. به عنوان مثال کیف پول بلاک چین، زیرا دارای یک برنامه کاربردی تلفن همراه مناسب است و از دو ارز دیجیتال اصلی - BTC و ETH پشتیبانی می کند.

فقدان مفهوم "تعادل"

مانند هیئت مدیره ما، بلاک چین اساساً فقط از تاریخچه تراکنش تشکیل شده است. موجودی هر کیف پول را ذخیره نمی کند، در غیر این صورت باید روش های حفاظتی بیشتری ابداع کنیم.

فقط کلید خصوصی مالکیت کیف پول را تایید می کند. اما چگونه سایر اعضای شبکه می توانند مطمئن شوند که من پول کافی برای خرید دارم؟

از آنجایی که ما تعادل نداریم، باید آن را ثابت کنید. بنابراین، یک تراکنش زنجیره بلوکی نه تنها شامل امضای شما و مقداری که می‌خواهید خرج کنید، می‌شود، بلکه پیوندهایی به تراکنش‌های قبلی که در آن مقدار پول مورد نیاز را دریافت کرده‌اید، نیز شامل می‌شود.

یعنی اگر می‌خواهید 400 روبل خرج کنید، کل تاریخچه درآمد و هزینه‌های خود را مرور می‌کنید و درآمدهایی را که 100 + 250 + 50 روبل به شما داده شده است را به تراکنش خود متصل می‌کنید و بدین ترتیب ثابت می‌کنید که این 400 روبل را دارید.

هر یک از اعضای شبکه یک بار دیگر مطمئن می شود که دو بار درآمد را ضمیمه نکرده اید. اون 300 روبلی که مکس هفته پیش داد واقعا هنوز خرج نکردی.

چنین درآمدهایی که به یک تراکنش متصل می شوند، ورودی در بلاک چین نامیده می شوند و به همه دریافت کنندگان پول، خروجی می گویند. مجموع همه ورودی‌ها به ندرت دقیقاً همان چیزی است که می‌خواهید در یک زمان انتقال دهید - بنابراین، یکی از خروجی‌ها اغلب خودتان خواهید بود. به عبارت دیگر، تراکنش در بلاک چین به نظر می رسد "به من 3 و 2 بیت کوین داده شده است، می خواهم 4 بیت کوین را از آنها منتقل کنم و 1 بیت کوین باقی مانده را برگردانم."

زیبایی بلاک چین این است که ورودی ها نباید از یک کیف پول وارد شوند. پس از همه، فقط کلید بررسی می شود. اگر کلید خصوصی همه ورودی ها را می دانید، می توانید به راحتی آنها را به تراکنش خود متصل کنید و با این پول پرداخت کنید. انگار در یک سوپرمارکت با چندین کارت که پین کد را از آن ها می دانید پرداخت می کنید.

با این حال، اگر کلید خصوصی خود را گم کنید، دیسک شما بمیرد یا لپ تاپ شما دزدیده شود، بیت کوین های شما برای همیشه از دست خواهند رفت. هیچ کس نمی تواند از آنها به عنوان ورودی برای تراکنش های جدید استفاده کند.

این مقدار برای همیشه برای کل جهان غیرقابل دسترسی خواهد بود - گویی یک بسته اسکناس را می سوزانید. هیچ بانکی وجود ندارد که بتوانید با یک کپی از پاسپورت خود درخواست بنویسید و او آن را چاپ کند. این امر مستلزم انتشار اضافی بیت کوین های جدید "از هوای رقیق" است.

مشکل خرج کردن مضاعف

در بالا گفتم که تراکنش ها به یک "پول تراکنش های تایید نشده" ویژه اضافه می شوند. چرا ما به نوعی موجودیت واسطه نیاز داریم، اگر در واقع معاملات امضا شده آماده ای داریم؟ چرا آنها را مستقیماً در بلاک چین نمی نویسید؟

زیرا سیگنال ها از نقطه A به نقطه B همیشه با تاخیر پیش می روند. دو تراکنش می توانند راه های کاملا متفاوتی داشته باشند. و تراکنشی که ابتدا شروع شد می تواند بعداً به گیرنده برسد، زیرا مسیر طولانی تری را طی کرد.

این منجر به خرج مضاعف می شود، زمانی که همان پول به طور همزمان برای دو مخاطب ارسال می شود، که آنها حتی در مورد آن حدس نمی زنند. این برای این نیست که صورتحساب ها را دستی به دست دیگر تحویل دهیم.

برای یک شبکه غیرمتمرکز که در آن هیچ کس قابل اعتماد نیست، این مشکل به ویژه حاد است. در اینجا نحوه اطمینان از اینکه یک تراکنش قطعاً قبل از دیگری بوده است، آمده است؟ از فرستنده بخواهید زمان ارسال را به آن بدوزد، درست است؟ اما به یاد داشته باشید - شما نمی توانید به کسی اعتماد کنید، حتی به فرستنده.

زمان در همه رایانه ها لزوماً متفاوت است و هیچ راه تضمینی برای همگام سازی آنها وجود ندارد. یک کپی از بلاک چین در هر رایانه ای در شبکه ذخیره می شود و هر شرکت کننده فقط به آن اعتماد دارد.

چگونه می توانید مطمئن شوید که یک تراکنش زودتر از دیگری انجام شده است؟

پاسخ ساده است: غیرممکن است. هیچ راهی برای تایید زمان تراکنش در یک شبکه غیرمتمرکز وجود ندارد. و راه حل این مشکل سومین ایده مهم بلاک چین است که ساتوشی ابداع کرد و به طرز عجیبی دقیقاً به نام او نوشته شده است - بلاک ها.

بلوک ها ستون فقرات بلاک چین هستند

هر کامپیوتری که در شبکه کار می‌کند، تراکنش‌هایی را که دوست دارد از مجموعه عمومی انتخاب می‌کند. معمولاً فقط برای بالاترین کمیسیونی که می تواند از آن کسب کند. بنابراین او تراکنش ها را تا زمانی که کل حجم آنها به حد مذاکره برسد جمع آوری می کند. در بیت کوین، این محدودیت اندازه بلوک 1 مگابایت است (پس از SegWit2x، 2 مگابایت خواهد بود)، و در بیت کوین کش - 8 مگابایت.

کل بلاک چین اساساً فهرستی از چنین بلوک هایی است که هر کدام به بلوک قبلی اشاره دارد. می توان از آن برای ردیابی هر تراکنش در کل تاریخ استفاده کرد و بلاک چین را حتی تا اولین رکورد باز کرد.

این لیست است که اکنون صدها گیگابایت وزن دارد و باید به طور کامل برای همه رایانه هایی که می خواهند در شبکه شرکت کنند بارگیری شود (اما این برای ایجاد تراکنش ها و انتقال پول به سادگی ضروری نیست). از نزدیکترین کامپیوترهای شبکه به همین صورت دانلود می شود، مثل اینکه در حال دانلود سریال از تورنت هستید، هر 10 دقیقه فقط قسمت های جدید جدید در آن منتشر می شود.

با تایپ تراکنش‌ها از استخر برای خود، رایانه شروع به تهیه فهرست غیرقابل جعل از آنها می‌کند که در ابتدای پست روی تابلوی خانه انجام دادیم.

فقط او آن را به شکل درخت می سازد - رکوردها را به صورت جفت هش می کند، سپس نتیجه دوباره به صورت جفت می شود و به همین ترتیب تا زمانی که فقط یک هش باقی بماند - ریشه درخت که به بلوک اضافه می شود. چرا دقیقاً با یک درخت - من پاسخی را پیدا نکردم، اما گمان می کنم که به این ترتیب سریعتر است. بیشتر در ویکی بخوانید: درخت مرکل.

از آنجایی که بلاک چین فعلی قبلاً دانلود شده است، رایانه ما دقیقاً می داند آخرین بلوک در آن چیست. او فقط باید یک پیوند به آن در هدر بلوک اضافه کند، همه آن را هش کند و به همه رایانه‌های دیگر در شبکه بگوید: «ببینید، من یک بلوک جدید ساختم، بیایید آن را به زنجیره بلوک خود اضافه کنیم».

بقیه باید بررسی کنند که بلوک طبق تمام قوانین ساخته شده باشد و تراکنش های غیر ضروری را در آنجا اضافه نکرده باشیم و سپس آنها را به زنجیره های خود اضافه کنیم. حالا همه تراکنش ها در آن تایید شده است، بلاک چین یک بلاک افزایش یافته و همه چیز به خوبی پیش می رود، اینطور نیست؟

اما نه. هزاران رایانه به طور همزمان روی شبکه کار می کنند و به محض اینکه یک بلوک جدید را جمع آوری می کنند، تقریباً به طور همزمان عجله می کنند تا به همه اطلاع دهند که ابتدا بلوک آنها ایجاد شده است. و از بخش قبل، ما قبلاً می دانیم که در یک شبکه غیرمتمرکز نمی توان ثابت کرد که واقعاً چه کسی اولین بوده است.

همانطور که در مدرسه، زمانی که همه در حال حل یک تست دشوار بودند، به ندرت اتفاق می افتاد که حتی دانش آموزان ممتاز پاسخ ها را همزمان بگیرند.

اما اگر برای شخصی کار دشواری است که تعطیلات را طوری برنامه ریزی کند که در تعطیلات ماه مه بگذرد و بلیط های دریا ارزان باشد، برای یک رایانه اضافه کردن چنین عددی (غیر) به انتهای آن است. بلوک کنید تا در نتیجه، هش SHA-256 برای کل بلوک، مثلاً 10 صفر شروع شود. این مشکلی است که باید حل شود تا بلاکی به شبکه بیت کوین اضافه شود. برای شبکه های دیگر، وظایف ممکن است متفاوت باشد.

بنابراین به مفهوم ماینینگ می رسیم که در سال های اخیر همه به آن علاقه زیادی داشته اند.

معدن

استخراج بیت کوین نوعی مراسم مقدس نیست. ماینینگ به معنای یافتن بیت کوین های جدید در جایی در اعماق اینترنت نیست. ماینینگ زمانی است که هزاران کامپیوتر در سرتاسر جهان در زیرزمین‌ها وزوز می‌کنند، میلیون‌ها عدد در ثانیه را مرور می‌کنند و سعی می‌کنند هشی را پیدا کنند که با 10 صفر شروع می‌شود. آنها حتی برای انجام این کار نیازی به آنلاین بودن ندارند.

کارت های ویدئویی با صدها هسته موازی این مشکل را سریعتر از هر CPU حل می کنند.

چرا دقیقا 10 صفر؟ و به همین ترتیب، معنی ندارد. بنابراین ساتوشی به این نتیجه رسید. زیرا این یکی از آن مشکلاتی است که همیشه راه حلی برای آن وجود دارد، اما مطمئناً نمی توان آن را سریعتر از شمارش طولانی و یکنواخت گزینه ها پیدا کرد.

پیچیدگی استخراج مستقیماً به اندازه شبکه، یعنی قدرت کل آن بستگی دارد. اگر بلاک چین خود را بسازید و خودتان آن را در خانه روی دو لپ‌تاپ اجرا کنید، کار باید ساده‌تر باشد. به عنوان مثال، به طوری که هش تنها با یک صفر شروع شود، یا به طوری که مجموع ارقام زوج برابر با مجموع ارقام فرد باشد.

چندین دهه طول می کشد تا یک کامپیوتر هش را پیدا کند که با 10 صفر شروع می شود. اما اگر هزاران کامپیوتر را در یک شبکه ترکیب کنید و به صورت موازی جستجو کنید، طبق نظریه احتمال، این مشکل به طور متوسط در 10 دقیقه حل می شود. این زمانی است که یک بلوک جدید در بلاک چین بیت کوین ظاهر می شود.

هر 8 تا 12 دقیقه یک نفر روی زمین چنین هش را پیدا می کند و این امتیاز را به دست می آورد که کشف خود را به همه اعلام کند و از این طریق از مشکل اینکه چه کسی اولین نفر بوده است جلوگیری می کند.

برای یافتن پاسخ، رایانه (از سال 2017) 12.5 بیت کوین دریافت می کند - این مقدار پاداشی است که توسط سیستم بیت کوین "از هوای رقیق" تولید می شود و هر چهار سال کاهش می یابد.

از نظر فنی، این بدان معنی است که هر ماینر همیشه تراکنش دیگری را به بلوک خود اضافه می کند - "12.5 BTC ایجاد کنید و آنها را به کیف پول من ارسال کنید". وقتی می شنوید "تعداد بیت کوین ها در جهان به 21 میلیون محدود شده است، اکنون آنها 16 میلیون را استخدام کرده اند" - اینها پاداش هایی است که شبکه ایجاد می کند.

برو یک بلوک واقعی بیت کوین را در یکی از سایت های اختصاصی مشاهده کنید. همچنین تراکنش هایی با ورودی ها و خروجی ها و 18 صفر در ابتدا و تمام هش هایی که در بالا توضیح داده شد وجود دارد.

این ماینرها هستند که تراکنش های نوظهور را به بلاک چین اضافه می کنند. بنابراین اگر کسی به شما بگوید که «یک بلاک چین برای *** می‌سازد»، اولین سؤالی که باید به آن پاسخ دهد این است که چه کسی و چرا آن را استخراج خواهد کرد. بیشتر اوقات، پاسخ صحیح این است که "همه این کار را خواهند کرد، زیرا ما برای استخراج سکه های خود را می دهیم که رشد می کنند و برای ماینرها سودآور است". اما این در مورد همه پروژه ها صدق نمی کند.

به عنوان مثال، فردا برخی از وزارت بهداشت، بلاک چین بسته خود را برای پزشکان ایجاد می کند (و آنها آن را می خواهند)، چه کسی آن را ماین می کند؟ درمانگران آخر هفته؟

اما بعداً وقتی پاداش ها ناپدید یا ناچیز می شوند، ماینرها چه سودی خواهند داشت؟

طبق ایده Creator، تا آن زمان مردم باید واقعیت بیت کوین را باور کنند و استخراج با مقدار کارمزدی که در هر تراکنش گنجانده شده است، شروع به پرداخت خواهد کرد. اینجاست که همه چیز پیش می‌رود: در سال 2012، همه کمیسیون‌ها صفر بودند، ماینرها فقط برای پاداش از بلوک‌ها استخراج می‌شدند. امروزه، یک معامله با کارمزد صفر می تواند چندین ساعت در استخر بماند، زیرا رقابت وجود دارد و مردم حاضرند برای سرعت هزینه بپردازند.

یعنی اصل ماینینگ در حل مشکلات بی معنی است. آیا نمی توان از این همه قدرت برای چیز مفیدتری استفاده کرد - مثلاً جستجوی درمانی برای سرطان؟

ماهیت ماینینگ حل هر مشکل محاسباتی است.این کار باید به اندازه کافی ساده باشد تا شرکت کنندگان شبکه احتمال پایداری برای یافتن پاسخ داشته باشند - در غیر این صورت، تراکنش ها برای همیشه تایید می شوند. تصور کنید در صندوق فروشگاهی باید هر بار نیم ساعت منتظر بمانید تا بانک تراکنش شما را تایید کند. هیچ کس از چنین بانکی استفاده نخواهد کرد.

اما این کار باید در عین حال دشوار باشد، به طوری که همه کاربران اینترنت به یکباره پاسخ را پیدا نکنند. چون در این صورت بلاک های زیادی را با همان تراکنش ها به شبکه اعلام می کنند و احتمال «اتلاف مضاعف» وجود خواهد داشت که اشاره کردم. یا حتی بدتر - تقسیم یک بلاک چین به چندین شاخه، که در آن هیچ کس نمی تواند بفهمد کدام تراکنش تایید شده است و کدام یک تایید نشده است.

اگر هر 10 دقیقه یک بار پاداش 12.5 بیت کوین داده شود و فقط یک نفر آن بلوک را پیدا کند، معلوم می شود که باید چندین سال کارت گرافیک را هدر دهم به این امید که روزی 40000 دلار کاهش دهم (در نرخ ارز فعلی)؟

این دقیقاً در مورد بیت کوین صدق می کند. اما همیشه چنین نیست. قبلاً شبکه کوچکتر بود، پیچیدگی آن کمتر است، به این معنی که احتمال یافتن یک هش برای یک بلوک جدید به تنهایی بیشتر است. اما در آن زمان بیت کوین آنقدر گران نبود.

اکنون هیچ کس به تنهایی بیت کوین استخراج نمی کند. اکنون شرکت کنندگان در گروه های خاصی متحد شده اند - استخرهای استخراج، جایی که همه با هم در تلاش برای یافتن هش صحیح هستند.

اگر حداقل یکی از گروه پیدا کند، بسته به مشارکت آنها در کار مشترک، کل پاداش بین شرکت کنندگان تقسیم می شود. معلوم می شود که در حال ماینینگ هستید و هر هفته یک پنی از کل سهم دریافت می کنید.

اما استخراج انفرادی در شبکه های دیگر کاملا امکان پذیر است. تا همین اواخر، استخراج اتریوم آسان بود، جایی که بلوک‌ها هر 10 ثانیه یک بار پیدا می‌شوند. پاداش بلاک در آنجا بسیار کمتر است، اما احتمال کسب یک پنی زیبا بیشتر است.

پس ما می خواهیم هزاران کارت گرافیک را بیهوده بسوزانیم و چاره ای نیست؟

بله، اما ایده هایی وجود دارد. ماینینگی که توضیح دادم کلاسیک است و به آن Proof-of-Work (اثبات کار) می گویند. یعنی هر ماشین با حل مسائل بی معنی با احتمال معین ثابت می کند که به نفع شبکه کار کرده است.

اما برخی از افراد شروع به ساخت بلاک چین با انواع دیگر ماینینگ می کنند. در حال حاضر دومین مفهوم محبوب، Proof-of-Stake (اثبات سهام) است. در این نوع ماینینگ، هر چه یک شرکت‌کننده شبکه «کوین‌های» بیشتری در حساب خود داشته باشد، احتمال بیشتری دارد که بلاک خود را در بلاک چین وارد کند. مثل پر سر و صداترین مرد روستا.

می توانید به انواع دیگری از ماینینگ فکر کنید. همانطور که قبلاً پیشنهاد شد، همه رایانه‌های موجود در شبکه می‌توانند به دنبال درمانی برای سرطان باشند، فقط شما باید بفهمید که در این مورد چگونه سهم آنها را در سیستم ثبت کنید. بالاخره من می توانم اعلام کنم که من هم شرکت می کنم، اما کارت گرافیکم را خاموش کنید و چیزی حساب نکنید.

سهم هر یک از شرکت کنندگان در یافتن درمانی برای سرطان را چگونه تعیین می کنید؟ اگر به آن فکر کنید - جرأت کنید CancerCoin خود را قطع کنید، تبلیغات تبلیغاتی در رسانه ها برای شما تضمین شده است.

بلاک چین

موقعیتی را تصور کنید که در آن، علیرغم تمام تئوری احتمالات ما، دو معدنچی همچنان توانستند پاسخ درست را به طور همزمان پیدا کنند. آنها شروع به ارسال دو بلوک کاملاً صحیح از طریق شبکه می کنند.

این بلوک ها تضمین می شوند که متفاوت باشند، زیرا حتی اگر به طور معجزه آسایی تراکنش های یکسانی را از استخر انتخاب کنند، درختان کاملاً یکسانی ایجاد کنند و همان عدد تصادفی (غیر) را حدس بزنند، هش آنها همچنان متفاوت خواهد بود، زیرا هر کدام شماره کیف پول خود را در آن می نویسند. بلوک برای پاداش

اکنون دو بلوک معتبر داریم و دوباره مشکل این است که چه کسی باید اول در نظر گرفته شود. در این صورت شبکه چگونه رفتار خواهد کرد؟

الگوریتم بلاک چین بیان می کند که شرکت کنندگان شبکه به سادگی اولین پاسخ صحیحی را که به آنها می رسد می پذیرند. سپس آنها بر اساس تصویر خود از جهان زندگی می کنند.

هر دوی ماینرها پاداش خود را دریافت خواهند کرد و بقیه ماینرها با تکیه بر آخرین بلوکی که شخصاً دریافت کرده‌اند شروع به استخراج می‌کنند. دو نسخه از بلاک چین صحیح در شبکه ظاهر می شود. این پارادوکس است.

این یک موقعیت معمولی است که در آن نظریه احتمال دوباره کمک می کند.شبکه در چنین حالت دوشاخه ای عمل می کند تا زمانی که یکی از ماینرها بلوک بعدی یکی از این زنجیره ها را پیدا کند.

به محض اینکه چنین بلوکی پیدا شد و وارد زنجیره شد، طولانی‌تر می‌شود و یکی از توافق‌های شبکه بلاک چین گنجانده می‌شود: تحت هر شرایطی، طولانی‌ترین بلاک چین به عنوان تنها مورد واقعی برای کل شبکه پذیرفته می‌شود.

زنجیره کوتاه علیرغم تمام صحت آن، توسط همه شرکت کنندگان در شبکه رد می شود. تراکنش‌های حاصل از آن به استخر بازگردانده می‌شوند (اگر در دیگری تأیید نشده باشند)، و پردازش آنها دوباره شروع می‌شود. ماینر پاداش خود را از دست می دهد زیرا بلاک او دیگر وجود ندارد.

با رشد شبکه، چنین تصادفاتی از "بسیار بعید" به دسته "خوب، گاهی اوقات اتفاق می افتد" می رود. قدیمی ها می گویند مواردی وجود داشته است که زنجیره ای از چهار بلوک به یکباره رها شده است.

به همین دلیل، سه قانون ناامنی انتهای زنجیره ابداع شده است:

1. جوایز برای استخراج تنها پس از 20 بلوک تایید شده دیگر پس از دریافت قابل استفاده است. برای بیت کوین، این حدود سه ساعت است.

2. اگر بیت کوین برای شما ارسال شده است، تنها پس از 1-5 بلاک می توانید از آنها به عنوان ورودی در تراکنش های جدید استفاده کنید.

3. قوانین 1 و 2 فقط در تنظیمات هر مشتری بیان شده است. هیچ کس بر رعایت آنها نظارت نمی کند. اما اگر بخواهید سیستم را فریب دهید تا آنها را اجرا نکند، طولانی ترین قانون زنجیره ای همچنان همه تراکنش های شما را از بین می برد.

تلاش برای تقلب بلاک چین

اکنون که همه چیز را در مورد ماینینگ، دستگاه بلاک چین و قانون طولانی‌ترین زنجیره می‌دانید، ممکن است این سوال برایتان پیش بیاید: آیا می‌توان با ساختن طولانی‌ترین زنجیره، به‌طور خاص از بلاک چین پیشی گرفت و از این طریق تراکنش‌های جعلی خود را تایید کرد؟

فرض کنید قوی ترین کامپیوتر روی زمین را دارید. دیتاسنترهای گوگل و آمازون در اختیار شما قرار می گیرند و شما سعی می کنید چنین زنجیره ای را محاسبه کنید که به طولانی ترین بلاک چین در شبکه تبدیل شود.

شما نمی توانید چندین بلوک زنجیره را بگیرید و بلافاصله محاسبه کنید، زیرا هر بلوک بعدی به بلوک قبلی بستگی دارد. سپس در اسرع وقت تصمیم می گیرید که هر بلوک را به موازات اینکه چگونه سایر شرکت کنندگان به افزایش بلاکچین اصلی ادامه می دهند، روی دیتاسنترهای عظیم خود حساب کنید. آیا می توان از آنها سبقت گرفت؟ احتمالا بله.

اگر قدرت محاسباتی شما بیش از 50 درصد توان همه شرکت کنندگان در شبکه باشد، با احتمال 50 درصد قادر خواهید بود زنجیره طولانی تری را سریعتر از مجموع سایرین بسازید. این یک روش تئوری ممکن برای فریب بلاک چین با محاسبه زنجیره طولانی تر تراکنش است. سپس تمام تراکنش‌های شبکه واقعی نامعتبر تلقی می‌شوند و شما تمام پاداش‌ها را جمع‌آوری کرده و نقطه عطف جدیدی را در تاریخ ارزهای دیجیتال آغاز می‌کنید که به آن «تقسیم بلاک چین» می‌گویند. یک بار، به دلیل یک اشکال در کد، این مورد در مورد اتریوم بود.

اما در واقعیت، هیچ مرکز داده ای را نمی توان از نظر قدرت با تمام کامپیوترهای دنیا مقایسه کرد. یک و نیم میلیارد چینی با یخ، یک و نیم میلیارد دیگر هندی گرسنه با مزارع معدن و برق ارزان - این یک قدرت محاسباتی عظیم است. هنوز هیچکس در دنیا نمی تواند به تنهایی با آنها رقابت کند، حتی گوگل.

مثل بیرون رفتن در خیابان و تلاش برای متقاعد کردن همه افراد در جهان است که ارزش دلار اکنون 1 روبل است و قبل از اینکه رسانه ها شما را افشا کنند به موقع باشید. و اگر بتوانید همه را متقاعد کنید، می توانید اقتصاد جهان را فروپاشید. از نظر تئوری امکان پذیر نیست؟ اما در عمل به دلایلی هیچ کس موفق نشد.

بلاک چین نیز بر این احتمال استوار است. هرچه شرکت کنندگان-ماینرها بیشتر باشند، امنیت و اعتماد به شبکه بیشتر می شود. بنابراین، هنگامی که یک مزرعه معدنی بزرگ دیگر در چین تحت پوشش قرار می گیرد، نرخ سقوط می کند. همه می ترسند که در جایی در جهان یک نابغه شیطانی وجود داشته باشد که قبلاً مجموعه ای از ماینرها را با ظرفیت 49٪ جمع آوری کرده بود.

نتیجه

بلاک چین مجموعه ای دقیق از الگوریتم ها نیست. این ساختاری برای ایجاد یک شبکه جعلی بین شرکت کنندگان است که در آن هیچ کس نمی تواند به کسی اعتماد کند.در حین مطالعه، احتمالاً بیش از یک بار به این فکر افتاده اید که "می توانید این کار را انجام دهید و حتی مفیدتر خواهد بود". این بدان معناست که شما بلاک چین را درک می کنید، تبریک می گویم.

برخی از افراد در جهان نیز آن را درک کردند و می خواستند برای برخی از وظایف خاص بهبود یابند یا سازگار شوند. ارزهای دیجیتال یکسان نیستند، اگرچه تعداد زیادی از آنها نیز وجود دارد. در اینجا فهرست کوتاهی از برخی از ایده ها و پروژه هایی که به لطف بازنگری در ایده بلاک چین محبوبیت پیدا کرده اند آورده شده است.

اتریوم

اترها پس از بیت کوین، دومین کلمه محبوبی است که در اخبار کریپتو هیپ می شنوید. برای مردم عادی، این یکی دیگر از ارزهای دیجیتال و راهی برای انجام مرسوم ترین کار به نام ICO است. توسعه دهندگان در سایت، اتریوم را به عنوان "سازنده بلاک چین برای نیازهای شما" توصیف می کنند. این هم ممکن است، بله.

اما اگر عمیق‌تر هم بگردید، اتر فقط شبکه‌ای از سکه‌ها نیست. این یک ماشین محاسباتی بزرگ جهانی است که در آن کاربران کد برنامه های دیگران (قراردادهای هوشمند) را اجرا می کنند و برای هر خط اجرا شده پاداش دریافت می کنند. و همه اینها غیرمتمرکز، غیرقابل تخریب و با تمام تضمین های بلاک چین است.

ما می توانیم آنقدر در مورد اتریوم و قراردادهای هوشمند صحبت کنیم که برای یک چنین پست دیگری کافی باشد. بنابراین، ما به سبک وبلاگ نویسان برتر عمل خواهیم کرد: اگر این پست به طور فعال بازنشر و بازنشر شود و تا روز جمعه حداقل 1500 بازدید منحصر به فرد داشته باشد، دنباله ای در مورد اتریوم و قراردادهای هوشمند خواهم نوشت.

توصیه شده: