میدانیم که بلاک چین، فناوری زیرساختی بیت کوین است. استفاده از بلاک چین در بیت کوین امنیت شبکه را تضمین میکند. در حقیقت با استفاده از بلاک چین میتوان اطمینان داشت که تراکنشها غیرقابل بازگشت و غیرقابل تغییر هستند. بلاک چین در واقع زنجیرهای از بلاکهایی است که تاریخچه تراکنشهای بیت کوین را در خود جا میدهند. این مفهوم برای اولین بار با بیت کوین شناخته شد. در ادامه با کمک مقالاتی از وبسایتهای «learnmebitcoin» و «اینوستوپدیا»، به زبان ساده مفهوم بلاک و محتویات هر بلاک را توضیح میدهیم.
بلاک چیست؟
هر بلاک، بخشی از بلاک چین است که مجموعهای از دادههای مربوط به تراکنشهای بیت کوین را در خود دارد. به عبارت دیگر، بلاکها فایلهایی هستند که اطلاعات مربوط به تراکنشهای بیت کوین را بهصورت دائمی ثبت میکنند. یک بلاک برخی از آخرین معاملات بیت کوین یا تمام آنها را که وارد بلاکهای قبلی نشدهاند، ثبت میکند. اگر بخواهیم جملات قبلی را سادهتر کنیم، میتوان گفت: بلاک مانند برگهای سفید است که روی آن میتوان هر چیزی نوشت. اما در بلاک چینِ بیت کوین، روی بلاکها اطلاعات مربوط به تراکنشهای بیت کوین نوشته میشود. هرگاه یک بلاک «کامل» میشود، راه را برای شروع استخراج بلاک بعدی باز میکند و بلاک قبلی بسته میشود. بنابراین، امکان تغییر، حذف یا اضافه کردن هیچ تراکنشی در بلاکهای قبلی وجود ندارد.
بلاکها چگونه ایجاد میشوند؟
بلاکها را ماینرها ایجاد میکنند. هنگامی که شما یک تراکنش در شبکه بیت کوین انجام میدهید، این تراکنش بهطور مستقیم به بلاک چین اضافه نمیشود. در عوض، در یک استخر تراکنشهای تأییدنشده یا استخر حافظه (Memory Pool) نگهداری میشود.
اگر ماینر هستید، وظیفه شما این است که تراکنشها را از استخر تراکنشهای تأییدنشده جمع کرده و در بلاک کاندید قرار دهید. شما باید تلاش کنید که این بلاک کاندید را به بلاک چین اضافه کنید.
بلاک هدر
همچنین میتوانید به هر بلاک کاندید، یک «بلاک هدر» (block header) اختصاص دهید که در واقع شامل مجموعهای از فرادادههایی (metadata) درباره بلاک است. ماینرها هنگام اضافه کردن بلاک به بلاک چین، از این فرادادهها استفاده میکنند.
فراداده، دادهای است که دادههای دیگری را توصیف میکند و بهعنوان یک برچسب که حاوی اطلاعات خاصی است، عمل میکند.
در حال حاضر، جزئیات این اجزا مدنظر ما نیست؛ اما اشاره سریعی به آنها خواهیم داشت. (برای اطلاعات بیشتر در این مورد، ساختار بلاک در بلاک چین را مطالعه کنید.)
نسخه برنامه
نسخه برنامه (version)، ساختار دادههای داخل بلاک را توصیف میکند. از نسخه برنامه برای این که رایانهها بتوانند محتوای هر بلاک را بهدرستی بخوانند، استفاده میشود.
آخرین بلاک
این همان شماره شناسایی بلاک قبلی (last block) است. ماینر تلاش میکند که یکی از شمارههای بلاکهای قبلی را برای بلاک کاندید فعلی به دست آورد تا مفهوم «زنجیره» برقرار باشد.
ریشه درخت درهمسازی یا درخت مرکل
تمام معاملات داخل بلاک، با یکدیگر هش میشوند تا یک خط متنی تشکیل دهند. تمام اجزا منحصربهفرد هستند؛ اما بهتر آن است که به ریشه درخت مرکل (Merkle root) بهعنوان مهمترین قسمت بلاک هدر اشاره کنیم.
زمان
یک زمانسنج در خود بلاک وجود دارد که نسبت به یک مبدأ زمانی خاص، زمان را اندازهگیری میکند.
هدف
هدف، مقدار سختی شبکه است که ماینرها با آن سروکار دارند تا بلاک کاندید را به بلاک چین اضافه کنند. این مقدار، توسط شبکه بیت کوین تعیین میشود. در ادامه بهتر میتوانید این مطلب را درک کنید.
بلاکها چگونه به بلاک چین اضافه میشوند؟
برای افزودن بلاک کاندید به بلاک چین و با این هدف که نتیجه کمتر از مقدار هدف سختی باشد، اطلاعات بلاک هدر را هش میکنیم.
هشِ هدف از طریق میزان سختی محاسبه میشود. سختی، معیاری است که توسط شبکه بیت کوین تعیین میشود تا میزان دشواری افزودن بلاکِ تراکنشها به بلاک چین تنظیم شود. سختی شبکه بیت کوین پس از ساخت هر ۲۰۱۶ بلاک تغییر میکند تا به این صورت زمان میانگین برای پیدایش هر بلاک ۱۰ دقیقه باشد.
هدف مانند میله لیمبو برای بلاک کاندید عمل میکند. هرچه سختی بیشتر باشد، هدف پایینتر بوده و یافتن هش بلاکی پایینتر از میزان هدف، دشوارتر خواهد بود.
نانس
اگر بخواهیم دقیقتر به موضوع نگاه کنیم، بلاک هدر به تنهایی هش نمیشود و برای این کار به یک عدد دیگر نیاز است.
این عدد، نانس (nonce) نامیده میشود و اساساً رشتهای ساختگی است که به ماینرها کمک میکند تا برای بلاک، هشِ کمتر از مقدار هدف سختی بیابند. نانس متغیری است که توسط الگوریتم اثبات کار به هش اضافه میشود.
نانس عددی دلخواه است که تنها یک بار در ارتباطات کریپتوگرافیک مورد استفاده قرار میگیرد. اگر اولین نانس کار نکند (از صفر شروع میشود)، آن را افزایش داده و به هش کردن بلاک هدر ادامه میدهیم. در نهایت، یک نانس پیدا خواهد شد که هش بلاکی کمتر از مقدار هدف بازمیگرداند.
درست است که مقادیر هش حاوی حروف هستند؛ اما شما همچنان میتوانید آنها را مانند عدد درنظر بگیرید. این اعداد، صرفاً مقادیری بر پایه ۱۶ هستند و عددنویسی به این روش، در سیستمهای رایانهای بسیار پرکاربرد است.
هنگامی که نانسی پیدا کردید که کار میکرد، بلاک حل میشود و تمام تراکنشهای داخل این بلاک به بلاک چین افزوده میشوند.
تمام ماینرها حالا به سوی استخر معاملات بازخواهند گشت و شروع به کار روی بلاک کاندید بعدی خواهند کرد. آنها از هش بلاک موفقیتآمیز شما، در بلاک هدر بعدی خود استفاده خواهند کرد. به این ترتیب، رقابت بر سر اضافه کردن بلاک جدید تراکنشها به بلاک چین، دوباره آغاز میشود.