بیتکوین اغلب به عنوان طلای دیجیتال توصیف میشود که نشاندهنده طبیعت ایستا و تغییرناپذیر آن است. با این حال، نرمافزاری که شبکه بیتکوین را قدرت میبخشد، یک پروتکل زنده است که نگهداری، رفع اشکال و ارتقاها را تجربه میکند. برخلاف توسعه نرمافزار متمرکز که در آن مدیرعامل شرکت یا مدیر محصول ویژگیها را دیکته میکند، بیتکوین به شبکه غیرمتمرکز شرکتکنندگان وابسته است تا بر تغییرات توافق کنند. این فرآیند عمدی، کند و به شدت به سمت وضعیت موجود偏向 دارد تا امنیت میلیاردها دلار ارزش را تضمین کند.
تکامل پروتکل توسط یک سیستم رأیگیری رسمی یا یک مقام واحد اداره نمیشود. در عوض، از طریق ترکیبی منحصربهفرد از مستندات فنی، بررسی همتایان و اجماع جامعه عمل میکند. درک چگونگی حرکت یک ایده از یک بحث ساده در فهرست پستی به یک تغییر کد فعالشده جهانی، تابآوری شبکه بیتکوین را آشکار میکند. این امر سیستمی را برجسته میکند که برای مقاومت در برابر تصاحب توسط هر گروه واحدی، چه توسعهدهندگان، ماینرها یا منافع شرکتی، طراحی شده است.
در قلب این فرآیند تکاملی، پیشنهاد بهبود بیتکوین یا BIP قرار دارد. این مکانیسم اصلی برای پیشنهاد ویژگیهای جدید، جمعآوری ورودی جامعه در مورد یک مسئله و مستندسازی تصمیمات طراحی است. BIP یک رأی الزامآور نیست، بلکه یک سند طراحی فنی است. این سند اطلاعات را به جامعه بیتکوین ارائه میدهد یا یک ویژگی جدید برای بیتکوین یا فرآیندهای آن توصیف میکند.
چارچوب پیشنهاد بهبود بیتکوین
برای درک چگونگی تغییرات بیتکوین، ابتدا باید فرآیند استانداردسازی را درک کرد. سیستم BIP به شدت تحت تأثیر فرآیند پیشنهاد بهبود پایتون (PEP) است. این سیستم به عنوان راه رسمی برای معرفی تغییرات به کدبیس یا اکوسیستم اطراف آن عمل میکند. هر کسی میتواند یک BIP بنویسد، اما پذیرش و پیادهسازی آن یک مسیر سختگیرانه است که تعداد کمی از پیشنهادها از آن جان سالم به در میبرند.
تعریف BIP
BIP اساساً یک مقاله فنی است. این یک مشخصات فنی مختصر از ویژگی و استدلال برای آن ویژگی ارائه میدهد. نویسنده مسئول ایجاد اجماع در جامعه و مستندسازی نظرات مخالف است. سه نوع اصلی BIP وجود دارد. BIPهای مسیر استاندارد هر تغییری را توصیف میکنند که بر اکثر یا تمام پیادهسازیهای بیتکوین تأثیر میگذارد، مانند تغییری در پروتکل شبکه یا تغییر در قوانین اعتبار بلوک یا تراکنش.
BIPهای اطلاعاتی یک مسئله طراحی بیتکوین را توصیف میکنند، یا راهنماییهای کلی یا اطلاعات را به جامعه بیتکوین ارائه میدهند، اما ویژگی جدیدی پیشنهاد نمیکنند. BIPهای فرآیندی یک فرآیند اطراف بیتکوین را توصیف میکنند یا تغییری در (یا رویدادی در) یک فرآیند پیشنهاد میکنند.绝大多数 توجه عمومی به BIPهای مسیر استاندارد معطوف است، زیرا این پیشنهادها قوانین اجماع شبکه را تغییر میدهند.
چرخه حیات یک پیشنهاد
زندگی یک BIP مدتها قبل از اختصاص شماره به آن آغاز میشود. معمولاً با بحثها در فهرست پستی توسعه بیتکوین شروع میشود. اینجاست که ایده اولیه بررسی، انتقاد و اغلب توسط دیگر توسعهدهندگان تکهتکه میشود. اگر ایده از این آزمایش اولیه آتشین جان سالم به در ببرد، نویسنده متن BIP را پیشنویس میکند.
پس از ارسال پیشنویس به مخزن BIP، یک ویرایشگر به آن شماره اختصاص میدهد. این وضعیت به عنوان "پیشنویس" شناخته میشود. از آنجا، پیشنهاد از مراحل مختلف عبور میکند. اگر جامعه موافقت کند که کار ارزشمند است، ممکن است به "پیشنهادی" منتقل شود. اگر تغییرات پیادهسازی شوند و شبکه آنها را فعال کند، BIP به "نهایی" یا "فعال" تبدیل میشود. برعکس، پیشنهادها میتوانند "رد شده"، "پس گرفته شده" توسط نویسنده، یا علامتگذاری "منسوخ" شوند اگر توسط راهحلهای جدیدتر جایگزین شوند.
مکانیسم اجماع
عجیبترین جنبه توسعه بیتکوین برای افراد خارجی، عدم وجود ساختار حاکمیتی رسمی است. هیچ بنیاد یا رهبری وجود ندارد که بر BIP مهر "تأیید" بزند. در عوض، شبکه به مفهومی به نام "اجماع تقریبی" تکیه میکند. این اصطلاح از نیروی وظیفه مهندسی اینترنت (IETF) وام گرفته شده است. این به معنای اتفاقنظر کامل نیست.
درک اجماع تقریبی
اجماع تقریبی زمانی به دست میآید که جامعه فنی به طور کلی موافقت کند که یک پیشنهاد معتبر است و تمام اعتراضات مهم برطرف شدهاند. این یک اندازهگیری کیفی است نه رأی کمی. اگر یک پیشنهاد شایستگی فنی قوی داشته باشد اما با نگرانیهای امنیتی معتبر از سوی بخش قابل توجهی از توسعهدهندگان روبرو باشد، پیش نمیرود.
این پویایی نویسندگان را مجبور به تعامل با منتقدان میکند. آنها باید پیشنهادهای خود را بهبود بخشند تا اعتراضات حل شوند یا بیاساس ثابت شوند. این فرآیند میتواند سالها طول بکشد. برای مثال، ارتقای Taproot برای مدت قابل توجهی بحث و پالایش شد قبل از اینکه برای فعالسازی آماده تلقی شود. کندی یک ویژگی است، نه باگ، که از تصمیمات عجولانه که میتواند شبکه مالی را بیثبات کند، جلوگیری میکند.
دسترسی به کامیت توسعهدهندگان
یک تصور غلط رایج این است که توسعهدهندگانی که "دسترسی کامیت" به مخزن GitHub بیتکوین کور دارند، بیتکوین را کنترل میکنند. در حالی که این نگهدارندگان توانایی ادغام کد در شاخه اصلی نرمافزار را دارند، آنها بیشتر مانند نظافتچیان عمل میکنند تا حاکمان. نقش آنها اطمینان از این است که کد ادغامشده اجماع تقریبی جامعه را منعکس کند.
اگر یک نگهدارنده کدی را که اساساً بیتکوین را برخلاف اراده کاربران تغییر دهد ادغام کند، اپراتورهای نود به سادگی از بهروزرسانی به آن نسخه خودداری میکنند. شبکه بر روی نسخه قبلی ادامه میدهد و نسخه نگهدارنده نادیده گرفته میشود. این یک چک قدرتمند بر نفوذ توسعهدهندگان ایجاد میکند و تضمین میکند که آنها به خواستههای شبکه نود وابسته باقی بمانند.
مسیرهای فعالسازی و پیادهسازی
پس از اینکه یک ارتقای پروتکل کدگذاری و ادغام در نرمافزار بیتکوین کور شد، غیرفعال باقی میماند. باید توسط شبکه "فعال" شود. این مرحلهای است که اجماع نظری با واقعیت فیزیکی بلاکچین تعامل میکند. فعالسازی نیازمند هماهنگی میان بازیگران اقتصادی سیستم، عمدتاً ماینرها و اپراتورهای نود کامل است.
سیگنالینگ ماینرها و آستانهها
از نظر تاریخی، فعالسازی اغلب از فرآیندی استفاده میکرد که در BIP 9 تعریف شده است. این شامل سیگنالینگ آمادگی ماینرها برای ارتقا در هدرهای بلوکی است که استخراج میکنند. برای دورهای خاص، معمولاً دو هفته (۲۰۱۶ بلوک)، شبکه نظارت میکند که چند بلوک حاوی سیگنال حمایت از ارتقا هستند.
اگر درصد بلوکهای سیگنالینگ به آستانه تعریفشده برسد—اغلب ۹۰٪ یا ۹۵٪—ارتقا قفل میشود. پس از دوره مهلت بعدی، قوانین جدید فعال میشوند. این مکانیسم برای اطمینان از ارتقای روان شبکه بدون عقب ماندن ماینرها طراحی شده است. با این حال، این امر همچنین به بنبستهای سیاسی منجر شده است که در آن ماینرها با امتناع از سیگنالینگ، ارتقاها را وتو میکنند، حتی اگر پایگاه کاربران گستردهتر تغییر را بخواهد.
فورکهای نرم فعالشده توسط کاربر
محدودیتهای سیگنالینگ ماینرها در طول "جنگ اندازه بلوک" منتهی به ۲۰۱۷ آشکار شد. زمانی که ماینرها فعالسازی شاهد جداگانه (SegWit) را متوقف کردند، جنبشی مردمی ظهور کرد که فورک نرم فعالشده توسط کاربر (UASF) را پیشنهاد داد، معروف به BIP 148.
در یک UASF، اپراتورهای نود نرمافزاری اجرا میکنند که بلوکهای ماینرهایی را که پس از تاریخ معینی برای ارتقا سیگنال نمیدهند، رد میکند. این قدرت را از ماینرها به اکثریت اقتصادی نودها بازمیگرداند. اگر فعالیت اقتصادی (صرافیها، کیفپولها، کاربران) به زنجیره UASF منتقل شود، ماینرها از نظر اقتصادی تشویق میشوند که پیروی کنند یا ریسک استخراج روی زنجیره بیارزش را بپذیرند. تهدید BIP 148 در مجبور کردن فعالسازی SegWit مؤثر بود.
پویایی فورک و سازگاری
تغییرات پروتکل بیتکوین عموماً به دو دسته تقسیم میشوند: فورکهای نرم و فورکهای سخت. تمایز در سازگاری عقبگرد است. درک تفاوت برای فهم اینکه چرا بیتکوین علیرغم ارتقاهای متعدد، یک شبکه واحد و پیوسته باقی مانده، حیاتی است.
مکانیسم فورک نرم
فورک نرم تغییری در پروتکل است که مجموعه بلوکهای معتبر را محدود میکند. قوانین را سختتر میکند. از آنجایی که قوانین جدید زیرمجموعهای از قوانین قدیمی هستند، نودهای قدیمی که ارتقا نیافتهاند، همچنان بلوکهای جدید را معتبر میبینند. آنها ممکن است ویژگیهای جدید را درک نکنند، اما زنجیره را میپذیرند.
این سازگاری عقبگرد حیاتی است. اجازه میدهد شبکه به تدریج ارتقا یابد. کاربران مجبور نیستند فوراً نرمافزار خود را بهروزرسانی کنند تا بخشی از اجماع باقی بمانند. اکثر ارتقاهای عمده، از جمله SegWit و Taproot، به عنوان فورکهای نرم پیادهسازی شدند. این تضمین میکند که شبکه به سادگی به دلیل کندی ارتقای برخی کاربران به دو زنجیره ناسازگار تقسیم نشود.
انحراف فورک سخت
فورک سخت قوانین را شل میکند یا قوانینی معرفی میکند که با نرمافزار قدیمی ناسازگار است. نودهای قدیمی بلوکهای ایجادشده تحت قوانین جدید را نامعتبر میبینند و رد میکنند. برای موفقیت فورک سخت بدون تقسیم شبکه، ۱۰۰٪ کاربران باید همزمان ارتقا دهند، که در یک سیستم غیرمتمرکز غیرممکن است.
در نتیجه، فورکهای سخت بحثبرانگیز تقریباً همیشه به تقسیم دائمی زنجیره منجر میشوند. مشهورترین مثال ایجاد بیتکوین کش (BCH) در ۲۰۱۷ است. طرفداران میخواستند حد اندازه بلوک را افزایش دهند، تغییری در قانون که با اجماع موجود بیتکوین ناسازگار بود. این به دو شبکه و ارز متمایز منجر شد. فورکهای سخت عموماً در توسعه بیتکوین به دلیل این ریسک شکافتن شبکه و جامعه اجتناب میشوند.
| ویژگی مقایسه | فورک نرم | فورک سخت |
|---|---|---|
| سازگاری | سازگار با عقبگرد | سازگار با عقبگرد نیست |
| تغییر قانون | سختتر/محدود کردن قوانین | شل/گسترش قوانین |
| ریسک شبکه | ریسک پایین تقسیم زنجیره | ریسک بالای تقسیم دائمی |
ارتقای عمده پروتکل: شاهد جداگانه
یکی از مهمترین مثالهای حرکت یک پیشنهاد به پیادهسازی، شاهد جداگانه (SegWit) است. که در اوت ۲۰۱۷ فعال شد، مسائل طولانیمدت را حل کرد و صحنه را برای مقیاسپذیری آینده آماده کرد. این پیشنهاد اساساً نحوه ساختار دادههای تراکنش را تغییر داد.
حل malleability
قبل از SegWit، امکان تغییر شناسه منحصربهفرد یک تراکنش قبل از تأیید روی بلاکچین بدون باطل کردن امضا وجود داشت. این مسئله، معروف به malleability تراکنش، ساخت راهحلهای لایه دوم مانند شبکه Lightning را دشوار میکرد. اگر شناسه تراکنش بتواند تغییر کند، قراردادهای هوشمند وابسته به آن شناسه شکسته میشوند.
SegWit این را با انتقال داده امضا (شاهد) به خارج از بخشی از تراکنش که برای محاسبه شناسه استفاده میشود، حل کرد. با جداسازی شاهد، شناسه تراکنش تغییرناپذیر شد. این رفع، پایهای بود که کانالهای پرداخت را به طور امن機能 داد و توسعه شبکه Lightning را امکانپذیر کرد.
مفهوم واحد وزن
SegWit همچنین به عنوان افزایش هوشمندانه اندازه بلوک عمل کرد. به جای ساده افزایش حد ۱MB—که نیازمند فورک سخت بود—SegWit نحوه اندازهگیری بلوکها را تغییر داد. "وزن بلوک" را معرفی کرد.
داده در بخش شاهد وزن کمتری نسبت به داده در بلوک اصلی تراکنش دارد. این اجازه میدهد بلوکها از اندازه سنتی ۱MB در اصطلاح داده خام (تا ۴MB نظری) فراتر روند در حالی که با نودهای legacy که فقط داده غیرشاهد را چک میکنند، سازگار باقی بمانند. این ظرفیت شبکه را به طور مؤثر افزایش داد و کارمزدهای تراکنشهای استفادهکننده از فرمت SegWit را کاهش داد.
ارتقای Taproot
پس از SegWit، تغییر عمده بعدی Taproot بود که در نوامبر ۲۰۲۱ فعال شد. Taproot سه BIP (۳۴۰، ۳۴۱ و ۳۴۲) را ترکیب کرد تا حریم خصوصی، کارایی و قابلیتهای اسکریپتینگ را بهبود بخشد. این فرآیند فعالسازی پالایششدهتری به نام "Speedy Trial" را نشان داد.
امضاهای Schnorr
در هسته Taproot، پیادهسازی امضاهای Schnorr (BIP 340) قرار دارد. این طرح امضای دیجیتال مزایای قابل توجهی نسبت به الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) اصلی ارائه میدهد. مزیت اصلی خطی بودن است.
خطی بودن اجازه تجمیع امضا را میدهد. در یک تراکنش چندامضایی، کلیدهای عمومی و امضاهای متعدد میتوانند به یک کلید واحد و یک امضای واحد ترکیب شوند. برای بلاکچین، تراکنش پیچیده شامل چندین طرف، مشابه تراکنش استاندارد تککاربر به نظر میرسد. این حریم خصوصی را با پنهان کردن پیچیدگی ترتیب کیفپولها افزایش میدهد و فضا روی بلاکچین صرفهجویی میکند و کارمزدها را کاهش میدهد.
درختهای نحوی انتزاعی Merkelized
Taproot همچنین درختهای نحوی انتزاعی Merkelized (MAST) را معرفی کرد. قبلاً، اگر کاربر یک قرارداد هوشمند پیچیده با شرایط خرج متعدد ایجاد میکرد، تمام آن شرایط هنگام خرج کردن وجوه روی بلاکچین آشکار میشد. این ناکارآمد و بد برای حریم خصوصی بود.
با MAST، کاربران میتوانند شرایط خرج را در فرمت درختی ساختار دهند. هنگام خرج کردن، فقط شاخه خاصی از درخت که استفاده میشود آشکار میشود. شاخههای اجرا نشده پنهان باقی میمانند. این اجازه قراردادهای هوشمند پیچیدهای را میدهد که خصوصی و کارآمد از نظر داده هستند و پتانسیل بیتکوین را فراتر از انتقال ساده ارزش گسترش میدهد.
بحثهای جاری: مورد OP_CAT
تکامل بیتکوین ادامه دارد، با بحثهای فعلی که بر بازگرداندن عملکردهای از دست رفته تمرکز دارند. یکی از برجستهترین موضوعات OP_CAT است. این یک opcode خاص (کد عملیات) است که بخشی از نرمافزار اصلی بیتکوین بود اما توسط ساتوشی ناکاموتو در ۲۰۱۰ به دلیل نگرانیها در مورد مصرف حافظه و آسیبپذیریهای امنیتی غیرفعال شد.
درک opcodeها
Opcodeها دستوراتی هستند که زبان اسکریپت بیتکوین آنها را میفهمد. به شبکه میگویند چگونه یک تراکنش را پردازش کند. برخی جمع را فعال میکنند، برخی امضاها را بررسی میکنند، و برخی قفلهای زمانی را تأیید میکنند. هنگامی که opcodeها غیرفعال میشوند، توانایی انجام آن اقدامات خاص از ابزار شبکه حذف میشود.
حذف OP_CAT و دیگران زبان اسکریپتینگ بیتکوین را به شدت محدود کرد. این محدودیت در آن زمان عمدی بود و امنیت و ثبات را بر کارکرد اولویت داد. اما با بلوغ درک پروتکل، توسعهدهندگان اکنون به دنبال بازآغازی ایمن این کدها برای امکانپذیر کردن ویژگیهای جدید هستند.
پیشنهاد اتصال
OP_CAT به طور خاص اتصال (پیوستن) دو رشته داده را مجاز میکند. هرچند ساده به نظر میرسد، ویژگی قدرتمندی به نام «عهد» (covenants) را فعال میکند. عهدها به کاربران اجازه میدهند محدودیتهایی بر چگونگی خرج کردن بیتکوینهای آینده اعمال کنند، نه فقط اینکه چه کسی میتواند آنها را خرج کند.
برای مثال، یک عهد میتواند الزام کند که یک UTXO خاص فقط به لیست سفیدی از آدرسها ارسال شود. این تأثیرات عظیمی بر مکانیسمهای گاوصندوق دارد، جایی که کاربران میتوانند دکمههای «لغو» برای داراییهای دزدیدهشده ایجاد کنند، و برای پلزنی لایه ۲. بحث حول OP_CAT طبیعت محافظهکارانه توسعه بیتکوین را نشان میدهد؛ حتی یک دستور ساده سالها تحلیل امنیتی قبل از بازآغازی نیاز دارد.
تأثیر بر راهحلهای لایه ۲
پیشنهادهای پروتکل اغلب لایه پایه را هدف قرار میدهند، اما کاربرد اصلی آنها در شبکههای لایه ۲ (L2) محقق میشود. رابطه بین بلاکچین اصلی و این لایههای ثانویه همزیستی است. بهبودهای پروتکل پایه، L2ها را ارزانتر، ایمنتر و کارآمدتر میکند.
وابستگیهای شبکه Lightning
شبکه Lightning مثال اصلی این وابستگی است. آن به امنیت لایه پایه برای تسویه تراکنشها وابسته است. همانطور که ذکر شد، ارتقای SegWit پیشنیاز عملکرد قابل اعتماد Lightning بود. ارتقاهای آینده همچنان کارایی Lightning را هدف قرار میدهند.
برای مثال، پیشنهادهایی مانند "Eltoo" (SIGHASH_ANYPREVOUT) مدیریت کانال را ساده میکنند. با تغییر نحوه امضای تراکنشها در لایه پایه، نودهای Lightning میتوانند داده کمتری ذخیره کنند و از شکستها آسانتر بازیابی کنند. این نشان میدهد که پیشنهادهای L1 اغلب توسط نیازهای مقیاسپذیری L2 هدایت میشوند.
یکپارچگی سایدچین
سایدچینها، مانند Liquid یا Rootstock، نیز از ارتقاهای پروتکل سود میبرند. سایدچینها بلاکچینهای مستقلی هستند که موازی با بیتکوین اجرا میشوند. آنها از peg دوطرفه برای انتقال ارزش رفت و برگشت استفاده میکنند. در حال حاضر، این pegها اغلب به فدراسیونها—گروههای کارگزاران مورد اعتماد—وابسته هستند.
ارتقاهایی مانند OP_CAT یا طرحهای امضای جدید میتوانند مکانیسمهای پلینگ بدون اعتماد بیشتر را اجازه دهند. اگر اسکریپت بیتکوین بتواند اثباتهایی از یک سایدچین (مانند اثباتهای دانش صفر) را تأیید کند، به کاربران اجازه میدهد وجوه را بین زنجیرهها بدون اعتماد به فدراسیون منتقل کنند. این همچنان حوزه عمده تحقیق و انگیزه برای BIPهای جدید است.
نوآوری ناخواسته: پدیده Ordinals
گاهی، ارتقاهای پروتکل به نتایج کاملاً غیرمنتظره منجر میشوند. ظهور Ordinals گواهی بر قانون پیامدهای ناخواسته در نرمافزار منبعباز است. Ordinals از مکانیسمهای SegWit و Taproot برای حکاکی داده مستقیماً روی ساتوشیهای فردی استفاده میکنند.
SegWit ذخیره داده شاهد را ارزانتر کرد و Taproot حد اندازه pushهای داده در اسکریپتهای تراکنش را حذف کرد. ترکیب این تغییرات به کاربران اجازه داد تصاویر، متن و حتی بازیهای ویدیویی را در بلاکچین بیتکوین جاسازی کنند. این قصد خاص توسعهدهندگانی که آن BIPها را نوشتند، نبود.
این توسعه بحث شدیدی در جامعه ایجاد کرد. برخی inscriptions را به عنوان اسپم که شبکه را مسدود میکند میبینند، در حالی که دیگران آن را استفاده مشروع از فضای بلوک که با کارمزد پرداخت شده، میدانند. صرفنظر از دیدگاه، Ordinals نشان میدهند که یکبار پیشنهاد پیادهسازی شد، کاربران شبکه از قوانین جدید به روشهایی که نویسندگان ممکن است هرگز پیشبینی نکرده باشند، استفاده خواهند کرد.
نتیجهگیری
آناتومی یک پیشنهاد پروتکل بیتکوین سیستمی را آشکار میکند که بقا را بر همه چیز اولویت میدهد. از پیشنویس اولیه BIP تا فرآیند طاقتفرسای ایجاد اجماع تقریبی، هر گام برای فیلتر کردن ریسکها طراحی شده است. تمایز بین فورکهای نرم و سخت تعهد به سازگاری عقبگرد را نشان میدهد و تضمین میکند که شبکه حتی در حالی که پیشرفت میکند، فراگیر باقی بماند.
ارتقاهایی مانند SegWit و Taproot نشان میدهند که بیتکوین میتواند بدون قربانی کردن اصول اصلی نوآوری کند. در عین حال، بحثهای جاری در مورد OP_CAT و ظهور Ordinals ثابت میکنند که اکوسیستم زنده و غیرقابل پیشبینی باقی مانده است. تعامل بین ماینرها، توسعهدهندگان و اپراتورهای نود سیستمی از چک و بالانس ایجاد میکند که هیچ موجود متمرکز نمیتواند آن را نادیده بگیرد.
بیتکوین به آرامی تغییر میکند نه به این دلیل که نمیتواند سریع حرکت کند، بلکه چون هزینه شکستن آن بیش از حد بالا است تا ریسک شود.