«بلاکچین» یکی از پرکاربردترین واژهها در دنیای رمزارزهاست، اما استفاده زیاد از این کلمه گاهی باعث میشود مفهوم اصلی آن مبهم شود. برای فهم بیتکوین، بلاکچین را نباید یک فناوری جادویی یا مترادف رمزارز دانست. در بیتکوین، بلاکچین بخشی از معماری شبکه است که تاریخچه پذیرفتهشده تراکنشها را در قالب بلاکهای مرتبشده نگهداری میکند.
برای اینکه این ساختار کار کند، چند جزء باید همزمان کنار هم قرار بگیرند: تراکنشها، نودها، امضاهای دیجیتال، هشها، Proof of Work و قواعد اجماع. هرکدام بخشی از مسئله را حل میکنند.
دفترکل توزیعشده یعنی چه؟
دفترکل را میتوان سابقهای از تراکنشها و وضعیت قابل خرج شبکه دانست. در بانکداری سنتی، یک یا چند نهاد مشخص مسئول نگهداری دفتر هستند و سیستمهای آنها مشخص میکنند کدام انتقال معتبر است.
در بیتکوین، هر نود کامل میتواند نسخهای از بلاکچین را نگهداری و بلاکها را مستقل اعتبارسنجی کند. نودها دادههای دریافتی را با قواعد پروتکل بررسی میکنند و تراکنشها و بلاکهای معتبر را به همتایان خود میفرستند.
«توزیعشده» به این معنی نیست که تمام نودها در هر لحظه دقیقاً یک فهرست یکسان دارند. ممکن است یک نود هنوز بلاکی را دریافت نکرده باشد یا تراکنشی را در ممپول خود نداشته باشد. نکته اصلی این است که نودها برای تشخیص اعتبار از قواعد مشترک استفاده میکنند.
بلاک چیست؟
تراکنشها در مجموعههایی به نام بلاک قرار میگیرند. هر بلاک یک سربرگ و مجموعه تراکنشها دارد. در سربرگ، از جمله اطلاعات مهم، هش سربرگ بلاک قبلی و Merkle Root قرار میگیرد.
Merkle Root خلاصه رمزنگاریشدهای از تراکنشهای بلاک است. اگر داده یکی از تراکنشها تغییر کند، درخت مرکل و در نتیجه ریشه مرکل تغییر میکند. بنابراین سربرگ بلاک دیگر با داده تراکنشهای آن سازگار نخواهد بود.
اگر بلاکچین را شبیه دفتر ثبت تصور کنیم، هر بلاک مانند یک صفحه است؛ با این تفاوت که صفحات از نظر رمزنگاری به یکدیگر پیوند دارند و اضافهشدن صفحه جدید نیز تابع قواعد اجماع است.
هش چیست؟
هش نتیجه اجرای یک تابع ریاضی روی داده ورودی است. در یک تابع هش رمزنگاری مناسب، تغییر کوچک در ورودی میتواند خروجی بسیار متفاوتی ایجاد کند و یافتن ورودی اصلی از روی خروجی نیز عملاً دشوار باشد.
بیتکوین از هش در بخشهای مختلف استفاده میکند: برای شناسایی تراکنشها، ساخت Merkle Root و پیوند بلاکها. این کاربردها یک نکته مشترک دارند: تغییر داده، اثر قابل تشخیصی در خلاصه رمزنگاریشده ایجاد میکند.
هش بهتنهایی جلوی تغییر داده را نمیگیرد. اهمیت آن زمانی بیشتر میشود که با ساختار بلاکها و Proof of Work ترکیب شود.
Proof of Work چه ارتباطی با بلاکچین دارد؟
در بیتکوین، ماینرها باید برای سربرگ بلاک پیشنهادی خود یک هش پیدا کنند که از هدف تعیینشده توسط پروتکل بیشتر نباشد. چون خروجی هش برای ورودیهای مختلف رفتار غیرقابل پیشبینی دارد، ماینر ناچار است تلاشهای زیادی انجام دهد.
این هزینه محاسباتی باعث میشود ایجاد یک تاریخچه جایگزین پرهزینه باشد. اما Proof of Work بهتنهایی تعیین نمیکند هر بلاکی معتبر است؛ نودها همچنان باید تمام قواعد اجماع را بررسی کنند.
پس دو سؤال جدا داریم: «چه کسی توانسته یک اثبات کار معتبر پیدا کند؟» و «آیا کل بلاک از نظر قواعد بیتکوین معتبر است؟» پاسخ سؤال دوم را نودهای اعتبارسنج میدهند.
نودها چه چیزی را بررسی میکنند؟
نود کامل فقط به حرف ماینر اعتماد نمیکند. هنگام دریافت بلاک، موارد مختلفی بررسی میشوند؛ از جمله ساختار بلاک، اعتبار تراکنشها، شرایط خرجکردن خروجیها، قوانین مربوط به پاداش، Proof of Work و ارتباط بلاک با زنجیرهای که نود معتبر میداند.
اگر ماینری پاداشی بیش از مقدار مجاز برای خود ایجاد کند، بلاک او با وجود Proof of Work میتواند نامعتبر باشد. همین موضوع تفاوت میان قدرت محاسباتی و اختیار تعیین قوانین را روشن میکند.
چرا تغییر یک تراکنش قدیمی دشوار است؟
فرض کنید تراکنشی در بلاکی قدیمی قرار گرفته و فردی بخواهد آن را تغییر دهد. تغییر تراکنش میتواند Merkle Root را تغییر دهد؛ در نتیجه سربرگ بلاک نیز تغییر میکند و Proof of Work قبلی دیگر برای سربرگ جدید معتبر نیست.
از آنجا که بلاک بعدی هش سربرگ بلاک قبلی را در خود دارد، تغییر بلاک قدیمی زنجیره بعدی را نیز تحت تأثیر قرار میدهد. مهاجم باید بلاک تغییرکرده و بلاکهای بعدی را دوباره استخراج کند و سپس با زنجیرهای که شبکه معتبر میداند رقابت کند.
بنابراین «تغییرناپذیری» بهتر است بهصورت افزایش شدید هزینه تغییر تاریخچه فهمیده شود، نه یک غیرممکن ریاضی مطلق.
تأیید تراکنش در بلاکچین یعنی چه؟
وقتی تراکنش در یک بلاک معتبر قرار میگیرد، معمولاً گفته میشود یک تأیید دارد. با ساختهشدن بلاک بعدی، عمق آن بیشتر میشود.
هر تأیید اضافی به این معنی نیست که یک «مهر مدیریتی» جدید روی تراکنش خورده است؛ بلکه یعنی بلاکهای بیشتری روی آن ساخته شده و بازنویسی تاریخچه برای مهاجم پرهزینهتر شده است.
به همین دلیل تعداد تأیید مورد نیاز به کاربرد و ریسک بستگی دارد. برای برخی پرداختهای کوچک، یک تأیید میتواند کافی باشد؛ برای انتقالهای با ارزش بالا، ممکن است سرویس مقصد منتظر چند تأیید باشد.
سختی شبکه چگونه با زمان بلاک ارتباط دارد؟
بیتکوین برای تولید بلاکها یک زمان هدف حدود ۱۰ دقیقه در نظر میگیرد، اما هیچ بلاکی مجبور نیست دقیقاً در ۱۰ دقیقه پیدا شود. پیدا شدن هر بلاک یک فرایند احتمالاتی است.
برای تنظیم نرخ متوسط تولید بلاک، سختی شبکه در دورههای مشخص بازتنظیم میشود. در شبکه اصلی، این تنظیم هر ۲٬۰۱۶ بلاک انجام میشود و بازه هدف برای این تعداد بلاک حدود دو هفته است.
این سازوکار یکی از دلایلی است که افزایش یا کاهش موقت قدرت محاسباتی شبکه الزاماً زمان متوسط تولید بلاک را برای همیشه تغییر نمیدهد.
بلاکچین با پایگاه داده معمولی چه تفاوتی دارد؟
پایگاه داده معمولی میتواند بسیار سریع و کارآمد باشد و در بسیاری از مسائل انتخاب مناسبتری است. مزیت اصلی بلاکچین بیتکوین در این نیست که از هر پایگاه دادهای سریعتر یا ارزانتر است.
مسئله اصلی این است که چگونه چندین مشارکتکننده مستقل، بدون یک دفترکل مرکزی، درباره تاریخچه معتبر یک سیستم مالی مشترک به توافق برسند. در بیتکوین، اعتبارسنجی مستقل نودها، Proof of Work و قواعد اجماع برای پاسخ به همین مسئله کنار هم قرار گرفتهاند.
بنابراین استفاده از بلاکچین برای هر مسئلهای الزاماً منطقی نیست. اگر یک مرجع مورد اعتماد میتواند پایگاه داده مرکزی را با هزینه و پیچیدگی کمتر مدیریت کند، مزیتهای خاص یک دفترکل عمومی ممکن است ضرورتی نداشته باشند.
بلاکچین چه چیزی را تضمین نمیکند؟
بلاکچین میتواند اعتبار داده را طبق قواعد شبکه بررسی کند، اما نمیتواند حقیقت دنیای بیرون را تشخیص دهد.
مثلاً اگر کسی دادهای نادرست درباره یک رویداد واقعی وارد یک سیستم کند، رمزنگاری بهتنهایی نمیتواند صحت آن ادعا را تأیید کند. این تفاوت میان «درست بودن از نظر پروتکل» و «درست بودن در دنیای واقعی» مهم است.
آیا بلاکچین همان بیتکوین است؟
خیر. بیتکوین مجموعهای از اجزای بههمپیوسته است و بلاکچین فقط یکی از آنهاست.
تراکنشها ارزش را جابهجا میکنند، کلیدها اختیار خرجکردن را اثبات میکنند، نودها قواعد را اعتبارسنجی میکنند، ماینرها با Proof of Work در ساخت بلاک مشارکت میکنند و بلاکچین تاریخچه پذیرفتهشده را سازماندهی میکند.
حذف هرکدام از این مفاهیم، تصویر کاملی از سازوکار بیتکوین به دست نمیدهد.
جمعبندی
برای فهم بلاکچین بیتکوین، این زنجیره مفهومی را در ذهن داشته باشید:
تراکنش - Merkle Root - سربرگ بلاک - هش بلاک قبلی - Proof of Work - اعتبارسنجی نودها - ادامه زنجیره
بلاکچین بهتنهایی دادهها را جادویی و مطلقاً تغییرناپذیر نمیکند. آنچه تغییر تاریخچه را پرهزینه میکند، ترکیب ساختار رمزنگاری، Proof of Work، قواعد اجماع و رقابت محاسباتی است.
برای ادامه، تراکنش بیتکوین چگونه انجام میشود؟ و استخراج بیتکوین چیست؟ را بخوانید.
منابع و مراجع
- Bitcoin Developer Guide — Block Chain
- Bitcoin Developer Guide — Transactions
- Bitcoin Developer Guide — Mining
این مطلب با هدف آموزش و تحلیل تهیه شده است و نباید بهعنوان توصیه قطعی برای خرید، فروش یا شرطبندی تلقی شود.