در پارت اول مقاله صفر تا صد کارمزد تراکنش بیت کوین، نحوه ثبت تراکنشها در شبکه بیت کوین و نقش کارمزد در آنها را تشریح کردیم. حالا در این قسمت قصد داریم به نقش اصلی کارمزد تراکنش بیت کوین در تأمین امنیت شبکه و حذف ماینرها و مهاجمین به شبکه را توضیح دهیم. در این مقاله به خوبی درک خواهید کرد که چرا بیت کوین قابل حذف نبوده و حالا به شبکهای پولی نابود ناشدنی تبدیل شده است.
امنیت و قوانین اجماع بیت کوین
امنیت و قوانین اجماع بیت کوین، به ترتیب توسط ذخیره کلید خصوصی و نودهای شبکه تأمین و تنظیم میشود، نه ماینرهای آن. این یعنی اهمیتی ندارد که نرخ هش شبکه چقدر کم شود، چون ماینرها باز هم نمیتوانند نودها را مجبور کنند که بیشتر از 21 میلیون واحد BTC را قبول کنند، محدودیتهای شبکه مثل اندازه هر بلاک را بیشتر کنند، تراکنشی معتبر که بیت کوین افراد را میدزدد را تأیید کنند و یا دیگر قوانین پایه و اصلی اجماع شبکه را تغییر دهند.
به همین خاطر است که جنگ اندازه بلاک در سالهای 2015 تا 2017 اهمیت بالایی دارد. این اتفاق تأیید کرد که قوانین پایهای اجماع بیت کوین توسط خود کاربران (اوپراتور نود) تغییر ناپذیر و عملی میشود، نه شرکتهای بزرگ، صرافیها، ماینرها، توسعه دهندگان یا هیچ دولت دیگری.
بیت کوین یک نقطه شیلینگ (Schelling Point) در یک مجموعه قوانین اجماع موجود است. اولین قانون توسط ساتوشی ناکاموتو و در سال 2009 وضع شد. تغییر در همه قوانین شبکه امکان پذیر است، ولی کاربران باید با آن همراه و موافق باشند. اوپراتورهای نود معمولاً تغییرات محتاطانهای را در اولویت بررسی قرار میدهند که در بلند مدت هزینههای پهنای باند، پردازش و ذخیره اطلاعات آنها را افزایش ندهد. نتیجه این سیستم تمرکززدایی است؛ سیستمی که هر کسی میتواند به راحتی یک نرم افزار رایگان و متن باز را اجرا کند و با تشکیل یک نود کامل با هزینهای اندک، کل دفتر کل و تراکنشهای آن را تأیید کند.
برای حداکثر کردن امنیت و تمرکززدایی شبکه، لازم است که از ارتقای نرم افزار «اجباری» یا «خودکار» خودداری کنید، بنابراین نسخههای جدید نرم افزارها باید با نسخههای قبلی رقابت کرده و در عین حفظ سازگاری با فرآیند قبلی، کاربرد بهتری داشته باشد.
سانسور تراکنشها در ماینرهای نامعتبر
اصل مطلب این است که ماینرها فقط قادر به انجام یک کار هستند: بلاکهایی را پیشنهاد دهند تا نودها (که قوانین اجماع را اجرا میکنند) آنها را تأیید، قبول و برای بروزرسانی دفتر کل استفاده کنند.
از آنجایی که ماینرها توان تغییر قوانین اجماع را ندارند، ماینرهای مخرب و نامعتبر تنها میتوانند تراکنشهایی را که خودشان نمیخوانند در بلاک پیشنهادی خودشان قرار بگیرد را سانسور کنند. البته میتوانند در این کار خلاقیتهایی به خرج دهند ولی تنها حمله آنها خلاصه به سانسور تراکنشها میشود.
هزینههای تصاحب نرخ هش برای یک حمله، مثل ساخت زیرساختهای لازم، تولید یا خرید ASIC یا خرید برق هیچ ارتباطی با مهاجمینی که قدرت حمله به داراییها و آسیب رساندن به شبکه را دارند، ندارد. البته ماینرها برای محافظت از خود در برابر این تهدیدات انگیزه کافی دارند، ولی خودشان به طور بنیادین قادر به حمله نیستند.
در واقع ماینرها قادر به اجرای سه حمله مهم هستند. یکی از آنها حمله مالی است (برای کسب سود)، و دو مورد دیگر به طور اتفاقی یا تلاشی برای تخریب سطح اعتماد به قدرت توافق مالی بیت کوین هستند.
- خرج دوباره کوینهای خودشان (حمله مالی)
در این نوع حمله، مهاجم بیت کوین خود را برای آدرس گیرنده ارسال میکند و به طور همزمان، زنجیرهای را با تراکنش اصلی که به خودشان برگشت خورده، استخراج میکنند. گیرنده در ابتدا تأیید شدن تراکنش را میبیند، ولی بعد مهاجم زنجیره بلندتر با بدون تراکنش اصلی منتشر میکند. حالا گیرنده دیگر BTC را نخواهد داشت و مهاجم کوین خود را نگاه خواهد داشت.
- با استخراج بلاک خالی، اجازه ثبت تراکنش را به هیچکس ندهند (حمله غیر مالی)
در این نوع حمله، مهاجم به طور مداوم بلاکهای خالی را منتشر میکند تا از ثبت تراکنش توسط کاربران جلوگیری کند. از آنجایی که مهاجم بیشتر از 50 درصد نرخ هش را در اختیار دارد، ماینرهای معتبر هیچگاه نمیتوانند بلاکی را استخراج کنند؛ زیرا مهاجم میتواند بلاکهای پری را که ماینرهای سالم قصد ثبت دارند را از زنجیره خارج کند. این یک حمله غیر مالی است زیرا مهاجم باید ASIC های زیادی را خریده یا به سرقت ببرد، زیرساختهای ماینینگ عظیم بسازد و انرژی زیادی را خریداری و مصرف کند ولی هیچ سود مالی نخواهد برد. لحظهای که مهاجم دست از نابودی منابع برداشت، ماینرهای سالم میتوانند به کار خود ادامه دهند.
- سازماندهی مجدد عمیق (حمله غیر مالی)
در این نوع حمله، مهاجم در سکون شروع به استخراج زنجیرهای از بلاکهای خالی میکند. سپس مهاجم منتظر میماند تا تعداد زیادی بلاک استخراج شود و بعد زنجیره طولانیتر بلاکهای خالی را منتشر کرده و تراکنشهایی که قبلاً تأیید شده بود را حذف میکند. این حمله هم از نوع غیر مالی است، چرا که مهاجم بدون دریافت سود مالی منابع خود را هدر داده است.
بیت کوین بسیار مقاوم است!
افزایش کارمزد در صورت نیاز
اما آیا واقعاً بلاک خالی استخراج میشود؟ ممپول بیت کوین پر از تراکنشهایی است که با افزایش کارمزد برای جای گرفتن در بلاک بعدی با هم رقابت میکنند. این امر تئوری نیست. تا به امروز بارها دیدهایم که تقاضا برای فضای بلاک به حدی زیاد شده که کارمزد تراکنشها به شدت افزایش یافته است (وضعیت ممپول بیت کوین در دسامبر 2017 را ببینید).
در زمان حمله بلاک خالی، به نفع کاربران بیت کوین است که کارمزد تراکنشهای خود را برای جایگیری در بلاک بعدی، افزایش دهند. هرچه تعداد بلاکهای خالی بیشتر باشد (زمان حمله بیشتر شود)، تراکنشهای بیشتری هم در ممپول انباشته خواهد شد. کارمزدها میتوانند از 1 sat/vbyte به بیش از 1000 sat/vbyte برسد. پاداش یک بلاک میتواند از 0 تا بیش از 10 واحد شود. البته به شرط حداکثر اندازه کنونی بلاکها که 1 میلیون vbyte است.
این سیستم بسیار مقاوم و ضد شکننده است؛ زیرا حمله بلاک خالی با تعداد بیشماری ضد حمله با کارمزد تراکنش بالا مواجه میشود. آگاهی از همین ضد حملات، به طور کلی مهاجم را از اجرای این حمله منصرف میکند.
این مسئله یک حمله جاری بلاک خالی را منتفی میکند، ولی اگر مهاجم به مدت 24 ساعت یک زنجیره بلاک خالی را استخراج کرده و بعد یک زنجیره خالی طولانیتر را به شبکهای که همه نودها آن را معتبر میدانند، معرفی کند چه میشود؟ در این حالت، همه تراکنشهایی که در طول 24 ساعت گذشته تأیید شدهاند، دوباره به تعداد تأیید 0 برگشته و به ممپول بازمیگردند.
این حمله هم به روشی مشابه خنثی میشود. همه تراکنشگرهای قبلی (فرستندهها و گیرندهها) برای افزایش کارمزد تراکنش و اخذ سهمی از بلاک بعدی از روشهای CPFP (Child Pays for Parent) و RBF (Replace By Fee) استفاده میکنند.
به عنوان مثال اگر کسی 100 واحد BTC برایتان ارسال کند و این تراکنش 23 تأیید بگیرد، شما قطعاً فکر میکنید که این تراکنش تأیید شده ولی بعد یک مهاجم یک زنجیره خالی را منتشر میکند (reorg یا سازماندهی مجدد) که تراکنشی در آن ندارد. این یک اتفاق دردناک است، چون دیگر آن 100 واحد بیت کوینی که فکر میکردید داشتید را ندارید، مگر نه؟ خب اینطور نیست، شما حالا میتوانید با قابلیت CFPF آن تراکنش تأیید نشده را با کارمزدی بالاتر در ممپولی که حالا بسیار شلوغ شده، ثبت کنید. شما بار دیگر میتوانید بیشتر از 1000 sats/vbyte یا هر مقدار دیگر کارمزد تعیین کنید تا وارد بلاک سالم بعدی شوید.
لازم به ذکر است که هدف از کارمزد تراکنشها، تشویق ماینرها برای فعالیت و گسترش فعالیت آنهاست. دستگاههایی که تنها در زمان ارزان یا رایگان بودن انرژی سودآور بودند، حالا تقریباً با هر هزینهای مایل به فعالیت هستند زیرا درآمدشان صدها برابر بیشتر شده است. این باعث میشود که رفته رفته میزان نرخ هش سالم با افزایش کارمزد، بیشتر شود و نرخ هش آنها از مهاجم پیشی بگیرد.
ممکن است برخی ادعا کنند که حمله بلاک خالی، در واقع یک حمله مالی (سودآور) هم هست. قبل از انتشار یک رشته بلاک خالی، مهاجم میتواند یک پوزیشن شورت در بیت کوین باز کند، زیرا قیمت بیت کوین به خاطر حمله قطعاً ریزش خواهد کرد. اگرچه در حملات 51 درصدی قبلی روی Bitcoin Gold یا BitcoinSV، قیمت کوینها در جریان یا بعد از حمله ریزش سریعی را تجربه نکرد. با اینکه این حملات 51 درصدی، خرج دوباره (دابل اسپِند یا Double Spend) بودند نه بلاک خالی، با این حال نشان دادند که ممکن است این حملات آسیبی به قیمت دارایی وارد نکند.
در واقع در طول حمله، هیچکس نمیتواند پیشبینی کند که قیمت به کدام سمت حرکت میکند، زیرا به خاطر وجود بلاکهای خالی کسی قادر به جابجایی کوین نیست. کوینهای موجود در صرافیها میتوانند به معامله خود ادامه دهند ولی باز هم تضمینی برای ریزش قیمت وجود ندارد، مخصوصاً به این خاطر که تریدرها میدانند که این حمله در نهایت به پایان خواهد رسید، زیرا مهاجم نمیتواند تا ابد منابع خود را هدر دهد. در واقع لحظهای که کارمزدها به حدی زیاد شود که نرخ هش جدید به شبکه اضافه شود یا مهاجم تسلیم شود، حمله به پایان رسیده است.
جمع بندی: بازار کارمزد پویا و متغیر شبکه بیت کوین، آن را در برابر انواع حملات مقاوم کرده است.
پارادوکس حمله
برای اینکه این حمله اجرا شود، یک شاخص با منابع تقریباً لایتناهی باید تمایل زیادی برای نابود کردن بیت کوین، بدون انگیزه مالی داشته باشد. با معرفی بلاکهای خالی و جلوگیری کاربران از ثبت تراکنش در شبکه، این شاخص همه منابع و انرژی را هدر داده است. هر چه بیت کوین بزرگتر شود، مقدار منابعی که باید هدر رود هم بیشتر میشود.
اگر بیت کوین «کوچک» باشد و تهدید جدی برای رقبای پولی هم محسوب نشود، مزایای حمله به قدری نخواهد بود که هزینه و تلاش لازم برای حمله را توجیه کند.
اگر بیت کوین بزرگ باشد (بیشتر از 100 تریلیون دلار) و تهدیدی جدی برای رقبای پولی خود باشد، اجرای موفق حمله هم خارج از توان مهاجمین خواهد بود. همانطور که پیشتر هم تشریح کردیم، هر گونه حملهای با ضد حمله طبیعی و آزاد کارمزدها مواجه خواهد شد. اگر چند مهاجم مخرب بخواهند به صورت همزمان حمله کنند، هر یک انگیزه «خلف وعده» را خواهد داشت، زیرا میخواهد که اولین کسی باشد که تراکنشهای سانسور شده با کارمزد بالا را در بلاک بعدی درج کند. این همان مسئله دوراهی زندانی است.
انتظار برای خلع سلاح مهاجمین
در آخر، اگر حملهای رخ ندهد ولی باز هم گیرنده بیت کوین ترس از چنین رویدادی داشته باشد، میتواند منتظر تعداد تأیید بیشتری بماند و اعتماد بیشتری نسبت به توافق قطعی و نهایی تراکنش خود به دست آورد. این اتفاق هم فرضی نیست، زیرا دقیقاً همین اتفاق برای BCH و BSV و دیگر آلت کوینها افتاده است.
هنوز هم تراکنشها در این شبکهها منتشر و تأیید میشوند و کوینهایشان در خود شبکه جابجا و در صرافیها خرید و فروش میشوند؛ با اینکه امنیت و نهاییسازی توافقات در این شبکهها به مراتب کمتر از اعلی حضرت بیت کوین است.
یک نمونه عالی، تراکنشی است که در تاریخ 17 جولای 2022 برای ارز دیجیتال BCH افتاد. این تراکنش 113,356 واحد BCH (با ارزش حدود 12.4 میلیون دلاری) را جابجا میکرد. در آن زمان، پاداش بلاک تنها 800 دلار بود (یک پنجم میانگین کارمزد تراکنش هر بلاک بیت کوین در حال حاضر).
در چنین اتفاقی، انجام یک دابل اسپند بسیار سودآور بود، نحوه انجام این حمله هم به قرار زیر است:
- ارسال 113,356 واحد BCH به یک صرافی.
- شروع حمله 51 درصدی به صورت مخفی با استخراج زنجیرهای بدون تراکنش.
- فروش BCH در ازای BTC.
- برداشت BTC از صرافی.
- انتشار زنجیره خالی و بلندتر جدید که تراکنش BCH اصلی در صرافی، در آن وجود ندارد.
- حالا مهاجم هم BTC دارد و طبق زنجیره طولانیتر، همان BCH اولیه خود را هم در اختیار دارد.
- در این شرایط مهاجم حمله دابل اسپند یا خرج دوباره را تکمیل کرده و 12.4 میلیون دلار سود کسب کرده است.
این اتفاق همین امروز هم میتواند بیافتد و انگیزه مالی برای این کار هم وجود دارد. ولی به ندرت چنین اتفاقی رخ میدهد. چرا؟
صرافیها و دیگر کاربران حالا برای اینکه یک تراکنش را نهایی بدانند، باید منتظر تعداد تأییدهای بیشتری بمانند. برخی از صرافیها برای BCH حداقل 100 تأیید نیاز دارند که کمتر از 24 ساعت زمان میبرد، ولی باز هم از آنها در برابر حمله دبل اسپند محافظت میکند، زیرا مقدار انرژی، زمان و کار لازم برای به دست آوردن 51 درصد از توان پردازشی شبکه و بازگشت تراکنش را بیشتر میکند. به طور کلی باید گفت که انتظار برای تعداد تأییدهای بیشتر، اعتبار توافق نهایی تراکنش را بیشتر میکند.
علاوه بر این، در حمله خرج دوباره (Double Spend)، مهاجم به قربانی پول بدهکار میشود، بنابراین برای حمله بعدی باید قربانی دیگری را پیدا کند. مهاجم هم باید ناشناخته بماند و دارایی قربانی هم به حدی باشد که انگیزه برای حمله را ایجاد کند. بعید است که این نوع حمله، مقیاس پذیر و معقولانه باشد.
علاوه بر این، اگر کاربران یا صرافیها برای توافق نهایی تراکنش به تعداد تأیید بیشتری نیاز داشته باشند، بنابراین ممکن است کاربران مشتاق به پرداخت کارمزد بیشتر شوند تا زودتر در بلاک بعدی جای گرفته و کمتر انتظار بکشند. این یعنی اگر یک صرافی به 100 تأیید نیاز داشته باشد (16.7 ساعت)، کاربرانی که به دنبال توافق نهایی سریع هستند، میخواهند تأییدها را هر چه سریعتر بگیرند. بنابراین تمایل دارند که کارمزد زیادی را پرداخت کنند. از طرفی این کارمزدهای بیشتر منجر به ورود بیشتر ماینرها و اعتماد بیشتر کاربران به توافق نهایی شبکه میشود و همین امر یک جور تعادل را ایجاد میکند.
نکته قابل توجه دیگر این است که اگر مهاجمین زیادی برای حمله دابل اسپند و 51 درصدی تلاش کنند، مهاجمین در نهایت باید با یکدیگر هم رقابت کنند و همین امر هم موفقیت آنها را بعیدتر میکند. این یعنی حتی اگر یک شبکه ناامن باشد و دابل اسپند در آن رخ دهد، باز هم مهاجمی میتواند پیروز شود که از مجموع مهاجمین دیگر هم قدرت هش بیشتری داشته باشد. در این نمونه هم انجام و تکمیل حمله 51 درصدی سخت میشود.
در آخر، بیشتر کسانی که سرمایه و منابع کافی برای اجرای یک حمله 51 درصد را دارند، در واقع انگیزه این کار را ندارند. اینگونه افراد حتماً مقدار بسیار زیادی BCH، BSV یا حتی BTC دارند، بنابراین نمیخواهند تمامیت این شبکههایی را که خود مقدار قابل توجهی از توکنهایشان را در اختیار دارند، تضعیف کنند.
در پایان باید بگوییم که معمولاً گفته میشود که خرج دوباره همین حالا هم در بلاکچینهای ضعیف رخ میدهد؛ ولی با توضیحاتی که دادیم، انواع دلایل بسیار بعید بودن این اتفاق را در واقعیت گفتیم. در ضمن حتی اگر چنین حملاتی وجود داشته باشد هم با افزایش تعداد تأییدهای مورد نیاز برای نهایی سازی توافق میتوان اعتبار تراکنشها را بیشتر کرد.
در بدترین شرایط ممکن، منتظر ماندن به مدت یک روز (144 تأیید) یا یک هفته (1008 تأیید) بدون نیاز به شخص ثالث هم راهکار بسیار امنی است. امروزه نهایی سازی توافقات در Visa یا ACH میتواند چندین هفته یا حتی ماه طول بکشد، آن هم در حالی است که حمله و بازگرداندن تراکنش در این پلتفرمها به مراتب سادهتر از شبکهای به عظمت و اعتبار بیت کوین است. علاوه بر این، اگر تراکنشهای آنچین فقط برای خریدهای بلند مدت و ذخیره سرد و کانالهای لایتنینگ استفاده شود، تأخیرهای طولانی چندان مشکل بزرگی برای کاربران نخواهد بود.
جمع بندی نهایی
در بلند مدت، بازار برای کارمزدهای تراکنش در سطح آنچین به نوعی تعادل طبیعی خواهد رسید. شبکه میتواند به نقطهای برسد که دیگر تقاضایی برای تکنولوژی مقیاس پذیری وجود نداشته باشد و کارمزدها هم به حدی بالا باشد که سانسور و دستکاری بعد از x بلاک غیر ممکن شود.
حال سوال اینجاست که این اتفاق چه زمانی رخ میدهد؟ هیچکس نمیداند، ولی چیز بدیهی این است که امنیت بلند مدت بیت کوین حتمی است و ماینرها هم چرخههای مقیاس پذیری بیشتری را تجربه خواهند کرد و با افزایش پذیرش بیت کوین و استفاده از آن به عنوان ابزار مبادله در سراسر جهان، درآمد آنها از راه کارمزد به مراتب بالاتر خواهد رفت.
منبع : Blockware Intelligence
پاسخ