این یک سرمقاله نظری است توسط بیل اسکورزبی، صاحب یک کسب و کار کوچک مبتنی بر بیت کوین و نویسنده چندین راهنما برای نگهداری از بیت کوین.
اشکالاتی که اخیراً باعث شد بسیاری از گره های LND با بلاک چین بیت کوین همگام شوند احتمالاً ناشی از اجرای جایگزین است.
شاید از خود بپرسید: «چه کسی در دنیا از چیزی غیر از این استفاده می کند هسته بیتکوین؟" شاید نمی دانستید که پیاده سازی های دیگری از بیت کوین وجود دارد. شاید مطمئن نیستید که اجرای متفاوت به چه معناست.
بیت کوین کور به عنوان نرم افزاری آغاز شد که ساتوشی Nakamoto به زبان C++ نوشت و در جهان منتشر شد. با نسخه های جدید منتهی به امروز به روز شده است. یک پیادهسازی جایگزین نرمافزاری است که همان کار بیت کوین کور را انجام میدهد – قوانین اجماع یکسانی را اجرا میکند – اما بهطور متفاوت نوشته میشود، اغلب به زبان برنامهنویسی متفاوت.
چگونه یک پیاده سازی جایگزین گره ها را در شبکه لایتنینگ شکست؟
یکی از اصلی ترین نسخه های گره شبکه لایتنینگ (LND) به پیاده سازی جایگزین بیت کوین به نام btcd متکی است. هنگامی که یک توسعه دهنده یک تراکنش مولتی سیگ بسیار بزرگ ایجاد کرد، btcd آن را معتبر نمی دانست زیرا حاوی داده های شاهد بیش از حد بود. سایر پیادهسازیهای بیتکوین - از همه مهمتر Bitcoin Core - چنین محدودیتی برای دادههای شاهد تراکنش Taproot نداشتند و بنابراین تراکنش و بلوکی که حاوی آن بود را معتبر میپذیرفتند.
نتیجه این بود که ماینرها مدام بلوکهای جدیدی را روی زنجیره اضافه میکردند، زیرا از btcd استفاده نمیکردند و طبق قوانین آنها هیچ مشکلی وجود نداشت، اما گرههای LND Lightning نمیتوانستند هیچ یک از این بلوکهای جدید را تشخیص دهند زیرا در بالای بلوک حاوی آن یک تراکنش را نامعتبر می دانستند.
وقتی این باگ دوباره در 1 نوامبر اتفاق افتاد، فقط گره های LND نبودند که تحت تأثیر قرار گرفتند. برخی از نمونههای electrs (پیادهسازی سرور پشتیبان برای Electrum Wallet) نیز نتوانستند با بقیه زنجیره به توافق برسند. در حالی که گره های LND به دلیل مشکل مشابه در btcd خارج از اجماع قرار گرفتند، این پیاده سازی بیت کوین بود که در Rust نوشته شده بود که باعث عقب افتادن گره های الکتریکی شد، از جمله برخی از سرورهای بسیار قابل مشاهده توسط mempool.space اجرا می شود.
محدودیت در اندازه داده های شاهد وجود دارد برای جلوگیری از حملات DoSو همچنین بخشی از بیت کوین Core است (اگرچه Core محدودیت بیشتری برای تراکنش های Taproot دارد). به نظر میرسد که دو پیادهسازی دیگر که از همگامی خارج شدهاند، دارای کدی بودند حد کوچکتر را حفظ کرد.
تفاوت های بسیار کوچک در پیاده سازی ها می تواند منجر به عدم توافق شود.
اجرای چندگانه بیت کوین خطرناک است
ساتوشی ایده اجرای چندگانه بیت کوین را دوست نداشت. من معتقد نیستم که اجرای دوم و سازگار بیت کوین ایده خوبی باشد. دلیلی که او بیان کرد این بود: «بسیاری از طراحی بستگی به این دارد که همه گرهها نتایج کاملاً یکسانی را دریافت کنند که اجرای دوم تهدیدی برای شبکه خواهد بود».
تهدید؟ چه چیز بزرگی است؟
احتمالاً شنیده اید که زنجیره ای که بیشترین اثبات کار را دارد، زنجیره واقعی است. هنگامی که دو ماینر مختلف به طور همزمان یک بلوک را پیدا میکنند، زنجیره از هم جدا میشود و سایر ماینرها شروع به ساختن روی هر بلوکی میکنند که ابتدا درباره آن میشنوند.
به محض اینکه یک بلوک جدید به یک طرف تقسیم اضافه می شود، اکثر گره ها و ماینرها آن را به عنوان زنجیره واقعی جدید می پذیرند و طرف دیگر تقسیم را رها می کنند. این بلوکها به عنوان بلوکهای قدیمی شناخته میشوند، اگرچه برخی از مردم آنها را بلوکهای یتیم مینامند.
از آنجایی که میانگین زمان بین بلاک ها در بیت کوین 10 دقیقه است، به احتمال زیاد کل شبکه در مورد این بلاک جدید قبل از اضافه شدن یک بلاک به بخش بازنده تقسیم، و زنجیره ای که بیشترین کار را انجام داده است، برنده خواهد شد.
«گرهها از زنجیره معتبر با بیشترین کار پیروی میکنند... کلمه کلیدی در اینجا معتبر است. اگر گره بلوکی را دریافت کند که آن را نامعتبر تشخیص دهد، مهم نیست که چقدر کار روی آن بلوک انجام شود، گره آن زنجیره را نمی پذیرد. - اندرو چاو
کلمه کلیدی "معتبر" است. این تهدید زمانی ظاهر می شود که یک ماینر بلوکی را پیدا کند که برخی دیگر از ماینرها و گره ها فکر می کنند معتبر نیست. ماینرهایی که فکر می کنند معتبر است، سعی می کنند بلوک های جدیدی را روی آن زنجیره بسازند. ماینرهایی که فکر میکنند معتبر نیست، سعی میکنند آخرین بلوک معتبری را که میدانند بسازند. نتیجه: دو زنجیره و هیچ راهی برای دانستن اینکه کدام درست است.
در دنیا چطور ممکن است چنین اتفاقی بیفتد؟
خوب، همانطور که در مورد باگ اخیر با گرههای LND دیدیم، اگر اشکالی در یکی از پیادهسازی بیتکوین وجود داشته باشد که در سایر پیادهسازیها وجود ندارد، میتواند منجر به عدم اجماع در مورد معتبر بودن یا نبودن یک بلوک شود.
بیت کوین مکانیسمی برای رفع این مشکل ندارد. جامعه خارج از پروتکل باید تصمیم بگیرد که چه اتفاقی می افتد. خیلی ناخوشایند به نظر می رسد.
آنقدر که پیتر تاد، توسعهدهنده بیتکوین این را گفته است سایر پیادهسازیها باید با باگ برای اشکال بیت کوین Core مطابقت داشته باشند.
شما می روید: پیاده سازی های متعدد خطرناک هستند!
سایر پیاده سازی های بیت کوین چیست و چرا وجود دارند؟
اول از همه، اکثر افراد بیت کوین Core را اجرا می کنند.
لوک دشجر حدود 43,000 گره را می بیند. 98 درصد از آنها بیت کوین Core را اجرا می کنند و چیزی به نام Coin Dance نزدیک به 15,000 گره را می بیند، 96 درصد از آنها بیت کوین Core را اجرا می کنند. بنابراین، در حال حاضر، به نظر میرسد افراد بسیار کمی از پیادهسازیهای جایگزین استفاده میکنند.
با این وجود، پروژههای فعالی وجود دارند که در تلاش برای ساخت و نگهداری پایگاههای کد دیگری هستند که پروتکل بیتکوین را پیادهسازی میکنند. آنها عبارتند از:
جیمسون لوپ دارای یک صفحه عالی با یک لیست جامع تر و پیوندهایی به تمام پیاده سازی های دیگر.
همه این پروژه ها توسعه دهندگان بسیار با استعدادی دارند که روی آنها کار می کنند و هر کدام بیش از چند سال است که وجود داشته اند. چرا برای چیزی که چنین مشکلی به نظر می رسد تلاش زیادی می کنید؟
بیت کوین بدون مجوز است. هر کسی می تواند زنجیره را دانلود کند. هر کسی می تواند با شبکه تعامل داشته باشد. و هیچ کس نمی تواند شما را از کدنویسی یا اجرای یک پیاده سازی جایگزین باز دارد.
با این حال، به وضوح برخی افراد مسئول هستند ایجاد تغییرات در مخزن بیت کوین و فرآیند انتخاب آنها غیر رسمی به نظر می رسد. در حالی که وجود دارد فرآیند پیشنهاد بهبود بیت کوین (BIP). برای پیشنهاد تغییرات در Bitcoin Core، این نیز بسیار غیر رسمی است.
هیچ کدام از اینها یک مشکل مستقیم نیست. همانطور که مارتی بنت اشاره می کند، اجماع خشن می تواند یک نقطه قوت باشد. اگر روند تغییر بیت کوین دشوار و نامشخص باشد، به این معنی است که تغییرات به طور کامل بررسی خواهند شد.
گام بعدی اجماع تقریبی، داشتن بیش از یک اجرای عمومی است.
عدم اجرای چندگانه ممکن است خطرناک تر باشد
شکی نیست که در حال حاضر کار بسیار دشواری است که یکی از افرادی باشید که به بیت کوین Core دسترسی دارند. در دنیایی که بیت کوین به عنوان یک ابزار پولی نقش اصلی را ایفا می کند، این کار بسیار دشوارتر خواهد شد. گروه کوچکی از توسعه دهندگان می توانند به یک هدف بسیار ارزشمند تبدیل شوند. حداقل، توجه آنها به منظور لابی کردن برای گنجاندن یا حذف های مختلف در نسخه بعدی نرم افزار جلب خواهد شد.
به صنعت لابی گری که در حال حاضر در سیاست وجود دارد فکر کنید. چرا چنین چیزی در اطراف افرادی که به تنها اجرای پروتکل بیت کوین دسترسی دارند، ایجاد نمی شود؟
مانند سیاستمداران در حال حاضر، آنها به قدرت دسترسی دارند. به این ترتیب، مردم آنها را مورد هدف قرار خواهند داد، با این تفاوت که این توسعه دهندگان قدرت یک دولت برای دفاع از آنها را ندارند. چه نوع زندگی قرار است باشد؟ چه کسی داوطلبانه آن را انتخاب می کند؟
در پایان، سیستم مالی جهانی وزنه بسیار سنگینی است که باید بر دوش گروه کوچکی از افرادی که به یک مخزن GitHub دسترسی دارند، تکیه کند. شاید با سیستم مالی جهانی که ما در تلاشیم تا از جایی که آینده پولی مردم به تصمیمات چند بانک مرکزی وابسته است فاصله بگیریم، چندان متفاوت نیست.
پیاده سازی های متعدد برای نجات!
وجود و استفاده گسترده از پیاده سازی های متعدد در شبکه بیت کوین می تواند این فشارها را با دشوارتر کردن تغییر پروتکل بیت کوین برای یک عامل مخرب کاهش دهد.
اگر مشارکت کنندگان در شبکه بیت کوین به طور مساوی بین پیاده سازی های مختلف توزیع شوند، فضای بیشتری برای ظهور ایده های خوب وجود دارد. پیشنهاد تغییرات در بیت کوین یا رد آنها بسیار غیرمتمرکزتر است اگر همه در یک اردو انجام نشود.
واضح است که استفاده از پیاده سازی های مختلف بیت کوین خطر تقسیم زنجیره را افزایش می دهد. یک شکاف زنجیره فاجعه بار - که در آن بخش قابل توجهی از گره ها و ماینرها به طور تصادفی جدا شدند - برای بیت کوین و قطعاً قیمت آن خوب نیست. اما طبیعت بدون مجوز بیت کوین را تهدید نمی کند.
یک محیط توسعه متمرکز که در آن همه فقط بر اساس بیت کوین Core میسازند، میتواند عدم مجوز را تهدید کند. مکالمه در مورد این موضوع به جای تمرکز بر روی مشکلاتی که ممکن است توسط اجرای جایگزین ایجاد شود، باید به خطرات تکیه شدید بر بیت کوین Core توجه کند.
بزرگتر وجود دارد مقاله ای در مورد این بحث توسط آرون ون ویردام همچنین می توانید مطالب اخیر را بخوانید، موضوع آموزنده در مورد آن.
این یک پست مهمان توسط بیل اسکورزبی است. نظرات بیان شده کاملاً متعلق به خود آنها است و لزوماً نظرات BTC Inc یا مجله Bitcoin را منعکس نمی کند.
- بیت کوین
- هسته بیت کوین
- گره های بیت کوین
- مجله Bitcoin
- بلاکچین
- انطباق با بلاک چین
- کنفرانس بلاکچین
- coinbase
- coingenius
- اجماع
- کنفرانس رمزنگاری
- معدنکاری رمز گشایی
- کریپتو کارنسی (رمز ارزها )
- غیر متمرکز
- DEFI
- دارایی های دیجیتال
- ethereum
- لیبیت کوین
- فراگیری ماشین
- رمز غیر قابل شستشو
- نظر
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- PlatoData
- بازی پلاتو
- چند ضلعی
- اثبات سهام
- فنی
- W3
- زفیرنت