بلاک چیست؟ وظیفه Block در بلاکچین را بدانید!
بلاکچینها بستر اصلی فعالیت ارزهای دیجیتال مانند بیت کوین، اتریوم، ریپل و ارزهای مشابه دیگر هستند. فناوری بلاکچین است که امنیت این ارزها را فراهم میکند و سبب شده که امکان جعل آنها و تقلب در تراکنشهای ارزهای دیجیتال وجود نداشته باشد. بلاکچین زنجیرهای از بلاکهاست و Block رکن اصلی این شبکه است. پس برای آشنایی کامل با بلاکچین، باید بدانیم که Block چیست؟ در این مقاله میخواهیم بلاک در بلاکچین را به زبان بسیار ساده توضیح دهیم.
بلاک چیست؟
بلاک بخش اصلی فناوری بلاکچین است. آنها را میتوان صفحات دفتر کل توزیع شده بلاکچین دانست. هر Block حاوی اطلاعاتی مانند تراکنشهای صورتگرفته در بستر بلاکچین است که عبارتاند از: زمان انجام تراکنش، آدرس عمومی فرستنده و آدرس عمومی گیرنده، هش اختصاصی خود و هش Block قبلی.
تمام این اطلاعات روی بلاک بهصورت دائمی ذخیره میشود و بههیچعنوان قابل تغییر یا حذف نیستند. این ویژگی را سیستم رمزنگاری شبکه در بلاکها ایجاد میکند. بلاک در بلاکچین دارای بخشهای مختلفی است که یک هدف واحد را دنبال میکنند. هر یک از بخشهای آن وظایف مخصوص به خود دارند.
درخت مرکل یا Merkle tree چیست؟
درخت مرکل یکی از اصطلاحات ارز دیجیتال است. این درخت که بخشی از بلاک در بلاکچین است، نام خود را از ریاضیدان معروف، رالف مرکل گرفته است. با استفاده از این فناوری میتوان اطلاعات بسیاری را توسط یک هش ارائه کرد. بهاینترتیب که دادهها هش میشوند، سپس مقدارهای هش با یکدیگر ادغام شده و تبدیل به یک هش واحد میشوند. این هش واحد، ریشه درخت مرکل نام دارد. برگهای این درخت تراکنشهای صورتگرفته در شبکه هستند و شاخههای درخت، هش برگها هستند.
تا زمانی که شاخهها و برگهای درخت مشخص باشند، ساخت ریشه هش بسیار آسان و سریع صورت میگیرد. اما طبق قانون توابع هش که بهدستآوردن ورودی از خروجی هش تقریباً غیرممکن است (یکطرفه بودن تابع هش)؛ درصورتیکه هش ریشه درخت مرکل یا درخت درهم ساز مشخص باشد اما برگها (تراکنشها) و شاخهها (هش تراکنشها) نامشخص باشند، حدس زدن تراکنشها کار دشواری است.
ساختار بلاک در بلاکچین
بهطورکلی، بلاک را میتوان یک فایل ذخیرهسازی داده بهصورت دائمی دانست. هر Block از دو بخش هدر بلاک (Block Header) و بدنه بلاک (Block Body) تشکیل شده است. هدر Block خود شامل چندین بخش با وظایف مختلف است و بدنه Block محل بارگیری یا ذخیره اطلاعات Block بهحساب میآید.
بدنه بلاک (Block Body)
بدنه بلاک محل ذخیرهٔ تاریخچهٔ تراکنشهای تأیید شده است. هنگامی که ماینرها یک Block را ایجاد میکنند، در واقع یک تراکنش را اعتبارسنجی و تأیید کردهاند. آنها برای تأیید این تراکنشها، بررسی میکنند که فرستنده به میزان تراکنش موردنظر، ارز در حساب خود دارد یا خیر. این سوابق برای بررسی راحتتر در بدنه Block ذخیره میشود.
هدر بلاک (Header Block)
هدر بلاک نقش اساسی در فرایندهای شبکه بلاکچین دارد. بلاکها از طریق هدر به یکدیگر متصل میشوند و از طریق هش هدر در شبکه شناسایی میشوند. هدر به ۶ بخش که عبارتاند از: نسخه برنامه، برچسب زمانی، هش Block قبلی، هش ریشه درخت مرکل، هدف و عدد نانس، تقسیم میشود. هر یک از این بخشها وظایفی از عملیات کلی Block را برعهده دارند.
نسخه برنامه (Version): شماره نرمافزار یا نسخه برنامه بهمنظور توصیف ساختار دادههای داخل Block استفاده میشود. از طریق این شماره سریال، رایانهها میتوانند محتوای Block را بهراحتی بخوانند. همچنین ماینرها از طریق این شماره میتوانند مشخص کنند برای فعالیت درون شبکه از چه پروتکلی پیروی میکنند.
برچسب زمانی (Timestamp): برچسب زمانی ترتیب زمانی بلاکها در بلاکچین را نشان میدهد یا به عبارت سادهتر این پارامتر زمان ایجاد هر Block را مشخص میکند. یکی دیگر از کاربردهای مهم Timestamp نشان دادن تغییرات هش ریت و محافظت از بلاکچین در برابر عوامل مخرب است. در واقع میتوان گفت برچسب زمانی نقش امنیتی در زنجیره بلوک ایفا میکند.
هش بلاک قبلی (Last Block): هش block قبلی برای جلوگیری از سانسور و تقلب در بستر بلاکچین در کنار دادههای موجود در Block قرار میگیرد. این بخش از بلاک بهنوعی تضمینکنندهٔ غیرقابلتغییر و حذف بودن اطلاعات داخل بلاکچین است. اگر کسی قصد تغییر دادههای موجود در یک Block از سیستم کلی را داشته باشد، باید هش Block قبلی را نیز تغییر دهد. بهعبارتدیگر، باید هش تمام بلاکهای قبلی را تا نخستین Block ایجاد شده در زنجیره تغییر دهد که این روند غیرممکن است و هیچگاه اطلاعات داخل بلاکچین تغییر نخواهد کرد.
هش درخت مرکل (Merkle Root): میتوان تمام اطلاعات موجود Block که شامل اطلاعات تراکنشها (زمان انجام، آدرس فرستنده و گیرنده)، هش اختصاصی و هش Block قبلی است را در یک هش واحد جمعآوری کرد. به این مقدار هش، هش درخت مرکل یا درخت درهم ساز میگویند.
هدف (Target): اندازه هش در بلاکچین با بیت اندازهگیری میشود. هش فعلی Block باید کوچکتر یا مساوی هش هدف باشد. هرچه تعداد صفرهای اول مقدار هش بیشتر باشد؛ کوچکتر است. هدف سختی بلاک در بلاکچین مشخصکنندهٔ میزان کوچکی مقدار هش است. یعنی تعیین میکند هش چقدر کوچک باشد تا ماینرهای شبکه اعتبار آن را برای ثبت در سیستم تأیید کنند.
عدد نانس (Nonce): نانس به عددی گفته میشود که تنها یکبار استفاده میشود (Number Only Used Once) و از طریق آن ماینرها میتوانند هش کمتر از هدف سختی شبکه را حدس بزنند. این عدد از طریق الگوریتم اثبات کار (PoW) به هش Block اضافه میشود. بلاک بهتنهایی هش نمیشوند و به یک عدد دیگر برای فرایند رمزنگاری نیاز دارند. نانس همان عدد است.
بلاک در بلاکچین چگونه ساخته میشود؟
بلاکها توسط استخراجکنندگان یا همان ماینرها ایجاد میشوند. تراکنشها در بلاکچین بهسرعت و در همان زمان انتشار در شبکه انجام نمیشوند. آنها در استخر حافظه (Memory Pool) ذخیره میشوند و در انتظار تأیید گرهها (کاربران شبکه بلاکچین) میمانند.
در این مرحله، ماینرها تراکنشها را برای تأیید کردن انتخاب میکنند و در Block کاندید قرار میدهند. سپس برای افزودن این Block به شبکه بلاکچین تلاش میکنند.
بلاکها چطور به بلاکچین اضافه میشوند؟
ماینر Block کاندید را با بلاک هدر و بهترین عدد نانس بر اساس هدف سختی استخراج به زنجیره بلاکها یا همان بلاکچین اضافه میکند. بهاینترتیب که بلاک Block ک جدید را بهطوریکه هش آن کمتر از هدف سختی شبکه باشد، هش میکنند. سختی شبکه میزان دشواری استخراج Block جدید است و در بلاکچینهای مختلف متفاوت است. برای بلاکچین بیت کوین از سال ۲۰۱۶ به بعد این میزان در بازههای زمانی مختلف تغییر کرده است تا زمان استخراج هر Block به طور میانگین ۱۰ دقیقه باقی بماند.
رابطه ماینرها با Block
استخراج به معنای حل عدد نانس، تنها عدد متغیر در Block است. حل این عدد و بهدستآوردن هش آن، مستلزم حل کردن مسائل پیچیده ریاضی در شبکه است. بهعنوانمثال بیت کوین از هش رمزنگاری شده با نام SHA256 در الگوریتم خود استفاده میکند. یک ماینر بیت کوین باید این عدد را در برنامه ماینینگ خود استفاده کند تا بتواند مسئله موجود در شبکه را حل کرده و پاداش استخراج را دریافت کند.
مشکل اصلی در این است که تمام هدرهای بلاک قبلی به صورت تصادفی رمزگذاری می شوند. از این رو، هدر block فعلی یک عدد رمزگذاری شده تصادفی است که بر اساس اعداد رمزگذاری شده تصادفی بلاکهای قبلی و اطلاعات Block فعلی تولید میشود؛ بنابراین هر Block جدیدی که در بلاکچین بیت کوین ثبت میشود، فرایند استخراج را برای ماینرها دشوار میکند. این امر به سختی شبکه نیز معروف است.
سایر کاربردهای بلاک
از آنجایی که بیت کوین اولین رمزارز شناخته شده در بازار کریپتوکارنسی است، اغلب افراد به اشتباه فکر میکنند که مفهوم بلاک فقط مختص بلاکچین بیت کوین است. اما باید بدانید که بسیاری از رمزارزها از مفهوم بلاک در بلاکچین خود استفاده میکنند. بلاک در بلاکچین باعث میشود تا هک کردن یا دستکاری ارزهای دیجیتال برای مهاجمان بسیار دشوار شود. به همین دلیل است که بسیاری از بانکهای سراسر جهان به دنبال استفاده از مزایای بلاک و بلاکچین برای حفظ اطلاعات خود هستند.
امروزه بلاک در بلاکچین علاوه بر ارزهای دیجیتال برای ایجاد برنامههای مالی غیرمتمرکز، توکن غیر قابل معاوضه (NFT) استفاده میشود. با توجه به اینکه میتوان گفت بلاکچین یک فناوری نوظهور است هنوز تمام کاربردهای آن مورد استفاده قرار نگرفته است. دور از انتظار نیست که به زودی بلاک و بلاکچین به زندگی روزمره انسان نیز ورود کند و همه چیز را متحول کند.
دوبار خرج کردن یک نقص بالقوه در سیستم های ارزهای دیجیتال است که به احتمال بیش از یک بار خرج شدن یک ارز دیجیتال اشاره دارد.
ماینرها از طریق فرآیندی به نام ماینینگ، بلوکهای جدیدی را روی زنجیره ایجاد می کنند. هر بلوک دارای nonce و هش منحصر به فرد خود است، اما به هش بلوک قبلی در زنجیره نیز اشاره میکند.
بلوکها با اعداد طولانی که شامل اطلاعات تراکنش های رمزگذاری شده از بلوک های قبلی و اطلاعات تراکنش های جدید است، شناسایی میشوند. قبل از ایجاد بلوکهای جدید، بلوکها و اطلاعات درون آنها باید توسط یک شبکه تأیید شود.
به طور متوسط روزانه ۱۴۴ بلاک استخراج میشود و در هر بلوک ۶.۲۵ بیت کوین وجود دارد.
گام قبلی (۹/۲۷) گام بعدی
باسلام و عرض ادب
باتشکر از مطالب مفید شما بزرگوار، برای یکی از رمز ارز من مشکلی پیش آمده خودبخود lock گردیده ،اگر در این زمینه میتوانید کمکی در خرج شدن این رمز ارز بنده از بلاک بودن داشته باشید، ممنون و سپاسگزار شما خواهم بود، تشکر مجدد،
سلام و عرض ادب
توکن لاک شده شما چیست؟ توجه داشته باشید برخی رمزارزها برای فعال سازی کیف پول خود مقداری از موجودی را قفل میکنند. به عنوان مثال این برای ریپل ۲۰ xrp است.
سلام و عرض ادب از مطالب مفیدتون استفاده کردم ولی متوجه این جمله نمیشم “هدف سختی در بلاک مشخص کنندهی میزان کوچکی مقدار هش است”ممکن هست که بیشتر توضیح بدید؟ممنونم پیشاپیش
سلام
وقت به خیر
هر بلاک در بلاکچین بیت کوین، مشخصات خاصی دارد، مانند شناسنامه هر فرد.
یکی از این مشخصات، عدد نانس بلاک است. عدد نانس، یک عدد ۳۲ بیتی است که با صفر شروع میشود. عدد نانس است که هش را مشخص میکند.
هر چه تعداد صفرهایی که اول عدد نانس قرار دارد بیشتر باشد، برای دستگاههای ماینر حدس زدن آن سخت تر خواهد شد. یعنی اگر عدد نانس کوچکتری برای استخراج بلاک لازم داشته باشیم، به این معنی است سختی استخراج بالاتر رفته است.
امیدواریم این توضیح به شما برای درک جمله و مقاله کمک کند. اگر کافی نبود، لطفاً دوباره کامنت بگذارید.
از همراهی شما ممنونیم.