احتمالا هر موقع که عبارت بلاکچین را جستجو کردهاید با این تعریف روبهرو شدهاید: “بلاکچین زنجیرهای از بلاکهاست که به یکدیگر متصل شدهاند.” این تعریف بسیار ساده و مختصر نشان میدهد که بلاکها یکی از اصلیترین مؤلفههای فناوری بلاکچین هستند. پس برای آشنایی کامل با بلاکچین، بهتر است مهمترین عضو آن یعنی «بلاک» را بشناسیم.
بلاک چیست؟
اگر کل بلاکچین را مثل یک دفتر یادداشت در نظر بگیریم، بلاکها صفحههای این دفتر هستند که به ترتیب به یکدیگر وصل شدهاند. درون هر یک از این بلاکها اطلاعات مختلفی ذخیره میشوند. این اطلاعات که مربوط به سوابق تراکنشها و مشخصات بلاک هستند، پس از نوشتن به هیچ وجه قابل تغییر یا حذف نیستند. هر بلاک دارای ظرفیت معینی برای ذخیرهسازی اطلاعات است. هنگامی که ظرفیت یک بلاک برای ذخیرهی اطلاعات تکمیل شد، بلاک بسته شده و به بلاکچین متصل میشود. سپس بلاک دیگری ساخته میشود و به همین ترتیب به زنجیره متصل میشود. هر بلاک از دو بخش اصلی هدر و بدنه تشکیل شده است که به بررسی آن ها میپردازیم.
هدر بلاک
هر بلاک یک هدر دارد که مهمترین جز بلاک به شمار میرود. در هدر اطلاعاتی وجود دارد که از آنها برای شناسایی بلاکی خاص در کل بلاکچین استفاده میشود؛ بنابراین هدر بلاک نقش اساسی در فرایندهای شبکه بلاکچین دارد. بلاکها از طریق اطلاعات موجود در هدر به یکدیگر متصل میشوند. بدون هدر، موقعیت بلاکها دربلاکچین مشخص نخواهد بود و بلاکها نمیتوانند با ترتیب خاصی به هم متصل شوند. هر هدر، شامل قسمتهای مختلفی است که به بررسی آن ها میپردازیم:
1. نسخه برنامه(Version)
این مؤلفه نشان میدهد که یک بلاک از چه نسخهای استفاده میکند. نسخه، ساختار اطلاعات و دادههای درون بلاک را توضیح میدهد. با استفاده از شمارهی نسخه، رایانهها میتوانند به آسانی اطلاعات داخل بلاک را مورد بررسی قرار دهند. اگر شمارهی نسخه یک بلاک با سایر بلاکها متفاوت باشد، آنها نمیتوانند بخشی از یک بلاکچین باشند. برای مثال: اگر نسخهی یک بلاک 2 باشد و سایر بلاکها نسخهی 3 باشند، بلاک نسخهی 2 نمیتواند در کنار این بلاکها قرار بگیرد و حذف میشود.
2. برچسب زمانی (Timestamp)
برچسب زمانی یا مهر زمانی، عددی است که در هر بلاک ذخیره میشود و لحظهی دقیق ایجاد و استخراج هر بلاک را نشان میدهد.
3. هش(Hash)
هش بلاک: همانطور که هر یک از ما اثر انگشت یا کد ملی منحصر به فردی داریم، هر بلاک هم کد منحصر به فردی به نام هش دارد تا قابل تشخیص از سایر بلاکها باشد. این هش که از یک سری اعداد و ارقام تشکیل شده، تمام اطلاعات مربوط به بلاک را مشخص میکند.
4. هش بلاک قبلی(Previous Block Hash)
هر بلاک علاوه بر هش خود، هشِ بلاک قبلی را هم دارد. همین موضوع، علت اصلی اتصال بلاکها به همدیگر و تشکیل زنجیرهای از بلاکها میباشد. هش بلاک قبلی مانع از تغییر و یا حذف اطلاعات بلاکچین میشود. اگر کسی قصد تغییر دادههای موجود در یک بلاک از سیستم کلی را داشته باشد، باید هش بلاک قبلی را نیز تغییر دهد که انجام این کار عملا غیر ممکن است.
5. ریشهی درخت مرکل(Merkle Root)
هر بلاک بسته به ظرفیت خود، حاوی تعدادی تراکنش است و هر یک از این تراکنشها، هش مخصوص به خود را دارند. زمانی که هش تمامی تراکنشهای درون یک بلاک باهم ادغام میشوند، یک هش واحد را میسازند. به این هش واحد، ریشهی درخت مرکل میگویند. ریشهی درخت مرکل مهمترین بخش هر بلاک است و با استفاده از آن میتوان در سریعترین زمان ممکن به اطلاعات مربوط به تراکنشهای درون بلاک دست یافت.
6. عدد نانس
احتمالا در مورد استخراج رمزارز ها مخصوصا بیتکوین مطالب زیادی خواندهاید. برای استخراج رمزارز ها کابران به یک رایانه به اسم ماینر نیاز دارند. ماینرها موقع استخراج رمزارز ها، وارد یک رقابت با یکدیگر میشوند. در این رقابت، ماینرها باید پاسخ یک معادلهی ریاضی را پیدا کنند و برای این کار باید مدام اعدادی را حدس بزنند . هر ماینری که عدد مدنظر را پیدا کند به عنوان ماینر برنده شناخته میشود و چند عدد از رمزارز بلاکچین مربوطه را به عنوان پاداش دریافت میکند. به این عدد که ماینرها در جستجوی آن هستند، «نانس» میگویند.
در این قسمت، با یک مثال ساده به بررسی مفهوم نانس میپردازیم. فرض کنید از شما سوال میشود: جمع 3 با چه عددی 7 میشود؟ شما شروع میکنید به حدس زدن عدد موردنظر. مثلا :
3+1=4
3+2=5
3+3=6
3+4=7
همانطور که مشاهده میکنید، عدد مورد نظر 4 است. با این که تمامی اعداد حدس زده شد نانس هستند، اما نانس صحیح عدد 4 است. البته این اعداد در بلاکچین چند رقمی هستند و بسیار طولانی. این مثال ساده، صرفا برای درک مطلب بود.
7. هش تارگت(Target Hash)
اگر ماینرها بخواهند بلاکی را استخراج و به عبارتی آن را به شبکهی بلاکچینی متصل کنند، باید ابتدا هش بلاک را تولید کنند. سپس هش بلاک با «هش تارگت» یا «هش هدف» مقایسه میشود؛ اگر هش بلاک کوچکتر یا مساوی هش هدف باشد، آن بلاک میتواند به شبکهی بلاکچینی متصل شود، در غیر این صورت ماینرها باید هش دیگری را تولید کنند. اما هش بلاک چگونه توسط ماینرها تولید میشود؟ برای تولید هش بلاک، ماینرها ابتدا باید مدام اعدادی را به اسم نانس حدس بزنند. هر بار که ماینری یک نانس را حدس میزند، این عدد به سرعت با استفاده از الگوهای رمزنگاری خاصی تبدیل به هش بلاک میشود و با هش هدف مقایسه میشود. هر چه مقدار هش هدف کوچکتر باشد، پیدا کردن نانس و استخراج بلاک سختتر میشود.
بدنهی بلاک
دومین بخش هر بلاک «بدنه» نام دارد که حاوی اطلاعات مربوط به تراکنشهای تایید شده است. این اطلاعات شامل موارد زیر است:
1)مشخصات خریدار (آدرس فرستندهی رمزارز)
2)مشخصات فروشنده (آدرس گیرندهی رمزارز)
3) مقدار رمزارز معامله شده
ناگفته نماند که تمامی این اطلاعات بر روی بلاکها بهصورت دائمی ذخیره میشود و بههیچعنوان قابل تغییر یا حذف نیستند. به همین دلیل است که فناوری بلاکچین امنیت بالایی دارد و امکان تقلب و کلاه برداری در آن وجود ندارد.