مفهوم بلاک در بلاک چین چیست؟
بلاک (Block) مکانی در بلاک چین است که دادهها در آن ذخیره میشوند. یک بلاک آخرین تراکنشهایی را که هنوز توسط شبکه تأیید نشدهاند، در خود جای میدهد. پس از تأیید اطلاعات تراکنش، بلاک بسته شده و سپس یک بلاک جدید برای درج تراکنشهای جدید ایجاد میشود که باید اعتبارسنجی شده و به زنجیره بپیوندد. بهطور کلی، بلاک یک نوع ساختار داده (Data Structure) است که مختص بلاک چین بوده و به دلیل ماهیت زنجیرهای خود اطلاعات شبکه را غیرقابل دستکاری و در نتیجه قابل اعتماد میکند.
بلاکهای بلاک چین چگونه کار میکنند؟
در بلاک چین در هر لحظه حجم وسیعی از تراکنشها انجام میشوند. حفظ تاریخچه تراکنشها به شبکه کمک میکند تا طرفین معامله و مبالغ جابهجاشده را ردیابی کند. تراکنشهای انجامشده نیز در فایلی به نام «بلاک» ثبت میشوند که پایه و اساس شبکه بلاک چین را تشکیل میدهد.
همانطور که در ابتدای مقاله ذکر کردیم، کار بلاک ذخیره اطلاعات است. بنابراین، در یک بلاک اطلاعات مختلفی ثبت میشوند که شامل موارد زیر است:
- شماره جادویی(Magic Number) :شماره جادویی یا مجیک نامبر یک شناسه منحصربهفرد است که برای شناسایی یک پروتکل خاص یا فرمت داده در بلاک چین استفاده میشود. شماره جادویی معمولاً یک عدد صحیح 32 بیتی است که به ابتدای یک بلاک اضافه میشود.
- اندازه بلاک (Blocksize): اندازه بلاک تعیین میکند که چه مقدار اطلاعات در یک بلاک میتوانند ثبت شوند.
- هدر بلاک (Header Block): هدر یا سربرگ بلاک حاوی اطلاعاتی در مورد خود بلاک است.
- شمارنده تراکنش (Transaction counter): این عدد نشان میدهد چه تعداد تراکنش در یک بلاک ذخیره شده است.
- تراکنشها (Transactions): بخش Transactions لیستی از کلیه تراکنشهای موجود در یک بلاک را نشان میدهد.
«تراکنش» مهمترین عنصر یک بلاک به حساب میآید، زیرا بیشترین اطلاعات را به خود اختصاص میدهد. پس از آن هدر بلاک قرار دارد که شامل عناصر زیر است:
- ورژن (Version):نسخه رمز ارزی که استفاده میشود.
- هش بلاک قبلی (Previous block hash): حاوی هش (عدد رمزنگاریشده) هدر بلاک قبلی است.
- ریشه مرکل هش (Hash Merkle Root):ریشه مرکل هش خلاصهای از تمامی هشهایی است که در بخش هدر بلاک ذخیره میشوند.
- زمان (Time): یک جدول زمانی برای افزودن بلاک جدید به بلاک چین است.
- بیت (Bits): نشاندهنده میزان دشواری کشف عدد نانس است.
- عدد نانس (NONCE): یک عدد رمزنگاریشده که ماینر (Miner) باید برای تأیید بلاک آن را کشف کند.
نانس یک عدد 32 بیتی است که در هدر بلاک وجود دارد. در الگوریتم اثبات کار، بلاکهای جدید در بلاک چین از طریق استخراج به وجود میآیند. عدد نانس همان چیزیست که ماینرها برای رسیدن به آن تلاش میکنند. به این صورت که دستگاه ماینر از اعداد تصادفی برای حدس زدن عدد نانس بهره میبرد.
ماینر عدد نانس را بهطور مرتب حدس میزند، آن را به هش هدر بلاک فعلی اضافه نموده و مقدار بهدستآمده را دوباره هش میکند و درصورتیکه جواب از هش هدف (Target Hash) کمتر باشد، یعنی عدد نانس را درست حدس زده است.
بلاک چین بیت کوین بر اساس کاهش یا افزایش میزان مشارکت ماینرها در شبکه و توان پردازشی آنها، سطح سختی شبکه (دشواری یافتن عدد نانس) را تنظیم میکند تا زمان تولید یک بلاک روی ۱۰ دقیقه ثابت بماند.
هدر بلاک در بلاک چین چگونه کار میکند؟
هدرهای بلاک معمولاً در اسناد توسعهدهندگان بیت کوین استفاده میشوند و به ثبت سریع و نسبتاً آسان وظایف کمک میکنند. کل بلاک چینها را میتوان در یک پایگاه داده ساده یا به صورت یک فایل مسطح ذخیره کرد.
بلاک ها بهصورت لایهلایه روی یکدیگر قرار میگیرند و تا زمانی که به انتهای زنجیره بلاک برسیم و توالی کامل شود، در ارتفاع رشد میکنند. به همین خاطر، در بلاک چین، مفهومی به نام «ارتفاع بلاک» داریم که برای شناسایی و ردیابی بلاکها استفاده میشود.
قابل ذکر است، اولین بلاک در زنجیره بهعنوان «بلاک پیدایش» یا جنسیس بلاک (Genesis Block) شناخته میشود. در فرایند ماینینگ، هدر بلاک بهطور مکرر توسط ماینرها با تغییر عدد نانس هش (رمزنگاری) میشود. ماینرها از این طریق تلاش میکنند تا یک مدرک (Proof) برای کاری که کردهاند ارائه کنند که به آنها کمک میکند تا در ازای مشارکتشان در تامین امنیت بلاک چین، پاداش به دست آورند.
رابطه ماینینگ با هدر بلاکها چیست؟
ماینینگ یا استخراج ارز دیجیتال فرایندی است که برای یافتن عدد نانس انجام میگیرد؛ تنها عددی که میتواند در یک هدر بلاک تغییر یابد. بلاک چینهایی که از الگوریتم اجماع اثبات کار (Proof of Work) در پروتکل خود استفاده میکنند، به این مکانیزم متکی هستند. این در واقع یک عدد تصادفی است که از طریق هش کردن (Hashing) تولید میشود.
⚠️نکته: هش کردن فرایند رمزگذاری اطلاعات با استفاده از یک روش رمزنگاری یا کریپتوگرافی است. بهعنوان مثال، بیت کوین از الگوریتم SHA256 برای رمزگذاری اطلاعات استفاده میکند. برای اینکه یک ماینر «نانس برنده» را تولید نماید، باید از SHA 256 برای هش کردن اعداد تصادفی استفاده کرده و آنها را در نانس قرار دهد تا ببیند آیا با آن مطابقت دارد یا خیر.
این حدسهای تصادفی برای یافتن عدد نانس همان فرایندی است که به انرژی و توان محاسباتی زیادی نیاز دارد. فرایندی که نیازمند مشارکت گسترده ماینرها و توان محاسباتی بسیار زیادی است.
اجزای هدر بلاک
هدر بلاک شامل سه فراداده یا متادیتای مرتبط با بلاک میباشد. هدر یک رشته 80 بایتی است که از شماره ورژن 4 بایتی بیت کوین، هش 32 بایتی بلاک قبلی، ریشه مرکل 32 بایتی، برچسب زمانی 4 بایتی بلاک، سختی هدف ۴ بایتی بلاک و نانس 4 بایتی که توسط ماینرها استفاده میشود، تشکیل شده است. همچنین هدر بلاک دارای اجزای مختلفی بوده که هر یک از آنها برای ایجاد یک هدر دقیق و قابل اعتماد حیاتی هستند. در ادامه این موارد را بررسی میکنیم:
هش
شناسه اصلی هر بلاک، هش رمزنگاری (cryptographic hash) موجود در آن است. هش به عنوان یک اثر انگشت دیجیتال در نظر گرفته میشود.
شماره ورژن بیت کوین
شماره ورژن بیت کوین برای پیگیری تغییرات و بهروزرسانیهای پروتکل استفاده میشود. «هش بلاک قبلی» به «بلاک قبلی» یا «بلاک والد» آن پیوند میخورد و بهطور موثر زنجیره را ایمن میکند.
ریشه مرکل
هر بلاک در بلاک چین یک ریشه مرکل دارد. هشهایی که در قسمت میانی درخت قرار گرفتهاند «شاخهها» (Branches) و هش بالایی درخت مرکل بهعنوان ریشه مرکل شناخته میشود.
برچسب زمانی
برچسب زمانی (Timestamp) در هدر بلاک گنجانده شده است تا همه افرادی که در شبکه فعالیت میکنند بتوانند یک تاریخچه از تراکنشهای انجامشده در شبکه را ببینند. برچسب زمانی معمولاً تاریخ و زمان یک رویداد خاص را به شما ارائه میکند.
سختی هدف
سختی هدف برای تنظیم میزان سختی حل مسئله رمزنگاری توسط ماینرها استفاده میشود.
عدد نانس
ماینرها در یک بلاک چین POW باید با یافتن عدد نانس معتبر، مسائل ریاضیاتی پیچیدهای را حل کنند تا بتوانند یک بلاک جدید را به زنجیره اضافه نمایند.
سخن پایانی
در این مقاله به بررسی مفهوم بلاک در بلاک چین پرداختیم. بلاک یک ساختار داده است که اطلاعات تراکنش را در خود ذخیره میکند؛ بهاینصورت که هر بلاک به بلاک قبلی متصل میشود و یک زنجیره ایجاد میکند که تحتعنوان زنجیره بلوکها یا بلاک چین شناخته میشود. فرایند افزودن بلاکهای جدید به بلاک چین نیز استخراج یا ماینینگ نام دارد که با حل مسائل پیچیده ریاضی همراه است و نتیجه آن تایید تراکنشها و در نهایت تولید بیت کوین های جدید است.