چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

چگونه SHA256 و ماینینگ از شبکه بیت کوین محافظت می کنند؟

بیت کوین چگونه توسط انرژی محافظت می شود؟ و نانسی چیست؟ این سوالات و بیشتر در داخل پاسخ داده می شود!

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

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

برای بهره مندی از آن، نیازی به درک نحوه عملکرد بیت کوین ندارید، درست مانند نحوه عملکرد TCP/IP برای استفاده از اینترنت. اما ادامه دهید، زیرا بسیار جالب است و من به شما قول می دهم که درک آن را آسان کنم.

توابع هش

بیایید با یک شماتیک شروع کنیم که در زیر توضیح خواهم داد…

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.
(گرافیک/@jirols_btc)

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

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

برای SHA256، خروجی یک عدد 256 بیتی است (تصادفی نیست).

یک عدد 256 بیتی به معنای یک عدد باینری به طول 256 رقم است. باینری یعنی مقدار با دو نماد نشان داده می شود، 0 یا 1. اعداد باینری را می توان به هر قالب دیگری تبدیل کرد، به عنوان مثال اعداد اعشاری، که همان چیزی است که ما با آن آشنا هستیم.

اگرچه تابع یک عدد باینری 256 رقمی را برمی گرداند، اما مقدار آن معمولاً در قالب هگزادسیمال، 64 رقمی بیان می شود.

هگزادسیمال به این معنی است که به جای 10 علامت ممکن مانند ما با اعشار (0 تا 9) ، 16 نماد داریم (دهی که به آن عادت کرده ایم 0-9 به اضافه حروف a, b, c, d, e, و f؛ که مقادیر 11 تا 15 را دارند). به عنوان مثال، برای نشان دادن مقدار اعشار 15 در هگزادسیمال، فقط "f" را می نویسیم و همان مقدار است. در صورت نیاز به توضیح بیشتر، اطلاعات زیادی به صورت آنلاین با جستجوی سریع گوگل در دسترس است.

برای نشان دادن SHA256 در عمل، می توانم عدد 1 را بگیرم و آن را از طریق an اجرا کنم ماشین حساب هش آنلاین، و این خروجی را دریافت کرد (به صورت هگزادسیمال):

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

کادر بالا ورودی است، کادر پایین خروجی حاصل است.

توجه داشته باشید که تمامی کامپیوترهای دنیا خروجی یکسانی خواهند داشت، البته به شرطی که ورودی یکسان باشد و از تابع SHA256 استفاده شود.

خروجی عدد هگزادسیمال، اگر به اعشار تبدیل شود، این است (توجه داشته باشید که برای نوشتن ارقام بیشتری نیاز است):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

و تبدیل به باینری می شود:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

فقط از روی علاقه، اینجا همان مقدار است پایه 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

توجه داشته باشید که کوچکترین مقدار ممکن که SHA256 می تواند برگرداند صفر است، اما LENGTH هنوز 256 بیت است. به این صورت صفر نشان داده می شود:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

و بزرگترین مقدار ممکن است:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

در اعشار، این است:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

در هگزادسیمال این است:

ففففففففففففففففففففففففففففففففف

توجه داشته باشید که دقیقا 64 F وجود دارد.

صفر در هگزادسیمال را می توان به سادگی به عنوان یک صفر نوشت، اما برای خروجی هش، 64 عدد از آن ها است که نیاز به یک خروجی اندازه ثابت را رعایت می کنند:

0000000000000000000000000000000000000000000000000000000000000000

در اینجا خلاصه ای از برخی از حقایق در مورد تابع هش آمده است که ارزیابی آنها حیاتی است:

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

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

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

استخراج معدن

من با نشان دادن مفهومی از کار شروع خواهم کرد، جایی که "اثبات کار" در بیت کوین از آنجا می آید.

به ماشین حساب هش آنلاین بروید و تایپ کنید "من 50 بیت کوین ایجاد می کنم و این مبلغ را به خودم می پردازم."

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

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

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

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

کلمه "Nonce" قرار است از "عدد فقط یک بار استفاده شده" مشتق شده باشد، اما من آن را نمی بینم.

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

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

خروجی هنوز با "0" شروع نمی شود، بنابراین بیایید مقداری مزخرف اضافه کنیم (من یک "x" بی معنی اضافه کردم):

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

هنوز با صفر شروع نمی شود. من چند کاراکتر دیگر را امتحان کردم تا اینکه هش با صفر شروع شد:

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

ما میرویم آنجا. اکنون، طبق قوانین دلخواه من برای این نسخه وانمودی بیت کوین، متن در پنجره ورودی یک بلوک معتبر با یک تراکنش است که 50 بیت کوین به من پرداخت می کند.

توجه داشته باشید که بلاک های بیت کوین اساساً صفحات یک دفتر کل هستند. هر بلوک شماره گذاری می شود و بیت کوین جدیدی ایجاد می کند، همراه با لیست تراکنش های بین کاربران. این رکورد محل زندگی بیت کوین است.

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

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

هش با "f" شروع می شود نه "0"، بنابراین من باید مقداری را در فیلد nonce امتحان کنم:

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

این بار من خوش شانس تر بودم و تنها پس از چهار بار تلاش، یک نونه مناسب پیدا کردم. به یاد بیاورید که برای بلوک اول 22 تلاش طول کشید. در اینجا مقداری تصادفی وجود دارد، اما به طور کلی یافتن یک هش معتبر چندان دشوار نیست اگر تمام تلاش ما یک صفر باشد. 16 مقدار ممکن برای اولین رقم هش وجود دارد، بنابراین من شانس 1 در 16 را دارم که هر تغییری در فیلد ورودی انجام دهم، اولین رقم هش "0" باشد.

توجه داشته باشید که فیلدهای بیت کوین به این صورت است، اما جزئیات بیشتری وجود دارد که من اضافه نکرده ام. این فقط برای نشان دادن یک نکته است، نه لزوماً برای جزئیات دقیق ظاهر یک بلاک بیت کوین.

من یک فیلد زمانی را به بلوک بعدی اضافه می کنم زیرا به آن نیاز دارم تا "تنظیم سختی" را در ادامه توضیح دهم:

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

بالا بلوک شماره سه است. این شامل هش بلوک قبلی است و اکنون نیز شروع به اضافه کردن زمان کرده ام. نانسی که پیدا کردم با موفقیت باعث شد هش با صفر شروع شود (تا زمانی که هدف هش برآورده شد فقط یک "1" را تایپ کردم).

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

برنده شدن یک بلوک

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

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

با هر بلاک، بیت کوین جدید ایجاد می شود و مجموعاً تا کنون کل عرضه را تشکیل می دهد. اگر ماینرهای زیادی وجود داشته باشد، از نظر آماری باید انتظار داشته باشیم که بلاک ها سریعتر تولید شوند و بنابراین بیت کوین سریعتر ایجاد می شود. مشکل، درست است؟

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

گره ها: من بلوک های "معتبر" را ذکر می کنم. پس چی؟ چه کسی چک می کند؟ گره های بیت کوین هستند. یک گره بیت کوین تا کنون یک کپی از بلاک چین را نگه می دارد و از مجموعه قوانینی پیروی می کند تا بررسی کند که بلاک های جدید در چارچوب قوانین هستند و آن هایی را که نیستند را رد کند. قوانین کجاست؟ در کد. کامپیوتری که کد بیت کوین را دانلود می کند یک گره است.

تنظیم دشواری

میانگین زمان ایجاد بلاک‌های جدید بیت‌کوین توسط هر گره در هر بلاک ۲۰۱۶ محاسبه می‌شود (به همین دلیل است که فیلد زمان مورد نیاز است). این بخشی از پروتکل و قوانینی است که گره ها از آن پیروی می کنند. فرمولی برای تنظیم تعداد صفرهایی که هر هش بلوک باید با آنها شروع شود تا معتبر باشد، اعمال می شود.

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

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

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

برای به دست آوردن دو صفر کمی بیشتر طول می‌کشد، اما ما تصور می‌کنیم که افراد زیادی با من رقابت می‌کنند، بنابراین کل زمان صرف شده برای هر کسی برای یافتن یک بلوک به یک هدف حفظ می‌شود.

بلوک بعدی اینجاست:

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

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

یک دقیقه روی کیبورد قاطی کردم تا اینکه دو صفر ظاهر شد. این به طور تصاعدی سخت تر از یافتن یک صفر بود. شانس یافتن دو صفر پشت سر هم 1 در 16 است2، یا شانس 1 در 256.

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

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

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

یعنی 19 صفر! 1 در 16 وجود دارد19 شانس یافتن چنین بلوکی با هر تلاش. ماینرهای بیت کوین تلاش های بسیاری را در هر ثانیه انجام می دهند، مجموعاً در سراسر جهان.

تعداد تلاش ها در هر ثانیه به عنوان «هش ریت» شناخته می شود. در حال حاضر، نرخ هش جهانی تخمین زده شده کمتر از 200 میلیون تراهش در ثانیه است (یک تراهش یک تریلیون هش است). با این تعداد تلاش در ثانیه، هر 19 دقیقه یک بلوک با هش که با 10 صفر شروع می شود، پیدا می شود.

در آینده، با پیوستن ماینرهای بیشتری، نرخ هش افزایش می‌یابد، بلاک‌ها سریع‌تر پیدا می‌شوند و سختی بیت‌کوین به ۲۰ صفر نیاز دارد که تولید بلوک را به حدود ۱۰ دقیقه کاهش می‌دهد.

نصف شدن

زمانی که بیت کوین برای اولین بار شروع به کار کرد، با هر بلاک 50 بیت کوین تولید می شد. قوانین بلاک چین بیت کوین مشخص می کند که پس از هر 210,000 بلاک، پاداش به نصف کاهش می یابد. این لحظه به «نصف شدن» معروف است و تقریباً هر چهار سال یکبار اتفاق می‌افتد. نصف شدن، همراه با تنظیم سختی بلاک ها در فواصل 10 دقیقه ای، به این معنی است که در حدود سال 2140، پاداش بلاک 0.00000001 یا 1 ساتوشی، کوچکترین واحد یک بیت کوین خواهد بود و دیگر نمی توان آن را به نصف رساند. استخراج متوقف نخواهد شد، اما پاداش بلوک صفر خواهد بود. از آن لحظه، هیچ بیت کوین جدیدی در آینده ایجاد نخواهد شد و تعداد بیت کوین از نظر ریاضی قابل محاسبه است و به اندازه کافی به 21 میلیون سکه نزدیک است. به این ترتیب کل عرضه شناخته می شود - به صورت برنامه ریزی شده تنظیم می شود.

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

دقیقاً چگونه پاداش بلوک به نصف کاهش می یابد؟ این در کدی است که توسط گره ها نگهداری می شود. آنها می دانند که هر بلوک جدیدی را پس از 210,000 که در آن ماینر بیش از 25 بیت کوین به خود پرداخت می کند، رد کنند. و سپس رد کردن هر بلوکی بعد از 420,000 که در آن ماینر بیش از 12.5 بیت کوین به خود پرداخت می کند و غیره.

هزینه های معامله

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

نام آن به نام شرکت Conbase نیست، منظورم Coinbase است. این شرکت نام خود را پس از تراکنش کوین بیس گذاشت، نه برعکس. گیج نشو

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

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

من این بار حوصله پیدا کردن هش واقعی را نداشتم (در واقع هش واقعی گزارش شده در بلوک 200,001 است). چیزی که من فقط برای سرگرمی درست کردم، اما متوجه شدم یک پیام می تواند در آنجا جاسازی شود.

Satoshis به طور معروف عبارت "صدر اعظم در آستانه دومین کمک مالی برای بانک ها" را در اولین بلاک بیت کوین (Block Genesis) بعد از تیتر روزنامه آن روز قرار داد.

چگونه SHA256 و ماینینگ از هوش داده پلاتو بلاک چین شبکه بیت کوین محافظت می کنند. جستجوی عمودی Ai.

نکته اینجاست که 132 تراکنش گنجانده شده است (همه نشان داده نشده اند). به تراکنش شماره 132 نگاه کنید – 2.3 بیت کوین از یک آدرس، 2.1 بیت کوین به آدرس دیگری و همچنین به آدرس دوم 0.1 بیت کوین پرداخت می کند (من از نقطه برای کوتاه کردن طول آدرس استفاده کرده ام).

بنابراین منبع 2.3 بیت کوین در مجموع 2.2 بیت کوین پرداخت می کند (2.2 + 0.1 = 2.2). آیا 0.1 بیت کوین گم شده است؟ خیر، همانطور که توضیح خواهم داد، ماینر این تفاوت را ادعا می کند.

ماینر مجاز است 25 بیت کوین به عنوان پاداش بلاک به خود بپردازد (زیرا 210,000 بلاک گذشته است بنابراین پاداش از 50 به 25 نصف شده است). اما اگر نگاه کنید، تراکنش کوین بیس 27.33880022 است. 2.33880022 بیت کوین اضافی از 132 تراکنش دیگر در بلوک می آید - ورودی ها همگی کمی بیشتر از کل خروجی ها خواهند بود. بنابراین ماینر می‌تواند این بیت‌کوین رها شده را به عنوان پرداختی به خودش مطالبه کند. اینها کارمزد تراکنش هایی است که به ماینر پرداخت می شود.

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

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

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

آیا می توان یک بلوک را دوباره نوشت؟

این بسیار بعید است و ارزش درک دلیل آن را دارد. سپس متوجه خواهید شد که چرا تراکنش های بیت کوین تغییرناپذیر (غیر قابل تغییر) هستند.

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

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

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

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

این در واقع هرازگاهی اتفاق می‌افتد و همیشه به صورت زیر مرتب می‌شود:

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

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

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

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

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

ضمیمه

چرا بلوک دوم ماینر نامعتبر است؟

فرض کنید بلوک 700,000 به تازگی توسط MINER-A استخراج شده است. 700,000 ثانیه بعد، MINER-B نسخه دیگری از بلوک 30 را نیز ایجاد کرد. وقتی MINER-B این جایگزین را پخش می کند، هر گره آن را رد می کند زیرا قبلاً بلوک را توسط MINER-A دیده و پذیرفته است. علاوه بر این، در این 700,001 ثانیه، فرض کنید که MINER-C بلوک 700,000 را پیدا کرده است. با توجه به اینکه بلوک 700,001 رقیب MINER-B زنجیره فعلی را گسترش نمی دهد (که تا XNUMX است)، به همین دلیل نیز رد می شود.

جالب‌تر این است که اگر MINER-B به جای نسخه رقیب 700,001، روی بلوک 700,000 کار می‌کرد، به همان اندازه شانس استخراج یک بلوک معتبر 700,001 را داشتند که در نهایت باید یک بلوک جایگزین 700,000 پیدا کنند. بنابراین به محض اینکه هر ماینر بلاک جدیدی را دید، باید تلاش خود را روی بلوک بعدی تنظیم کند.

با این حال، اگر Miner-B یک ثانیه بعد از MINER-A بلوک 700,000 را پیدا کند، ممکن است برخی گره ها ابتدا بلوک MINER-A را ببینند در حالی که برخی دیگر بسته به موقعیت جغرافیایی و سرعت اینترنت، ابتدا بلوک MINER-B را ببینند. در این صورت، یک فورک موقت وجود دارد و برخی از ماینرها برای گسترش یک نسخه در حال کار خواهند بود در حالی که سایر ماینرها برای گسترش نسخه دیگر کار خواهند کرد. همانطور که قبلاً با استفاده از توصیفگرهای "زنجیره آبی" و "زنجیره قرمز" توضیح داده شد، در نهایت یکی از نسخه ها قبل از دیگری گسترش می یابد و به اتفاق آرا به نسخه معتبر تبدیل می شود.

این پست مهمان از آرمان پارمان است. نظرات بیان شده کاملاً متعلق به خود آنها است و لزوماً نظرات BTC Inc یا را منعکس نمی کند مجله Bitcoin.

تمبر زمان:

بیشتر از مجله Bitcoin