اشتباهات رایج درباره حمله 51 درصد
چه اشتباهاتی درباره حمله ۵۱ درصد وجود دارد؟ آیا مهاجم با در اختیار گرفتن شبکه میتواند تمام تراکنشها را برگشت بزند؟ مانع از ساخت بلاکهای جدید شود؟ یا کوینهای جدید تولید کند و رمزارزهای سایر کاربران را خرج کند؟ شاید خیلی از افراد درک کاملی از مفهوم حمله ۵۱ درصدی داشته باشند، اما لازم است تا در این مقاله به بررسی موضوع مشترک مورد ابهام در مورد این حمله بپردازیم. در طول این حمله مخرب، فرد مهاجم امکان انجام کارهای زیادی را خواهد داشت اما محدودیتهایی نیز در رابطه با این نوع حمله وجود دارد. با ما همراه باشید تا به بررسی تصورات اشتباه درباره حمله ۵۱ درصد و راهکارهای جلوگیری از این حمله بپردازیم.
تصورات اشتباه درباره حمله ۵۱ درصد
موضوع مطرح شده در مورد این نوع حمله بدین صورت است که اگر کسی بیش از ۵۰ درصد قدرت هش شبکه بیت کوین، اتریوم یا هر بلاکچین دیگری را در اختیار داشته باشد، قادر است تا هر کار دلخواهی را با شبکه مورد نظر انجام دهد. مفهوم مشابهی در زمینه گواه اثبات سهام (PoS) وجود دارد؛ بدین صورت که اگر کسی بیش از دو سوم مبلغ استیک یا سپرده موجود در شبکه را در اختیار داشته باشد، قادر به انجام هر کاری، حتی در اختیار گرفتن کوین افراد دیگر خواهد بود. از جمله دیگر اقداماتی که آن شخص میتواند انجام دهد به تولید کوینهای جدید و غیره میتوان اشاره کرد.
جالب است بدانید که این مفاهیم به هیچ عنوان صحیح نیستند. بیایید کمی در مورد حمله ۵۱ درصدی و کارهایی که میتوان به واسطه آن انجام داد صحبت کنیم:
در طول این حمله میتوان کاربران را از استفاده از زنجیره مورد نظر منع کرد و دسترسی آنها را محدود کرد. بدین صورت که آن شخص میتواند تمامی تراکنشهای نامطلوب را مسدود یا بلاک کند. این در واقع همان سانسور کردن محسوب میشود.
شخص مهاجم میتواند زنجیره مورد نظر را معکوس کند. بدین صورت که میتواند تعداد معینی از بلاکها را از بین برده و ترتیب تراکنشهای درون آنها را تغییر دهد.
لازم به ذکر است که در طول این حمله به هیچ عنوان نمیتوان قوانین حاکم بر سیستم را تغییر داد. به عنوان مثال:
فرد یا افراد مهاجم نمیتوانند به سادگی کوین جدیدی را مغایر با قوانین سیستم بلاکچین تولید کنند. به عنوان مثال، بیت کوین در حال حاضر به هر یک از تولیدکنندگان بلاک به میزان ۶.۲۵ بیت کوین پاداش اختصاص میدهد و افراد مهاجم نمیتوانند این پاداش را به یک میلیون بیت کوین تغییر دهند.
افراد مهاجم نمیتوانند کوینهای آدرسی که کلید خصوصی آن در اختیارشان نیست را خرج کنند.
این افراد نمیتوانند بلاکهایی بزرگتر از چیزی که قوانین حاکم بر اجماع به آنها اجازه میدهد را تولید کنند.
تمامی مسائلی که تا به اینجا مطرح کردیم چیزی از مخرب بودن حمله ۵۱ درصدی کم نمیکنند. این نوع از حمله به شبکهها بسیار ویرانگر هستند و در طول فرایند تغییر دادن ترتیب سفارشها و تراکنشها در حمله ۵۱ درصدی، تا دو برابر کوینهای مورد نیاز خرج میشوند. بدون شک این موضوع یک مشکل بزرگ محسوب میشود اما محدودیتهایی نیز در مورد کارهای قابل انجام به واسطه این حملات وجود دارند.
بلاک چینهایی مانند بیت کوین و اتریوم چگونه خطر این مشکل را برطرف میکنند؟ اگر ماینری یک بلاک مغایر با قوانین را استخراج کند چه اتفاقی میافتد؟ اگر اکثریت مبلغ استیک یا سپرده موجود در یک شبکه بلاکی را امضا کنند که با قوانین تطابق نداشته باشد چه میشود؟
مدل امنیت بلاکچین
برخی از مردم ادعا میکنند که طولانیترین زنجیره در بستر شبکه به عنوان زنجیره معتبر بیت کوین یا اتریوم محسوب میشود. این ادعا کمی نقص دارد. تعریف صحیح و متناسب برای زنجیره فعلی بدین صورت است که:
زنجیرهای که بیشترین میزان سختی کلی را داشته باشد به عنوان زنجیره معتبر محسوب میشود.
با توجه داشتن به این موضوع، دو ویژگی وجود دارند که یک کلاینت باید آنها را پیش از پذیرش استفاده از یک زنجیره برای نشان دادن تاریخچه فعلی مورد تایید قرار میدهد:
۱- لازم است تا زنجیره مورد نظر معتبر باشد. این به معنای معتبر بودن تمامی انتقالات حالت در این زنجیره است. به عنوان مثال، در بستر بیت کوین این امر بدان معناست که تمامی تراکنشها تنها خروجیهای خرج نشده تراکنشهای قبلی را مورد استفاده قرار میدهند. از طرف دیگر، پاداش ماینینگ (Coinbase) نیز تنها فی تراکنشها و پاداش بلاکها محسوب میشود.
۲- لازم است تا زنجیره مورد نظر بیشترین میزان سختی را داشته باشد. در محاوره گفته میشود که زنجیره معتبر طولانیترین زنجیره است، اما این طول بر حسب تعداد بلاکها محاسبه نمیشود بلکه کل قدرت استخراج صرف شده در آن زنجیره مد نظر خواهد بود.
ممکن است تمامی این موضوعات در مورد حملات مختلف از جمله حمله ۵۱ درصدی تا حد زیادی یک فرضیه به نظر برسند. شاید در این نقطه برای شما نیز این سوال مطرح شود که چه کسی مورد اول در رابطه با لزوم معتبر بودن تمامی بلاکها را تایید میکند؟ اگر پاسخ این سوال خود ماینری باشد که در نهایت معتبر بودن زنجیره را تایید میکند، کل صورت مسئله زیر سوال میرود و به هیچ دستاوردی نرسیدهایم.
این در حالی است که بلاکچینها با یکدیگر تفاوت دارند. در ادامه به بررسی تفاوت آنها میپردازیم و با ساختار معماری عادی پایگاه داده کلاینت/سرور کار خود را آغاز میکنیم.
به خاطر داشته باشید که در بستر یک پایگاه داده رایج، کاربر به سرور پایگاه داده اعتماد میکند. در طول این فرایند، کاربران صحیح بودن پاسخ دریافت شده از سرور را بررسی نمیکنند؛ کلاینت شبکه تنها از معتبر بودن فرمت این پاسخ به صورت مطابق با پروتکل اطمینان حاصل میکند. کلاینتی که در این شکل توسط یک مربع نشان داده شده کلاینت خاموش (Dumb Client) بوده و قادر به تایید هیچ چیزی نیست.
با وجود تمام این تفاسیر، معماری یک بلاک چین بدین صورت است:
به صورت خلاصه، ماینرها (یا استیککنندگانی) در این بستر حضور دارند که زنجیره اصلی را تولید میکنند. در کنار آنها، یک شبکه همتابههمتا وجود دارد و نقش آن حصول اطمینان از این است که یک زنجیره معتبر همواره در دسترس همه قرار داشته باشد، این امر حتی در صورتی که برخی از نودهای آن زنجیره عملکرد صادقانهای نداشته باشند نیز صورت میگیرد (لازم است تا حداقل به یک نود متصل به شبکه همتابههمتا یا P2P با عملکرد صادقانه متصل باشید تا همواره به صورت به روزرسانی شده با زنجیره اصلی در تعامل باشید). از طرف دیگر، کلاینتی در حال فعالیت کردن در بستر بلاک چین حضور دارد که تراکنشها را به شبکه P2P ارسال میکند و آخرین به روزرسانیهای شبکه (یا زنجیره کامل را در صورت همگامسازی) را از سایر نودهای شبکه دریافت میکند. این کلاینتها در واقع بخشی از شبکه بوده و با ارسال بلاکها و تراکنشها به شبکه کمک میکنند، اما اهمیت زیادی در این حیطه ندارند.
بخش مهم در این قسمت این است که کاربر نود کامل را اجرا میکند (در شکل بالا توسط یک استوانه در مربع کلاینت نمایش داده شده است.) و هرگاه کلاینت مورد نظر شبیه به هر نود دیگری، فارغ از اینکه آن کلاینت یک ماینر است یا یک نود در شبکه همتابههمتا، یک بلاک جدید را دریافت کند، معتبر بودن انتقال حالت آن بلاک را اعتبارسنجی خواهد کرد.
اگر در طول این اعتبارسنجی با یک انتقال حالت غیرمعتبر مواجه شویم، آن بلاک در نظر گرفته نشده و به سادگی کنار گذاشته میشود. این روند دلیل اصلی عدم تلاش ماینرهای یک شبکه در راستای استخراج کردن انتقال حالت نامعتبر است، زیرا تمامی نودها آن را کنار گذاشته و در نظر نمیگیرند.
بسیاری از کاربران برای تعامل داشتن با بلاک چینهایی مانند اتریوم و بیت کوین نود خود را راهاندازی و اجرا میکنند. بسیاری از جوامع موجود در این بستر نیز این امر را به بخشی از فرهنگ رایج خود تبدیل کرده و بر روی اجرای نود شخصی برای همگان تاکید دارند تا اشخاص مختلف حاضر در آن جامعه بتوانند در فرایند تایید نقش داشته باشند. بدون شک میتوان گفت که لازم است تا اکثریت کاربران، به ویژه افرادی که سهم زیادی از استیک را به خود اختصاص دادهاند، نود کامل خود را اجرا کنند. اگر اکثریت کاربران در این زمینه کوتاهی کنند، این امکان وجود دارد تا ماینرها وسوسه شوند تا بلاکهای نامعتبر تولید کنند و این مدل از کار خواهد افتاد.
قیاسی در زمینه تفکیک قوا
میتوانیم این موضوع را با دیدگاه مشابهی نسبت به تفکیک قوا در دموکراسیهای لیبرال در نظر بگیریم. شاخههای مختلفی در دولت وجود دارند، برخوردار بودن از اکثریت قدرت در یکی از این شاخهها (به عنوان مثال در بخش مقننه) به معنای توانایی شما در انجام هر کاری و زیر پا گذاشتن قانون نیست. ماینرها و استیککنندگان این قدرت را دارند تا تراکنشهای درون بلاک چین را ترتیببندی کنند؛ این در حالی است که آنها این قدرت را ندارند تا در طول حمله ۵۱ درصدی به سادگی بتوانند قوانین جدیدی را برای جامعه فعال در این بستر وضع کنند.
آیا شیوه عملکرد تمامی بلاکچینها به این صورت است؟
این سوال خوبی است و موضوع حائز اهمیت این است که چنین رویکردی تنها در صورتی قابل انجام خواهد بود که روند اجرای یک نود کامل آسان باشد. یک کاربر عادی به هیچ عنوان چنین کاری را انجام نخواهد داد، زیرا راهاندازی یک نود کامل به معنای خریداری کردن یک کامپیوتر ۵۰۰۰ دلاری و در اختیار داشتن یک اینترنت با سرعت ۱ گیگابایت در ثانیه دائم است. حتی اگر بتوانید چنین اتصال اینترنتی را در برخی از مکانهای کره زمین در اختیار داشته باشید، اتصال دائم به نود بلاک چین کار راحتی نخواهد بود. در این حالت، شما با احتمال زیادی به سراغ اجرای نود خود نخواهید رفت (مگر اینکه تراکنشهای شما بسیار ارزشمند باشند)، و این یعنی برای انجام چنین کاری به فرد یا نود دیگری برای انجام این کار اعتماد خواهید کرد.
زنجیرهای را تصور کنید که هزینه اجرای آن بسیار گران بوده و تنها استیککنندگان و صرافیها قادر به راهاندازی یک نود کامل در آن هستند. فرض کنید که به تازگی مدل اعتماد را تغییر دادهاید و اکثر استیککنندگان و صرافیها میتوانند در قالب نود گرد هم بیایند و قوانین موجود در این بستر را تغییر دهند. در چنین حالتی هیچ بحثی در میان کاربران در این مورد وجود نخواهد داشت، و اگر کاربران هیچ کنترلی بر روی زنجیره نداشته باشند قادر نخواهند بود تا فورکی از شبکه را در اختیار داشته باشند. این کاربران میتوانند بر روی قوانین قدیمی پافشاری داشته و به آنها متعهد باشند، اما در شرایطی که امکان راهاندازی و اجرای یک نود کامل را نداشته باشند، نمیدانند که در هنگام استفاده از این زنجیره چه زمانی به درخواستهایشان پاسخ داده خواهد شد.
این امر دلیل اصلی وجود بحثهایی حول محور افزایش اندازه بلاک در هنگام استفاده از چنین رویکردی در بستر مثالی بیت کوین و اتریوم است. در طول انجام چنین فرایندی، همواره باری که اجراکنندگان نود به دوش میکشند افزایش پیدا میکند. این مشکل بزرگی برای ماینرها محسوب نمیشود و هزینه اجرای یک نود در مقایسه با فرایند ماینینگ بسیار کم محسوب میشود. بنابراین، توازن قدرت در این عرصه از جانب کاربران به سمت ماینرها (یا استیککنندگان) انتقال پیدا میکند.
این موضوع در رابطه با لایت کلاینتها به چه صورت است؟
با در نظر گرفتن تمام این مطالب، اگر تنها قصد داشته باشیم تا با استفاده از رمزارزها هزینه قهوه خود را پرداخت کنیم چطور؟ آیا لازم است تا یک نود کامل را بر روی گوشی موبایل خود راهاندازی کنیم؟
بله، اما بدون شک هیچ کس چنین انتظاری نداشته و کاربران نیز این را این انتظار را ندارند. در این بخش، کاربران یا بهتر است بگوییم نرم افزارهای نود عادیتر که تحت عنوان لایت کلاینت شناخته میشوند وارد عرصه خواهند شد. لایت کلاینتها در واقع کلاینتهای سادهتری هستند که یک زنجیره کامل را اعتبارسنجی نمیکنند و تنها نتیجه اجماع در شبکه را مورد تایید قرار میدهند. به عنوان مثال در این راستا به تایید اعتبار اجماع در مورد میزان حجم استیک یا سپردهای که به شور و رایگیری گذاشته شده است میتوان اشاره کرد.
به عبارت دیگر، میتوان لایت کلاینتها را گمراه کرد و آنها را به سمت پیروی کردن از زنجیرهای که بلاکهای نامعتبر دارد سوق داد. لازم به ذکر است که راهکارهایی نیز برای این مشکل وجود دارد. از جمله این راهکارها به بررسی در دسترس بودن دادهها و اثبات فرایند کلاهبرداری میتوان اشاره کرد. تا به امروزِ، هیچ زنجیرهای این راهکارها را پیادهسازی نکرده است، اما حداقل میدانیم که اتریوم در آینده این کار را انجام میدهد.
در صورت استفاده از رویکرد بررسی در دسترس بودن داده و اثبات کلاهبرداری میتوانیم مدل امنیت بلاکچین را بدون نیاز به اجرای یک نود کامل توسط کاربران فراهم کنیم. این در واقع هدف نهایی ماست تا هر یک از گوشیهای همراه نیز بتوانند به راحتی یک لایت کلاینت اتریوم را اجرا کنند.
در رابطه با زنجیرههای جانبی چطور؟
زنجیرههای جانبی در حال حاضر به موضوع مورد بحث داغی در فضای رمزارز تبدیل شدهاند. به نظر میرسد که این زنجیرهها به راهکار سادهای برای ارائه امکانات مقیاسپذیری بدون نیاز به استفاده از رول آپهای پیچیده تبدیل شدهاند. به بیان ساده:
ساخت یک زنجیره گواه اثبات سهام جدید
ساخت یک پل یا بریج دو طرفه با استفاده از اتریوم
و البته سود بیشتر! به یاد داشته باشید که امنیت زنجیره جانبی به صورت تقریبی به میزان زیادی به بریج متکی است. این ساختاری است که امکان درک حالت یک زنجیره توسط زنجیره دیگر را مهیا میکند. با این حال، اگر بتوانید بریج روی زنجیره اصلی را فریب داده و به این زنجیره بفهمانید که تمامی داراییهای موجود بر روی زنجیره بریج شده، مثلا به آقای Evil تعلق دارد، دیگر هیچ اهمیتی نخواهد داشت که نودهای کامل زنجیره گواه اثبات سهام چه نظری دارند. بنابراین، کل این ماجرا به بریج متکی است.
متاسفانه، شرایط بریجها مشابه لایت کلاینتها است. این بریجها صحت پاسخ دریافت شده را تایید نمیکنند و تنها در اکثریت اجماع نقش دارند. با این حال، دو چیز در رابطه با آنها وجود دارد که از لایت کلاینتها نیز بدتر است:
۱- بریجها برای تراکنشهایی با ارزش بالا مورد استفاده قرار میگیرند و این درست همان جایی است که کاربران در صورت امکان یک نود کامل را برای انجام تراکنش خود انتخاب میکنند.
۲- متاسفانه همانند لایت کلاینتها، هیچ راهی برای تقویت امنیت این بریجها وجود ندارد و دلیل آن نیز بدین صورت است که قادر به تایید بررسی در دسترس بودن داده نیستند.
نکته دوم از اهمیت بالایی برخوردار بوده و نیازمند مقالات اختصاصی دیگری است. به صورت خلاصه، بریجها نمیتوانند فرایندهای بررسی در دسترس بودن داده را انجام دهند و بدون چنین قابلیتی، اثبات کلاهبرداری نیز تا حد زیادی غیرکاربردی خواهد بود. این در حالی است که در صورت استفاده از روشهای اثبات دانش صفر میتوانیم بریجها را ملزم کنیم تا گواه اثبات صحت تمامی بلاکها را به همراه داشته باشند. متاسفانه این رویکرد نیز در معرض حملات مربوط به دسترسی داده قرار دارد اما به نوبه خود یک پیشرفت محسوب میشود.
به صورت خلاصه میتوان گفت که زنجیرههای جانبی مدل امنیتی متفاوت و بسیار ضعیفتری نسبت به بلاکچینهایی مانند Ethereum و Bitcoin دارند. این زنجیرهها قادر به حفاظت کاربران و شبکه در برابر انتقال حالت غیرمعتبر نیستند.
آیا این موضوعها به شاردینگ ربط دارند؟
در حقیقت باید بگوییم که تمامی این اتفاقات ارتباط زیادی با مفهوم شاردینگ دارند. دلیل نیاز ما به شاردینگ برای مقیاسپذیری این است که این رویکرد تنها راه مقیاسپذیری بدون نیاز به اجرای نود کامل است. این در حالی است که امنیت کامل و تضمینهایی که بلاکچینها برای ما به ارمغان میآورند تا حد امکان حفظ میشود.
اگر کل سوابق موجود در بلاکچین را پاک کنیم چطور؟ در چنین حالتی می توانیم تمامی ذخایر بیت کوین، اتریوم و غیره را به سرقت ببریم. از نقطه نظر تئوری، در زنجیره مبتنی بر گواه اثبات کار که یک چک پوینت یا نقطه ذخیره حالت زنجیره ندارد، این امکان وجود دارد تا با بازگردانی تمامی و نه تنها برخی از تراکنشها، کل بیت کوینهای موجود را به دست بیاوریم. بنابراین شاید نتوانیم یک تریلیون بیت کوین تولید کنیم اما میتوانیم تمامی ذخایر موجود BTC را به دست بیاوریم درست است؟
این موضوع تا حد زیادی یک تئوری است. احتمال اینکه جوامع فعال در این عرصه فورکی را بپذیرند که سالها (یا حتی فقط چند ساعت) از تاریخچه جامعه را بازبینی و بازگردانی کند صفر مطلق است. در چنین شرایطی جنبش گستردهای به وجود میآید و نتیجه حاصل نیز لزوم رد کردن این درخواست خواهد بود. زنجیره معتبر نیز همان زنجیره سابق خواهد بود و به کار خود ادامه میدهد.
با استفاده از مکانیزم اجماع گواه اثبات سهام و نهاییسازی، این رویکرد به رسمیت شناخته میشود و کاربران هرگز با بلاکهای نهایی شده سر و کار نخواهند داشت.
دیدگاهتان را بنویسید