رقابت با Bitcoin Core

به دنبال جنگ بر سر اندازه بلاک‌، ذهنیت اغراق‌آمیزی از پروژه‌ی نرم‌افزاری Bitcoin Core در ذهن کاربران شکل گرفت. راه‌های گوناگون رقابت با این پروژه‌ی نرم‌افزاری را می‌توان در سه دسته‌ی رقابت قوانین اجماع، رقابت پیاده‌سازی‌ها و رقابت سایر کلاینت‌ها دسته‌بندی کرد. هر چند مناقشه‌ی زیادی میان طرفداران و مخالفان دو دسته‌ی اول وجود دارد، اما دسته‌ی سوم به هیچ عنوان بحث‌برانگیز نبوده است.

0 86

ما قدرت و پویایی پروژه‌ی نرم‌افزاری Bitcoin Core را مورد سنجش قرار دادیم و میان راه‌هایی که می‌توان با این پروژه به رقابت پرداخت، تمایزهایی را ترسیم کردیم. همچنین این تصور غلط را که مخزن نرم‌افزار Bitcoin Core از قابلیت منحصربه‌فرد تغییر یا جلوگیری از تغییر قوانین اجماع بیت کوین (consensus rules) بهره می‌برد، مورد بررسی قرار دادیم. در کنار آن، یکسری از تصورات اشتباه دیگر را هم مطرح کردیم و توضیح دادیم که اگر مخزن Bitcoin Core توسط اشخاص نابکار ربوده یا حذف شود، نباید تأثیر قابل‌توجهی بر روی بیت کوین احساس شود.

نمودار وِن زیر روش‌های گوناگون «رقابت» با Bitcoin Core را به تصویر می‌کشد:

bitcoin core

(منابع: Bitcoin ABC, Bitcoin UASF, BTCGPU, Bitcoin XT, BTC1, Bitcoin Classic, Bitcoin Cash Cobra, Bitcoin SV, Bitcoin Unlimited, BitcoinX, Bitprim, Bcoin, Parity Bitcoin, BTCD, Libbitcoin, Caesure, Bits of Proof, Bitcoinj, Ufasoft Coin, Bitcrust, Picocoin, Bitcoin Addrinex, Bitcoin Knots, Bitcoin-RBF, Bitcoin BitMEX Research)

انواع سه‌گانه‌ رقابت

می‌توان پروژه‌های در حال رقابت با Bitcoin Core را در سه گروه مختلف دسته‌بندی کرد:

نوع رقابتتوضیح
رقابت میان زنجیره‌هااین نوع رقابت مربوط به زمانی است که پروژه‌ی نرم‌افزاری رقیب، به طور عمدی مجموعه‌ای از قوانین اجماع را در خود جای داده که متفاوت از مواردی است که کاربر در حال اجرای آن است. این هم شامل هارد فورک (hardfork) و هم سافت فورک (softfork) می‌شود. اجرای چنین نرم‌افزاری در بعضی مواقع می‌تواند پرمخاطره باشد چرا که این کار ممکن است باعث تقسیم سکه به دو زنجیره شود.

به همین خاطر، این نوع از رقابت بیشتر بین سکه‌ها/زنجیره‌های متفاوت جریان دارد تا اینکه صرفاً رقابت میان موارد مختلف به‌کارگیری بیت کوین باشد. روشن است که اگر کسی یک انشعاب نرم‌افزاری از Bitcoin Core ایجاد کند و قوانین اجماع را در آن تغییر دهد، بخش زیادی از کد احتمالاً توسط تیم توسعه‌ی مشابهی نوشته شده است، به همین خاطر این در واقع رقابت بر علیه خود آن تیم نیست بلکه تنها یک سکه‌ی جدید بالقوه را ایجاد می‌کند که کد آن توسط تیم مشابهی نوشته شده است.

رقابت میان پیاده‌سازی‌های مستقلاین شکل از رقابت زمانی اتفاق می‌افتد که بیت کوین بدون استفاده از کد Bitcoin Core، مجدداً پیاده‌سازی شود. به طور معمول برای سعی در استفاده از مزایایی که سایر زبان‌های برنامه‌نویسی ممکن است داشته باشند، از زبان برنامه‌نویسی جدیدی بدین منظور استفاده می‌شود.

مانند نوع رقابت بالا، بسیاری این شکل از رقابت را خطرناک می‌دانند، زیرا ممکن است باعث افزایش احتمال جدایی‌های غیربرنامه‌ریزی‌شده‌ی زنجیره شود که به طور تصادفی در نتیجه‌ی متفاوت‌بودن قوانین اجماع اتفاق می‌افتد. کلاینت دیگر لازم است تا رفتار اجماع نرم‌افزاری را که کاربران در حال اجرا بر روی آن بودند، با هم تطابق دهد و حتی باگ‌ها و رفتارهای ناخواسته‌ی کلاینت اصلی را بررسی کند.

سایر پروژه‌های نرم‌افزاری رقابتی (که نه تغییری در قوانین اجماع ایجاد می‌کنند و نه مجدداً اساس کد را پیاده‌سازی می‌کنند)می‌توان بدون تلاش برای تغییر قوانین اجماع یا نوشتن یک پایه‌ی کد مستقل، با Bitcoin Core رقابت کرد. این کار را می‌توان با ایجاد یک انشعاب نرم‌افزاری از پروژه و سپس اعمال تغییراتی خارج از قوانین اجماع انجام داد.

این نوع از رقابت بسیاری از خطرهایی که در انواع بالا ذکر شد را شامل نمی‌شود.

مناظره بر سر رقابت قوانین اجماع

این موضوع به طور گسترده در میان جامعه‌ی بیت کوین مورد بحث قرار گرفته است؛ تا حد زیادی در پیش‌زمینه‌ی موضوع «جنگ اندازه بلاک‌» (Blocksize war) که از تابستان ۲۰۱۵ تا نوامبر ۲۰۱۷ به راه افتاده بود. ما قصد نداریم تا تمامی آن بحث و جدل‌ها را در این گزارش تکرار کنیم، چرا که هدف اصلی این نوشتار بیان گونه‌های مختلف رقابت است.

طرفدار رقابتمخالف رقابت
رقابت بر سر قوانین بایستی تشویق شود چرا که تضمین می‌کند سکه انعطاف‌پذیر بوده و قابلیت سازگارشدن و رقابت را دارد. مدلی که مجموعه قوانینی ثابت در آن غالب باشد به آن معنا است که قوانین، ممکن است هرگز تغییر نکنند، حتی در مواردی که تغییر بسیار قانع‌کننده است. در چنین محیط ستیزه‌جویانه‌ای همواره یک اقلیت با تغییر مخالفت خواهند کرد.

احتمال آن بسیار پایین است که رقابت بر سر قوانین اختلال قابل‌توجهی مشابه آنچه بسیاری تصور می‌کنند را در بر داشته باشد. در واقعیت، بنگاه‌های بزرگ و جامعه به سرعت پشت یک سکه صف می‌کشند و کلاینت مورد استفاده‌ی خود را تغییر می‌دهند تا اکثریت اقتصادی یا اکثریت نرخ هش (hash-rate) را دنبال کنند.

بهتر است سعی شود که از رقابت بر سر قوانین اجماع دوری کنیم چرا که انجام آن پرمخاطره بوده و صدماتی به پایداری سکه می‌زند. در زمان وقوع یک اختلاف نظر، قوانین اجماع موجود بایستی غالب باشند. این مسئله قوانین موجود سکه از جمله ارزش بازاری قدرتمند ۲۱ میلیون دلاری آن را یک مشخصه‌ی منحصربه‌فرد و کلیدی بیت کوین نگه می‌دارد. اختلالی که ممکن است بر اثر تغییر قوانین اجماع بدون موافقت گسترده به وجود آید، به همین سبب به یک ویژگی مطلوب بیت کوین مبدل می‌شود. با این حساب، تغییر قوانین اجماع باید تنها به یکی از دو شیوه‌ی زیر اتفاق بیفتد:

  1. با موافقت گسترده جامعه‌ی کاربران سکه و متخصصین تکنیکی. همچنین باید زمان کافی به کاربران برای به‌روزرسانی کلاینت آن‌ها داده شود.
  2. اگر توسعه‌دهندگان از اینکه تعداد کافی از کاربران خود را با قوانین جدید به‌روزرسانی می‌کنند، اطمینان ندارند، حاصل این مسئله می‌تواند ایجاد یک سکه‌ی تازه باشد. در چنین مواردی شاخصه‌های ایمنی مختلفی از قبیل محافظت بازپخش دوطرفه‌ی قدرتمند (برای هر دو نوع کلاینت‌های بازبینی‌کننده‌ی کامل و کلاینت‌های سبک) ممکن است برای کاهش خطر از دست رفتن منابع مالی کاربران ضروری باشد.

(اگر تغییر در قوانین یک انشعاب نرم (نقطه‌ی مخالف هارد فورک) اتفاق بیفتد، امکان جلوگیری از شکستن زنجیره وجود دارد به این شرط که بخش عمده‌ی استخراج‌کنندگان خود را به‌روزرسانی کنند.)

مناظره بر سر رقابت پیاده‌سازی‌های مستقل

مشابه مورد بالا، این هم یک موضوع بسیار مورد اختلاف و بحث‌برانگیز بوده است، هر چند ما همچنان تصور می‌کنیم که رقابت بر سر تغییرات عمدی بر روی قوانین اجماع از نظر بنیادین موضوع متفاوتی است.

طرفدار رقابتمخالف رقابت
اگر چه یک پیاده‌سازی غالب می‌تواند شبکه را از باگ‌های اجماع غیرمتنظره محافظت کند، اما ممکن است سکه را در معرض انواع مشخصی از باگ‌های وخیم قرار دهد؛ از جمله باگ‌هایی که موجب درهم‌شکستن (crash) کلاینت‌ها شده و یا اجازه‌ی تورم غیرمنتظره‌ی سکه را می‌دهند. یکی از نمونه‌های اخیر این موضوع، CVE-2018-17144 است؛ یک باگ تورمی وخیم که تنها در سپتامبر ۲۰۱۸ به وجود آن پی بردند.

اگر، برای نمونه، ده مورد پیاده‌سازی مستقل وجود داشتند، هر یک با ۱۰% از سهم بازار و اگر یک باگ بر روی یکی از این پیاده‌سازی‌ها اتفاق می‌افتاد که موجب درهم‌شکستن یا تورم می‌شد، ۹۰% شبکه همچنان می‌توانست به کار طبیعی خود ادامه دهد. شبکه به همین سبب انعطاف‌پذیرتر می‌شد. گوناگونی کلاینت‌هایی که کاربران استفاده می‌کنند، به همین خاطر یک قدرت کلیدی است.

قدرتمندترین مخالف این شکل از رقابت احتمالاً ساتوشی بوده که این گفته‌ی معروف از او نقل می‌شود:

« من حتی برای یک ثانیه نمی‌توانم اعتقاد داشته باشم که پیاده‌سازی سازگار بیت کوین بتواند هرگز یک ایده‌ی خوب باشد. بخش زیادی از طراحی وابسته به تمام گره‌هایی است که پشت سر هم نتایجی کاملاً مشابه را بدست می‌دهند و به همین خاطر یک پیاده‌سازی دوم می‌تواند تهدیدی برای شبکه باشد. مجوز MIT با تمامی مجوزها و موارد تجاری دیگر همخوانی دارد، به همین خاطر هیچ نیازی به بازنویسی آن از نقطه نظر مجوزدادن نیست.

یک نسخه‌ی دوم می‌تواند یک توسعه‌‌ی حجیم و تعمیر و نگهداری عذاب‌آور برای من باشد. همین خود به اندازه‌ی کافی دشوار است که سازگاری با نسخه‌های گذشته را در حین به‌روزرسانی شبکه‌ حفظ کنیم، بدون اینکه یک نسخه‌ی دوم همه چیز را قفل کند. اگر نسخه‌ی دوم همه چیز را به هم بریزد، تجربه‌ی کاربری احتمالاً در هر دو نسخه به شکل بدی تحت تأثیر قرار می‌گیرد، هر چند این حداقل می‌تواند اهمیت نگه‌داشتن نسخه‌ی رسمی را به کاربران گوشزد کند. اگر کسی برای انشعاب یک نسخه‌ی دوم آماده می‌شد، من می‌بایست نسبت به خطرات استفاده از یک نسخه‌ی جزئی اعلام سلب مسئولیت کنم. این یک طراحی است که در آن نسخه‌ی عمده در صورت وجود هر عدم‌توافقی پیروز است و این می‌تواند مشخصه‌ی ناپسندی برای نسخه‌ی جزئی باشد. من ترجیح می‌دهم به این مسئله ورود نکنم و مجبور هم نیستم چنین کاری را انجام دهم تا زمانی که تنها یک نسخه وجود دارد.»

(منبع: Bitcointalk)

اگر چه ۱۰ پیاده‌سازی محبوب می‌تواند خوب باشد، معضل اصلی انتقال از یک پیاده‌سازی غالب به انواع گوناگونی از کلاینت‌های محبوب، بدون ورود به محدوده‌ی خطرناک است به عنوان نمونه دو پیاده‌سازی محبوب، هر یک با ۵۰% سهم بازار، شبکه را در مقابل باگ‌های اجماع آسیب‌پذیر می‌کنند. به همین خاطر، یک برنامه‌ی بهتر می‌تواند، داشتن یک پیاده‌سازی غالب باشد که به طور موشکافانه‌ای بررسی شده است تا باگ‌های اجماع را در میزان حداقلی نگه دارد. به این شیوه، شبکه می‌تواند برای همه‌ی کاربران قابل اطمینان باشد، حتی ۱۰% از زنجیره‌ی جزئی می‌تواند برای آن ۱۰% مشکل‌ساز باشد.

دیگر کلاینت‌های رقابتی

حتی اگر کسی به واقع مجموعه‌ای از قوانین انعطاف‌پذیر را می‌پسندد، مخالف رقابت بر سر قوانین اجماع است و به شکل مذهبی‌گونه‌ای دیدگاه منفی ساتوشی درباره‌ی رقابت پیاده‌سازی‌ها را دنبال می‌کند، این بدان معنا نیست که او نمی‌تواند پروژه‌های نرم‌افزاری رقابتی را داشته باشد. رقابت خیلی راحت می‌تواند در محدوده‌ی سفید، خارج از دایره‌های نمودار وِن بالا، جریان داشته باشد. این شکل از رقابت، که نه دست به تغییری عمدی در قوانین اجماع می‌زند و نه کد را مجدداً پیاده‌سازی می‌کند، تا آنجایی که ما می‌دانیم، به هیچ عنوان بحث‌برانگیز نیست.

به همین خاطر از نظر تئوری هرگز لازم نیست که بیت کوین از مشکلات ناشی از عدم شناخت کنترل‌کننده‌ی یک مخزن نرم‌افزاری خاص در گیت‌هاب (Github) یا بحث بر سر اینکه چه کسی دارای دسترسی به مخزن است، رنج ببرد. از دیدگاه ما، بسیاری از این مشکلات ظاهری برپایه‌ی عدم شناخت شکل گرفتند، توسط افرادی که برخی از خطرات پروژه‌های نرم‌افزاری رقابتی را تحسین می‌کنند اما در تشخیص مرز میان انواع مختلف رقابت شکست می‌خورند. به همین خاطر، به نظر می‌رسد که بسیاری قدرت مخزن نرم‌افزاری Bitcoin Core را بیش از حد تخمین بزنند با این تصور که هر رقابتی پرمخاطره یا به نوعی غیرقابل‌قبول است.

پیدایش Bitcoin Core

پیش از سال ۲۰۱۳، هیچ پروژه‌ی نرم‌افزاری به نام Bitcoin Core وجود نداشت. کلاینت ساتوشی گاهی صرفاً پیاده‌سازی مرجع یا Bitcoin-QT/Bitcoined خوانده می‌شد. سپس در فوریه‌ی ۲۰۱۳، گاوین اندرِسِن (Gavin Andresen)، یک توسعه‌دهنده‌ی معروف بیت کوین، پستی بر روی انجمن بنیاد بیت کوین (Bitcoin Foundation) منتشر نمود و چنین درخواستی را مطرح کرد:

به طور کلی امروز بحث‌هایی درباره‌ انتخاب نام دیگری برای Bitcoin-Qt و پیاده‌سازی مرجع بر روی IRC وجود داشت. من فکر کردم بعضی از شما دوستان باهوش ممکن است ایده‌های خوبی برای نام داشته باشید.

مایک هِرن (Mike Hearn)، توسعه‌دهنده‌ی دیگری، اینطور پاسخ داد:

اوه چقدر خوب، چه عجب! این مسئله برای مدتی من رو آزار می‌داد. نظرتون درباره‌ی Bitcoin Core چیه؟

(منبع: انجمن بنیاد بیت کوین (Bitcoin Foundation Forum))

خیلی‌ها از آن پس شروع به استفاده از نام «Bitcoin Core» برای این پروژه‌ی نرم‌افزاری کردند، اما هیچ چیزی در واقعیت عوض نشده بود. Bitcoin Core بعد از آن شروع به توسعه‌ی یک برند قدرتمند کرد؛ با ملاحظه و ثبات، یا آنطور که گاوین زمانی گفت:این مانند یک سنگ (بر لبه‌ی پرتگاه) است».

تأثیر «جنگ ‌اندازه بلاک»

طی مدت جنگ اندازه بلاک (blocksize war)، بسیاری بحث را به گونه‌ای شکل دادند که انگار Bitcoin Core در مقابل استخراج‌کنندگان یا بنگاه‌های بزرگ بود، طوری که طرفداران Bitcoin Core مخالف هارد فورک‌ها (hardforks) و افزایش محدودیت اندازه بلاک بودند. از دیدگاه ما، این شخصیت‌پردازی صحیح نبود. هر چند، بسیاری از کسانی که این شخصیت‌پردازی را ایجاد کردند، به دنبال آن نتیجه گرفتند که Bitcoin Core پیروز شد چرا که هیچ خبری از هارد فورک نبود. از دید ما، درست همین گروه هستند که در حال حاضر تصورات اغراق‌آمیزی از قدرت Bitcoin Core دارند.

Bitcoin Core به آن اندازه‌ای که بسیاری تصور می‌کنند، قدرتمند نیست

این مخزن نرم‌افزاری Bitcoin Core نیست که قوانین اجماع بیت کوین را تعریف می‌کند. قوانین توسط کلاینت‌هایی بسیار به صرفه تعریف می‌شوند که کاربران در حال حاضر اجرا می‌کنند. این‌ها معمولاً نسخه‌های عرضه‌شده‌ی اخیر Bitcoin Core هستند. پروژه‌ی نرم‌افزاری Bitcoin Core نمی‌تواند چیزی را که کاربران نرم‌‎افزار در حال اجرا هستند، تغییر دهد و به نظر ما، این کاربران از نظر ذهنی بسیار مستقل‌تر از آن چه هستند که بسیاری تصور می‌کنند. حتی اگر Bitcoin Core یک کلاینت هارد فورک منتشر می‌کرد، که محدودیت بلاک‌سایز را افزایش می‌داد، مشخص نبود که جامعه خود را به‌روزرسانی کند. به همین خاطر، نگرانی‌ها از این بابت که مخزن نرم‌افزاری Bitcoin Core حذف، هک یا ربوده شود، باید معضل بسیار کوچکتری در مقایسه با تصور بسیاری باشد. اگر چنین چیزی اتفاق بیفتد، تأثیری بر کلاینت‌هایی که کاربران پیش از این اجرا می‌کردند، نخواهد داشت و اگر به‌روزرسانی‌ها و پیشرفت‌های بعدی لازم باشد، شخص می‌تواند به راحتی مخزن متفاوتی را برگزیند، بدون آن که نگران هر گونه مشکل هماهنگی یا سایر خطرات باشد.

در واقع، در تابستان ۲۰۱۷، کلاینتی که به نوعی با Bitcoin Core رقابت می‌کند، یعنی Bitcoin UASF، قدرت را از Bitcoin Core گرفت و عمداً قوانین اجماع شبکه‌ها را تغییر داد. به همین خاطر، رسیدن به این نتیجه که Bitcoin Core قدرتمندترین است، درس غلط گرفتن از جنگ بلاک‌سایز است.

تحقیقات بیت‌مِکس (BitMEX) در حال راه‌اندازی یک کلاینت جدید برای رقابت با Bitcoin Core است

امروز تحقیقات BitMEX، کلاینت جدیدی به نام Bitcoin BitMEX Research را برای رقابت با Bitcoin Core رونمایی می‌کند. از آنجایی که این یک انشعاب نرم‌افزاری از Bitcoin Core است، آنطور که ساتوشی نگران آن بود، هیچ کدام از خطرات باگ‌داشتن به خاطر سازگاری باگ (bug compatibility) را همراه خود ندارد. کلاینت BitMEX Research علاوه بر این قوانین اجماع بیت کوین را تغییر نمی‌دهد، به همین خاطر نگرانی‌ها درباره‌ی جدایی بحث‌برانگیز حلقه‌ها شامل حال آن نمی‌شود. در نتیجه، اگر مخزن Bitcoin Core ربوده یا حذف شود، اساس کد (codebase) همچنان می‌تواند با استفاده از کلاینت Bitcoin BitMEX Research یا هر مجموعه کلاینت دیگری ارتقا پیدا کند.

نتیجه‌گیری

به دنبال نتیجه‌ی جنگ بلاک‌سایز، تأکید بسیاری بر روی قدرت مخزن نرم‌افزاری Bitcoin Core وجود دارد. سوالات متداول حالا این‌ها هستند:« چه کسی مخزن را کنترل می‌کند؟»، « چه می‌شود اگر آن‌ها گیت‌هاب Bitcoin Core را پاک کنند؟». از دیدگاه ما، چنین سوالاتی می‌تواند نشان‌دهنده‌ی این باشد که یک فرد هدف بیت کوین را گم کرده است.

افراد تمایل دارند به دنبال شخصی باشند که کنترل قوانین پروتکل بیت کوین را بر عهده دارد. پیش و در حین جنگ بلاک‌سایز، بسیاری تصور می‌کنند که این کنترل‌کننده استخراج‌کنندگان، بنگاه‌های بزرگ یا گاوین اندرسن است. یکی از پیشامدهای منفی غیرمنتظره‌ی آن جنگ این است که بسیاری دیدگاه خود به اینکه Bitcoin Core مسئولیت آن را برعهده دارد، از دست داده‌اند که به همان اندازه نگاه اشتباهی است. حقیقت که ممکن است اذعان به آن دشوار باشد، این است که کاربران انتها (end users) در نهایت کنترل بیت کوین را در اختیار دارند.

البته که این می‌تواند دور از واقعیت باشد. در واقعیت، تولیدکنندگان ASIC، شرکت‌های استخراج بزرگ، توسعه‌دهندگان، متولیان بزرگ، بورس‌های بزرگ و حتی یک مخزن نرم‌افزاری فردی هم بسیار بر آن تأثیرگذار هستند. ما ممکن است با گفتن اینکه کاربران در نهایت کنترل را در اختیار دارند، آرمان‌گرایانه به نظر برسیم. با این حال، این همان معنای «کاربر پول را کنترل می‌کند» نیست؟ اگر کسی فکر می‌کند که کاربران، بیت کوین را کنترل نمی‌کنند، پس واقعاً بیت کوین به چه کاری می‌آید؟

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.