بلاک چیست؟ وظیفه Block در بلاکچین را بدانید!
بلاک، بخش اساسی تکنولوژی بلاکچین است و میتوان آنها را به عنوان صفحات دفتر کل توزیع شده بلاکچین تصور کرد. هر بلاک حاوی اطلاعاتی از جمله تراکنشهای انجام شده در بستر بلاکچین است که اطلاعات این تراکنشها شامل زمان انجام، آدرس فرستنده و گیرنده، هش اختصاصی، و هش بلاک قبلی است.
معرفی بلاک | وظیفه Block در بلاکچین
درخت مرکل یا Merkle Tree چیست؟
درخت مرکل، یکی از اصطلاحات مرتبط با ارزهای دیجیتال است. این درخت که بخشی از هر بلاک در بلاکچین است، از ریاضیدان معروف رالف مرکل نام گرفته است. از این فناوری برای ارائه اطلاعات با استفاده از یک هش استفاده میشود. دادهها ابتدا هش میشوند و سپس مقادیر هش با یکدیگر ادغام شده و به یک هش واحد تبدیل میشوند که به آن ریشه درخت مرکل میگویند. برگهای این درخت نمایانگر تراکنشهای انجام شده در شبکه هستند و شاخههای درخت، هش برگها هستند.
با تضمین شاخصها و برگها، ساخت ریشه هش سریع و آسان صورت میگیرد. اما با توجه به خصوصیات توابع هش که تبدیل یکطرفهاند، اگر هش ریشه درخت مشخص باشد اما برگها و شاخهها نامشخص باشند، حدس زدن تراکنشها دشوار است.
ساختار بلاک در بلاکچین
ساختار بلاک در بلاکچین بهطور کلی، بلاک را میتوان به عنوان یک فایل ذخیرهسازی داده به صورت دائمی تعبیر کرد. هر بلاک از دو بخش هدر بلاک و بدنه بلاک تشکیل شده است. هدر بلاک اطلاعات مختلفی دارد که وظایف مختلفی را انجام میدهند و بدنه بلاک مکان ذخیره تاریخچه تراکنشهای تأیید شده است.
بدنه بلاک (Block Body)
بدنه بلاک محل ذخیره تاریخچه تراکنشهای تأیید شده است. ماینرها هنگام ایجاد بلاک، تراکنشها را انتخاب و تأیید میکنند و این تراکنشها برای بررسی آسانتر در بدنه بلاک ذخیره میشوند.
هدر بلاک (Block Header)
هدر بلاک نقش مهمی در فرآیندهای شبکه بلاکچین ایفا میکند.
بلاکها از طریق هدر به یکدیگر متصل میشوند و از طریق هش هدر در شبکه شناسایی میشوند. هدر به شش بخش تقسیم میشود که شامل نسخه برنامه، برچسب زمانی، هش بلاک قبلی، هش ریشه درخت مرکل، هدف و عدد نانس هستند. هر یک از این بخشها وظایف خاصی را در عملکرد کل بلاک انجام میدهند.
نسخه برنامه (Version)
شماره نسخه برنامه برای توصیف ساختار دادههای داخل بلاک استفاده میشود و از طریق این شماره، رایانهها محتوای بلاک را به راحتی تفسیر میکنند و ماینرها میتوانند از طریق این شماره نسخه برنامه، پروتکل مورد استفاده در شبکه را مشخص کنند.
برچسب زمانی (Timestamp)
این برچسب زمانی ترتیب زمانی بلاکها در بلاکچین را نشان میدهد و زمان ایجاد هر بلاک را مشخص میکند. علاوه بر اینکه نقش اساسی در ترتیب بلاکها دارد، برچسب زمانی نیز در تغییرات هش ریت و محافظت از بلاکچین نقش ایفا میکند.
هش بلاک قبلی (Last Block)
هش بلاک قبلی بهعنوان یکی از مقادیر هش در هدر بلاک قرار میگیرد و جلوگیری از سانسور و تقلب در بستر بلاکچین را تضمین میکند. این هش بهطور غیرقابلتغییر و حذف بودن اطلاعات داخل بلاکچین کمک میکند. اگر کسی قصد تغییر دادن دادههای یک بلاک را داشته باشد، باید همه هشهای بلاکهای قبلی را نیز تغییر دهد، که این کار غیرممکن است و اطلاعات در بلاکچین بدون تغییر باقی میماند.
هش درخت مرکل (Merkle Root)
با استفاده از هش، تمام اطلاعات موجود در یک بلاک (اطلاعات تراکنشها، هش اختصاصی و هش بلاک قبلی) در یک هش واحد یا ریشه درخت مرکل جمعآوری میشوند. این ریشه درخت مرکل میتواند به صورت سریع و آسان ساخته شود و بهعنوان یک نماینده از تمام اطلاعات بلاک استفاده میشود.
هدف (Target)
اندازه هش در بلاکچین با بیت اندازهگیری میشود و هش بلاک فعلی باید کوچکتر یا مساوی هش هدف باشد. هدف مشخصکنندهٔ میزان کوچکی مقدار هش است و تعیین میکند که هش چقدر باید کوچک باشد تا ماینرها آن را تأیید کنند.
عدد نانس (Nonce)
عدد نانس تنها یکبار استفاده میشود و از طریق الگوریتم اثبات کار به هش بلاک اضافه میشود. ماینرها با حل کردن مسئله ریاضی پیچیده بهدستآوردن این عدد را تلاش میکنند.
نحوه ساخت بلاک در بلاکچین چگونه ساخته
بلاکها توسط ماینرها یا استخراجکنندگان ایجاد میشوند. تراکنشها ابتدا در استخر حافظه (Memory Pool) ذخیره میشوند و منتظر تأیید گرهها میمانند. ماینرها تراکنشها را انتخاب و تأیید کرده و بلاک کاندید را ایجاد میکنند. برای افزودن بلاک به شبکه بلاکچین، ماینرها بر اساس هدف سختی شبکه به ساختهشده، بلاک را هش کرده و به زنجیره بلاکها اضافه میکنند.