رمز ۱۰۲مرحلهٔ پایه، درس ۲ از ۲۲ بلاکچین و فناوری
بلاکچین چیست به زبان ساده؛ راهنمای مصور
بلاکچین چیست؟ این راهنمای مصور مفهوم بلوک، هش و زنجیره را از پایه، مستقل از سرمایهگذاری، با مثال واقعی کاربردی فراتر از ارز دیجیتال توضیح میدهد.
پیشنیاز رمز ۱۰۱ کریپتو چیست و چطور کار میکند؛ راهنمای جامع مبتدی
بلاکچین یک فناوری برای ثبت داده بهصورت غیرمتمرکز است: بهجای اینکه یک سازمان یا سرور مرکزی دفتر ثبت را نگه دارد، این دفتر به شکل زنجیرهای از «بلوک»های بههممتصل روی هزاران رایانهٔ مستقل کپی میشود. هر بلوک شامل چند رکورد و یک اثر انگشت دیجیتال (هش) از بلوک قبلی خودش است، به همین دلیل تغییر یک بخش قدیمی از زنجیره تقریباً غیرممکن میشود. بیتکوین اولین کاربرد شناختهشدهٔ این فناوری بود، اما خود بلاکچین یک ابزار عمومیتر است که فراتر از ارز دیجیتال هم استفاده میشود، همانطور که در ادامهٔ این مقاله میبینید.
بلاکچین دقیقاً چیست؟
سادهترین راه برای فهم بلاکچین این است که آن را با یک دفترچهٔ حساب مشترک مقایسه کنید. فرض کنید چند نفر میخواهند یک دفترچه را با هم به اشتراک بگذارند تا هرکس بداند چه کسی به چهکسی چه چیزی بدهکار است. اگر این دفترچه فقط یک نسخه داشته باشد و دست یک نفر باشد، همان یک نفر میتواند رکوردها را پاک یا تغییر دهد. بلاکچین این مشکل را با دو ایده حل میکند: اول، بهجای یک نسخه، هزاران نسخهٔ یکسان از این دفترچه روی رایانههای مستقل و غیرمرتبط با هم (که «نود» نامیده میشوند) نگهداری میشود. دوم، رکوردهای تازه در «بلوک»هایی بستهبندی میشوند که هرکدام با استفاده از رمزنگاری به بلوک قبلی خودشان قفل میشوند؛ تغییر یک رکورد قدیمی یعنی باید قفل آن بلوک و همهٔ بلوکهای بعدی، روی هزاران نسخهٔ مستقل، همزمان باز و دوباره بسته شود — کاری که در عمل تقریباً غیرممکن است.
نکتهٔ مهم: بلاکچین یک فناوری زیرساختی است، نه یک محصول یا یک ارز. کریپتو (ارز دیجیتال) رایجترین کاربرد شناختهشدهٔ آن است، اما همانطور که در بخش «بلاکچین فقط برای کریپتو نیست» در همین مقاله میبینید، از این فناوری برای ثبت مالکیت زمین و چند حوزهٔ دیگر هم استفاده شده است. اگر میخواهید دربارهٔ خود کریپتو و نحوهٔ کار آن با جزئیات بیشتر بدانید، مقالهٔ «کریپتو چیست و چطور کار میکند» را ببینید؛ این مقاله روی مکانیزم بلاکچین بهعنوان یک فناوری مستقل تمرکز دارد.
بلاکچین از کجا آمد؛ داستانی که از بیتکوین شروع نشد
خیلیها فکر میکنند بلاکچین با بیتکوین متولد شد، اما ایدهٔ اصلی زنجیرهکردن رکوردها با رمزنگاری، سالها زودتر مطرح شده بود. در سال ۱۹۹۱، دو پژوهشگر به نامهای استوارت هابر (Stuart Haber) و اسکات استورنتا (W. Scott Stornetta) مقالهای با عنوان «How to Time-Stamp a Digital Document» (چگونه یک سند دیجیتال را زمانمهر بزنیم) در نشریهٔ Journal of Cryptology منتشر کردند [۱]. ایدهٔ آنها این بود: برای اینکه بشود ثابت کرد یک سند دیجیتال دقیقاً در چه زمانی ساخته یا تغییر داده شده — بدون امکان جعل تاریخ، حتی توسط خود سرویس زمانمهر — باید مهرهای زمانی را بهصورت زنجیرهای به هم متصل کرد، طوری که هر مهر جدید به مهر قبلی خودش وابسته باشد.
این ایده تقریباً همان مکانیزمی است که بعدها بلاکچین بیتکوین را ممکن کرد. وقتی فردی (یا گروهی) با نام مستعار ساتوشی ناکاموتو وایتپیپر بیتکوین را در سال ۲۰۰۸ منتشر کرد، از میان تنها ۸ منبعی که در فهرست ارجاعات آن آمده، ۳ مورد مستقیماً به کار هابر و استورنتا دربارهٔ زمانمهر رمزنگاریشده اشاره داشت — یعنی همان مفهوم زنجیرهٔ رمزنگاریشده، سالها پیش از بیتکوین، پایهگذاری شده بود [۲، ۳]. آنچه بیتکوین اضافه کرد، ترکیب همین ایده با یک شبکهٔ کاملاً غیرمتمرکز از رایانههای ناشناس بود که بدون نیاز به یک سرویس مرکزی زمانمهر، با هم به توافق میرسیدند. اولین بلوک این شبکه (که «بلوک جنسیس» نامیده میشود) در ۳ ژانویهٔ ۲۰۰۹ استخراج شد [۴].
بلوک، هش و زنجیره: مکانیزم فنی به زبان ساده
برای فهم بلاکچین باید ابتدا بفهمید «هش» چیست. یک تابع هش رمزنگاریشده (Cryptographic Hash Function)، طبق تعریف مؤسسهٔ ملی استاندارد و فناوری آمریکا (NIST)، ورودیای با هر طولی (یک کلمه، یک کتاب کامل، یا یک فایل تصویری) را میگیرد و آن را به یک خروجی با طول ثابت تبدیل میکند [۵]. این تابع باید دو ویژگی داشته باشد: یکطرفه بودن (از روی خروجی عملاً نمیشود ورودی اصلی را بازسازی کرد) و مقاومبودن در برابر برخورد (پیدا کردن دو ورودی متفاوت که خروجی یکسانی تولید کنند، عملاً غیرممکن است). ویژگی مهم دیگر این توابع در عمل این است که کوچکترین تغییر در ورودی — حتی تغییر یک نویسهٔ کوچک — خروجی را کاملاً و غیرقابلپیشبینی متفاوت میکند.
بلاکچین از همین ویژگی برای زنجیرهکردن بلوکها استفاده میکند. مسیر معمول اضافهشدن یک بلوک تازه به این شکل است:
- جمعآوری رکوردها: چند تراکنش یا رکورد تازه که هنوز تأیید نشدهاند، در یک بلوک جدید کنار هم قرار میگیرند.
- محاسبهٔ هش بلوک قبلی: این بلوک تازه، هش بلوک درستقبل از خودش را در سرآیند (Header) خودش ذخیره میکند — همین اشاره است که بلوکها را به هم «زنجیر» میکند.
- توافق شبکه: نودهای مستقل شبکه دربارهٔ معتبربودن این بلوک تازه با هم به توافق میرسند (جزئیات این توافق در بخش بعدی آمده است).
- افزودن به زنجیره و انتشار: بعد از توافق، بلوک تازه به کپیهای زنجیره روی همهٔ نودها اضافه میشود؛ از این لحظه، هر بلوک بعدی که ساخته شود، به این بلوک هم اشاره خواهد کرد.
نتیجهٔ این طراحی این است: اگر کسی بخواهد یک رکورد قدیمی را تغییر دهد، هش آن بلوک عوض میشود؛ چون بلوک بعدی به هش قدیمی آن بلوک اشاره کرده، این تغییر بلوک بعدی را هم نامعتبر میکند، و همینطور تا آخرین بلوک زنجیره ادامه پیدا میکند. برای اینکه این تغییر روی کل شبکه پذیرفته شود، فرد خرابکار باید همهٔ این بلوکها را دوباره بسازد و همزمان بیشتر نودهای مستقل شبکه را هم قانع کند که نسخهٔ جعلی را جایگزین کنند — کاری که در شبکههای بزرگ و توزیعشده عملاً غیرعملی است.
-
بلوک ۱
بلوک آغاز (جنسیس)
نخستین تراکنشها
اشاره به بلوک قبلی: ندارد
-
بلوک ۲
چند تراکنش
اثر انگشت (هش) بلوک ۱
-
بلوک ۳
چند تراکنش
اثر انگشت (هش) بلوک ۲
-
بلوک ۴
تازهترین
تراکنشهای تازه
اثر انگشت (هش) بلوک ۳
مکانیزم اجماع: چطور هزاران نود بدون یک رئیس به توافق میرسند؟
سوالی که معمولاً اینجا پیش میآید این است: وقتی هیچ نهاد مرکزی وجود ندارد، هزاران رایانهٔ مستقل چطور دربارهٔ معتبربودن یک بلوک تازه توافق میکنند؟ پاسخ در چیزی است که «مکانیزم اجماع» (Consensus Mechanism) نامیده میشود: مجموعهای از قواعد ریاضی که تعیین میکند چه زمانی یک بلوک تازه پذیرفته میشود. دو مکانیزم رایج، اثبات کار (Proof of Work) و اثبات سهام (Proof of Stake)، هرکدام روش متفاوتی برای تعیین اینکه «چه کسی حق تأیید بلوک بعدی را دارد» استفاده میکنند:
- اثبات کار: رایانههایی به نام ماینر با صرف توان محاسباتی رقابت میکنند تا بلوک بعدی را بسازند. بیتکوین از همین روش استفاده میکند و طوری طراحی شده که بهطور میانگین حدود هر ۱۰ دقیقه یک بلوک تازه ساخته شود [۶]. امنیت این روش از هزینهٔ واقعی برق و سختافزار میآید و همین هزینه مصرف انرژی آن را بالا میبرد.
- اثبات سهام: بهجای توان محاسباتی، داراییای که هر شرکتکننده در شبکه قفل کرده تعیین میکند چه کسی بلوک بعدی را تأیید کند. اتریوم در ۱۵ سپتامبر ۲۰۲۲ از اثبات کار به این روش رفت [۷]. مصرف انرژی این روش بسیار کمتر است، ولی امنیتش به توزیع دارایی قفلشده بستگی دارد.
نکتهٔ اصلی این است که مکانیزم اجماع، جایگزین اعتماد به یک نهاد مرکزی میشود؛ بدون آن، بلاکچین فقط یک فایل معمولی روی چند رایانه بود، نه یک دفتر قابلاعتماد. تاریخچه و قواعد شبکهٔ بیتکوین، مثل سقف عرضه و هاوینگ، در درس بیتکوین چیست آمده است.
بلاکچین فقط برای کریپتو نیست
یکی از رایجترین تصورهای غلط این است که بلاکچین معادل ارز دیجیتال است. سازمانها و حتی دولتها بارها این فناوری را برای ثبت دادههایی آزمودهاند که هیچ ربطی به پرداخت مالی نداشته است. یکی از شناختهشدهترین نمونهها، پروژهٔ ثبت مالکیت زمین در گرجستان (Georgia) است: در سال ۲۰۱۶، آژانس ملی ثبت اسناد عمومی گرجستان (NAPR) با همکاری شرکت فناوری Bitfury، طرحی آزمایشی را کلید زد که در آن، بخشی از فرایند ثبت اسناد مالکیت زمین روی بلاکچین بیتکوین نوشته میشد [۸]. طبق گزارش مجلهٔ Forbes در همان سال، این اولین بار بود که یک دولت ملی از بلاکچین بیتکوین برای تثبیت و راستیآزمایی یک اقدام رسمی دولتی استفاده میکرد. طبق همین گزارش، هزینهٔ ثبت یک سند که پیش از این میتوانست تا ۲۰۰ دلار برسد، در این طرح آزمایشی به حدود ۱۰ سنت کاهش یافت [۸].
این تنها یک نمونه است؛ نکتهٔ مشترک همهٔ کاربردهای غیرکریپتویی بلاکچین این است که آنها به همان ویژگی اصلی این فناوری متکیاند — یک رکورد که بعد از ثبت، تغییر آن بدون توافق شبکه عملاً غیرممکن است — نه به وجود یک ارز دیجیتال.
بلاکچین در برابر یک پایگاه دادهٔ متمرکز معمولی
برای اینکه تفاوت این دو رویکرد ملموستر شود، جدول زیر چند ویژگی کلیدی را کنار هم میگذارد:
| ویژگی | پایگاه دادهٔ متمرکز معمولی | بلاکچین |
|---|---|---|
| محل نگهداری داده | یک یا چند سرور تحت کنترل یک سازمان واحد | هزاران نسخهٔ یکسان روی نودهای مستقل |
| تغییر رکورد قدیمی | معمولاً از نظر فنی ساده است (با دسترسی مدیریتی) | عملاً غیرممکن بدون بازسازی و توافق مجدد کل زنجیره |
| نیاز به اعتماد به یک نهاد واحد | بله؛ باید به مدیر سرور اعتماد کرد | نه؛ اعتماد از توافق ریاضی شبکه میآید |
| سرعت و هزینهٔ پردازش | معمولاً سریعتر و ارزانتر | معمولاً کندتر و پرهزینهتر، به دلیل نیاز به توافق همگانی |
| شفافیت برای بیرون | معمولاً بسته و خصوصی | در بلاکچینهای عمومی، قابلمشاهده برای همه |
هیچکدام از این دو رویکرد بهطور مطلق «بهتر» نیست؛ انتخاب بین آنها به این بستگی دارد که یک سیستم بیشتر به سرعت و کارایی نیاز دارد یا به مقاومت در برابر تغییر یکطرفهٔ داده توسط یک نهاد.
هشدار
«بلاکچین» و «کریپتو» را با هم اشتباه نگیرید، و همچنین توجه کنید که غیرمتمرکز بودن یک مصالحهٔ واقعی دارد، نه فقط مزیت: وقتی هیچ نهاد مرکزی مسئول نیست، هیچکس هم نمیتواند یک اشتباه یا تراکنش نادرست را یکطرفه لغو کند. امنیت پروتکل بلاکچین (زنجیرهٔ بلوکها) با امنیت نرمافزارهای اطراف آن — مثل کیف پول یا صرافی — یکی نیست؛ جزئیات نگهداری امن دارایی دیجیتال در مقالهٔ کیف پول ارز دیجیتال پوشش داده شده است.
چند باور غلط رایج دربارهٔ بلاکچین
- «بلاکچین یعنی کریپتو.» نادرست است؛ کریپتو فقط یکی از کاربردهای بلاکچین است، همانطور که در بخش «بلاکچین فقط برای کریپتو نیست» دیدیم.
- «بلاکچین را نمیشود هک کرد.» دقیق نیست؛ تغییر خود زنجیرهٔ بلوکها در یک شبکهٔ بزرگ و توزیعشده عملاً بسیار سخت است، اما این تضمینی برای امنیت کیف پول، صرافی یا نرمافزار اطراف آن نیست — بیشتر حوادث امنیتی معروف کریپتو، از نقطهضعف نرمافزار یا کلید خصوصی افراد سرچشمه گرفتهاند، نه از شکستن خود زنجیره.
- «بلاکچین یک شبکهٔ واحد است.» نادرست؛ صدها بلاکچین مستقل با قواعد فنی متفاوت وجود دارد (بیتکوین و اتریوم فقط دو نمونهاند)؛ هرکدام سرعت، هزینه و هدف متفاوتی دارند.
- «بلاکچین همیشه عمومی و قابلمشاهده برای همه است.» نه لزوما؛ در کنار بلاکچینهای عمومی مثل بیتکوین، بلاکچینهای خصوصی یا مجاز (Permissioned) هم وجود دارند که فقط اعضای مشخصی به آنها دسترسی دارند و معمولاً برای کاربردهای سازمانی بهکار میروند.
جمعبندی: چند نکتهٔ کلیدی
- بلاکچین یک فناوری برای ثبت داده بهصورت غیرمتمرکز و زنجیرهای است، نه یک ارز یا محصول خاص.
- ریشهٔ مفهومی آن به پژوهش هابر و استورنتا در سال ۱۹۹۱ برمیگردد، سالها پیش از بیتکوین.
- هر بلوک با استفاده از یک تابع هش رمزنگاریشده به بلوک قبلیاش متصل میشود؛ همین اتصال تغییر گذشته را عملاً غیرممکن میکند.
- مکانیزم اجماع، جایگزین یک نهاد مرکزی برای رسیدن به توافق دربارهٔ صحت دادههاست.
- کاربرد این فناوری فراتر از کریپتو میرود؛ ثبت مالکیت زمین در گرجستان یک نمونهٔ مستند آن است.
- غیرمتمرکز بودن یک مصالحهٔ واقعی دارد: امنیت بیشتر در برابر تغییر یکطرفه، در ازای سرعت و برگشتپذیری کمتر.
برای آشنایی با کاربرد بلاکچین در دنیای ارزهای دیجیتال، از جمله نحوهٔ کار یک تراکنش کریپتویی و تفاوت بیتکوین با اتریوم، مقالهٔ «کریپتو چیست و چطور کار میکند» گام بعدی طبیعی است.
درسهای دیگر این بخش در صفحهٔ بلاکچین و فناوری فهرست شدهاند.
خودتان را بسنجید
تفاوت بلاکچین و بیتکوین چیست؟
بلاکچین یک فناوری عمومی برای ثبت داده بهصورت زنجیرهای و غیرمتمرکز است؛ بیتکوین اولین و شناختهشدهترین شبکهای است که از این فناوری استفاده کرد و اولین بلوکش (بلوک جنسیس) در ۳ ژانویهٔ ۲۰۰۹ استخراج شد. اما بلاکچین بهعنوان یک ایدهٔ فنی، مستقل از بیتکوین وجود دارد و شبکههای دیگری هم از آن استفاده میکنند.
آیا بلاکچین قابل هک شدن است؟
تغییر خود زنجیرهٔ بلوکها در یک شبکهٔ بزرگ و توزیعشده عملاً بسیار دشوار است، چون نیازمند بازسازی و توافق مجدد هزاران نسخهٔ مستقل همزمان است. اما این موضوع تضمینی برای امنیت کیف پول، صرافی یا نرمافزار اطراف بلاکچین نیست؛ بیشتر حوادث امنیتی معروف، از ضعف در همین لایههای اطراف ناشی شدهاند، نه از شکستن خود زنجیره.
آیا فقط ارزهای دیجیتال از بلاکچین استفاده میکنند؟
نه. برای نمونه، در سال ۲۰۱۶ آژانس ملی ثبت اسناد گرجستان با همکاری شرکت Bitfury، بخشی از فرایند ثبت مالکیت زمین را روی بلاکچین بیتکوین اجرا کرد؛ این پروژه ربطی به نگهداری ارز دیجیتال توسط شهروندان نداشت و فقط از ویژگی ثبت غیرقابلتغییر بلاکچین استفاده میکرد.
بلاکچین عمومی و بلاکچین خصوصی چه فرقی دارند؟
در بلاکچین عمومی (مثل بیتکوین یا اتریوم)، هرکسی میتواند بدون اجازه به شبکه بپیوندد و تاریخچهٔ کامل تراکنشها را ببیند. در بلاکچین خصوصی یا مجاز (Permissioned)، فقط اعضای از پیش تعیینشده به شبکه دسترسی دارند؛ این نوع معمولاً برای کاربردهای سازمانی، مثل ردیابی داخلی زنجیرهٔ تأمین، بهکار میرود.
آیا دادههای ثبتشده روی بلاکچین قابل حذف هستند؟
معمولاً نه. طراحی بلاکچین طوری است که هر بلوک به بلوک قبلیاش با یک هش رمزنگاریشده متصل است؛ حذف یا تغییر یک رکورد قدیمی یعنی باید هش آن بلوک و همهٔ بلوکهای بعدی، روی هزاران نسخهٔ مستقل از زنجیره، همزمان بازسازی شود — کاری که در شبکههای بزرگ عملاً غیرعملی است.
مکانیزم اجماع (Consensus) در بلاکچین دقیقاً چه نقشی دارد؟
وقتی هیچ نهاد مرکزی وجود ندارد، مکانیزم اجماع مجموعهای از قواعد ریاضی است که تعیین میکند چه زمانی یک بلوک تازه توسط شبکه پذیرفته میشود. اثبات کار (Proof of Work) و اثبات سهام (Proof of Stake) دو نمونهٔ رایج این مکانیزم هستند.
منابع
- How to Time-Stamp a Digital Document مشاهدهٔ منبع How to Time-Stamp a Digital Document
- History.com: انتشار مقالهٔ معرفی بیتکوین در ۳۱ اکتبر مشاهدهٔ منبع History.com: انتشار مقالهٔ معرفی بیتکوین در ۳۱ اکتبر
- WhatIsBitcoin: استوارت هابر کیست مشاهدهٔ منبع WhatIsBitcoin: استوارت هابر کیست
- واژهنامهٔ مرکز راهنمای Blockstream: بلوک جنسیس مشاهدهٔ منبع واژهنامهٔ مرکز راهنمای Blockstream: بلوک جنسیس
- واژهنامهٔ NIST CSRC: تابع هش مشاهدهٔ منبع واژهنامهٔ NIST CSRC: تابع هش
- واژهنامهٔ Lightspark: پاداش، اندازه و زمان بلوک بیتکوین مشاهدهٔ منبع واژهنامهٔ Lightspark: پاداش، اندازه و زمان بلوک بیتکوین
- ethereum.org: ادغام (The Merge) مشاهدهٔ منبع ethereum.org: ادغام (The Merge)
- Forbes: طرح آزمایشی ثبت زمین گرجستان روی بلاکچین مشاهدهٔ منبع Forbes: طرح آزمایشی ثبت زمین گرجستان روی بلاکچین