بررسی حملات دور بُرد در بلاک چین

یکی از بزرگ‌‌ترین تهدیدها علیه پروتکل‌‌های اثبات سهام (PoS)، حملات دور برد (Long Range attacks) هستند. این حملات به دلیل وجود مفاهیمی چون فعالیت ضعیف (Weak Subjectivity) و شبیه‌‌سازی بی‌‌هزینه (Costless Simulation)، خطرناک‌‌تر از حملات موجود در پروتکل‌‌های اثبات کار (PoW) هستند. در ادامه به بررسی این مفاهیم، تعریف حملات دور برد و زیرمجموعه‌‌های آن می‌پردازیم.

0 100

یک حملات دور بُرد سناریویی است که در آن فرد مهاجم در بلاک چین شعبه‌‌ای ایجاد می‌‌کند که از اولین بلوک شروع شده و بر تمام زنجیره چیره می‌‌شود. این شعبه می‌‌تواند شامل تراکنش‌‌ها و بلوک‌‌های مختلفی باشد و اغلب حمله تاریخچه جایگزین (Alternative History ) یا بازبینی تاریخچه (History Revision) نامیده می‌‌شود. دلیل اصلی وجود حملات دور برد مفهومی به نام فعالیت ضعیف (Weak Subjectivity) است.

فعالیت ضعیف

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

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

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

گره‌‌های آنلاین به صورت واقعی بلاک چین را پیگیری و نظارت می‌‌کنند. آن‌‌ها نمی‌‌توانند وادار به پذیرفتن شاخه‌‌ی دیگری به‌‌عنوان زنجیره اصلی بشوند، مگر اینکه یک شاخه در نهایت به زنجیره اصلی تبدیل شود.

بررسی حملات دور بُرد در بلاک چین

بلاک چین نمونه، بلوک سبز همان بلوک آغازین است، رنگ بنفش نشان‌‌دهنده بلوک‌‌های اورفن/شاخه‌‌ها و بلوک‌‌های سیاه زنجیره اصلی هستند

همانطور که می‌‌توان دید، بلاک چین بالا شاخه‌‌های زیادی دارد. برخی از آنان طولانی‌‌تر از بفیه هستند. زنجیره اصلی می‌‌تواند هر کدام از این شاخه‌‌هایی باشد که نشان داده شده‌‌اند.

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

فعالیت ضعیف در اثبات کار

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

شبیه‌‌سازی بدون هزینه (Costless Simulation)

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

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

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

بررسی حملات دور بُرد در بلاک چین

نمونه بلاک چین اثبات سهام که در آن چندین شاخه طول یکسانی دارند

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

حملات دور برد

تا به امروز سه نوع حمله دور برد وجود دارند. بیشتر مقالات دو مورد اول که حملات ساده و کوراپشن‌‌ پیشین را با هم قاطی می‌‌کنند یا مورد دوم را به‌‌عنوان تنها مورد از این حملات می‌‌پذیرند. استیک بلیدینگ هم نوع دیگری است که طی پژوهش جدیدی در سال 2018 معرفی شد.

متاسفانه نتوانستم نام گویاتری برای مورد اول پیدا کنم. می‌‌توانیم مورد اول را ساده بنامیم، همانطور که در مقاله پژوهشی استیک بلیدینگ به همین نام معرفی شده است.

پس ما سه مورد زیر را داریم:

1. ساده (Simple)

2. کوراپشن‌‌ پیشین (Posterior Corruption)

3. استیک بلیدینگ (Stake Bleeding)

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

ما از ساده‌‌ترین مورد حمله دور برد شروع کرده و سناریوهای پیچیده‌‌تری خواهیم ساخت. در مثال‌‌هایمان یک استخر تاییدکننده با سه‌‌ تاییدکننده (باب، آلیس و مالری) داریم. برای حفظ سادگی کار همه‌‌شان سهم 33.3 درصدی از سیستم دارند.

نکته کلیدی: اطلاعات مربوط به تایید‌‌کنندگان و سهام آنان در بلوک آغازین قرار دارد.

ساده

اولین مورد به پیاده‌‌سازی ساده پروتکل اثبات سهام برمی‌‌گردد. در این سناریو گره، برچسب زمانی بلوک را چک نمی‌‌کند.

در یک چرخه معمولی پروتکل اثبات سهام، همه تاییدکنندگان شانس تایید بلوک‌‌ها را دارند.

بررسی حملات دور بُرد در بلاک چین

تصویری از بلاک چین نمونه که در آن هر تاییدکننده شانس برابری برای انتخاب شدن دارد

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

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

بررسی حملات دور بُرد در بلاک چین

در شاخه مالری، شانس انتخاب شدن مانند شاخه اصلی برابر است. بلوک‌‌های پرانتزی بلوک‌‌های توقیف شده هستند. طول کنونی شاخه مالری 2 بلوک است.

بررسی حملات دور بُرد در بلاک چین

سه نقطه‌‌ها نشان‌‌دهنده بلوک‌‌های توقیف‌‌شده هستند. برای اینکه مالری با زنجیره اصلی رقابت کند باید بلوک‌‌ها را سریع‌‌تر تولید کند. در بلاک چین بالا هر دو شاخه 5 بلوک دارند.

مالری مجبور به جعل برچسب‌‌های زمانی است و چون او تنها سهام‌‌دارِ فعال آن شاخه است، این امکان برایش وجود دارد. در نسخه‌‌هایی که در آن گره‌‌ها برچسب‌‌های زمانی را در نظر نمی‌‌گیرند، هر دو شاخه معتبر بوده و گره‌‌ها نخواهند توانست حُقه مالری را شناسایی کنند.

کوراپشن‌‌ پیشین

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

اگر او از بلوک‌‌های باب نیز استفاده کند چه؟ این شانس او برای رقابت با زنجیره اصلی را بالا می‌‌برد اما چرا باید باب با این کار موافقت کند؟ این زمان خوبی برای معرفی مفهوم چرخش تاییدکننده (Validator Rotation) است.

ثابت بودن تاییدکنندگان منصفانه نخواهد بود. یک سیستم اثبات کار باید با چیزی شروع شود، باید مجموعه ثابتی برای شروع داشته باشد اما نهایتا برای منصفانه بودن سیستم باید تاییدکنندگان چرخش داشته باشند.

تاییدکنندگان گزینه‌‌ی بازنشستگی را دارند و سیستم باید آنان را تحت شرایط مشخص چرخش داده یا حذف کند.

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

نکته کلیدی: اگرچه باب دیگر نمی‌‌تواند بلوک‌‌های جدید امضا کند (دیگر یک تاییدکننده نیست)، اما می‌‌تواند 10 هزار بلوک اول را دوباره امضا کند. این درصورتی که در شاخه دیگری به این 10 هزار بلوک اول نیاز داشته باشد برایش سودمند است.

از آنجایی که هیچ خطری باب را تهدید نمی‌‌کند، برای حمله علیه سیستم خالی از انگیزه نخواهد بود.

دو سناریوی احتمالی برای این حمله وجود خواهد داشت:

1. مالری باب را هک کند و کلید خصوصی‌‌اش را به سرقت ببرد.

2. مالری به باب رشوه دهد و باب نیز به حمله بپیوندد.

حالا که کلید خصوصی باب در اختیار مالری است، می‌‌تواند بلوک‌‌ها را به جای باب امضا کرده و شانس خود را برای پیشی از زنجیره اصلی بالا ببرد. این حمله کوراپشن‌‌ پیشین نام دارد.

بررسی حملات دور بُرد در بلاک چین

باب به حمله دور برد مالری می‌‌پیوندد. حالا شاخه جایگزین بسیار رقابتی‌‌تر بوده و شانس غلبه بر زنجیره اصلی بالاتر است.

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

می‌‌توان با استفاده از رمزنگاری تکامل کلید (Key-Evolving) و چک‌‌پوینت‌‌های متحرک با این نوع حمله دور برد مقابله کرد. جزییات بیشتر درباره فنون کاهش خطر بعدا در همین مقاله ارائه خواهند شد.

استیک بلیدینگ

سومین نوع از حملات دور برد استیک بلیدینگ است.

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

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

بررسی حملات دور بُرد در بلاک چین

مالری شاخه خود را به صورت محلی استخراج کرده و آن را منتشر نمی‌‌کند.

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

بررسی حملات دور بُرد در بلاک چین

مالری بلوک‌‌های خود در زنجیره اصلی را توقیف می‌‌کند تا مزیت رقابتی در زنجیره جایگزین به دست بیاورد

در نتیجه مالری هیچ پاداشی از سیستم نمی‌‌گیرد و سهم او به‌‌تدریج کاهش پیدا می‌‌کند. همه تایید‌‌کنندگان دیگر بلوک‌‌ها را منتشر کرده و کارمزد تراکنش یا پاداش‌‌های بلوک‌‌ها را دریافت می‌‌کنند. برای این سناریو فرض ما بر این است که پاداش‌‌های تاییدکنندگان بر سهامشان ترکیب شده است.

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

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

بررسی حملات دور بُرد در بلاک چین

مالری به تدریج سهم خود در شاخه خود را افزایش داده و در عین حال به از دست دادن سهام در زنجیره اصلی به دلیل توقیف بلوک‌‌ها ادامه می‌‌دهد. لازم به ذکر است که این نوع حملات به زمان بلاک چین بسیار زیادی نیاز دارند. طبق مقالات، برای موفقیت یک مهاجم با 30 درصد سهام حدود 6 سال زمان بلاک چین مورد نیاز است (با شبیه‌‌سازی بی‌‌هزینه، ساختن یک شاخه با آن مقدار تاریخچه بلاک چین کاملا ساده و سریع خواهد بود).

استیک بلیدینگ را می‌‌توان با استفاده از چک‌‌پوینت‌‌های متحرک مهار کرد. قانون فراوانی نیز می‌‌تواند برای شناسایی شاخه‌‌های خراب‌‌کار به کار گرفته شود.

کاهش خطر

در سال گذشته فنون کاهش خطر زیادی مورد پژوهش قرار گرفته‌‌اند. اگرچه همه آنان نوعی محافظت علیه حملات دور برد را ارائه می‌‌کنند اما هیچکدام تکنیک کاملی برای کاهش خطر نیستند. پس ترکیبی از این‌‌ها برای مقابله با این نوع حملات نیاز است.

قانون طولانی‌‌ترین زنجیره

این ساده‌‌ترین تکنیک برای شکست فعالیت ضعیف است. این تکنیک برای پروتکل‌‌های اثبات سهام همیشه در کنار فنون دیگر به کار گرفته می‌‌شود. پروتکل‌‌های اثبات کار می‌‌توانند با استفاده از تنها این تکنیک، با فعالیت ضعیف مقابله کنند.

بررسی حملات دور بُرد در بلاک چین

زنجیره اصلی شاخه‌‌ای با تعداد بلوک بیشتر بوده که در این تصویر زنجیره‌‌ای با بلوک‌‌های سیاه است.

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

چک‌‌پوینت‌‌های متحرک

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

ایده‌‌ی چک‌‌پوینت‌‌های متحرک این است که تنها آخرین x تعداد از بلوک‌‌های زنجیره می‌‌توانند دوباره سازمان‌‌دهی شوند. تعداد بلوک‌‌های قابل سازمان‌‌دهی مجدد به پیاده‌‌سازی پروتکل بستگی داشته و می‌‌تواند از یک ماه ارزش بلوک (مثلا پی‌‌یر کوین) تا چند روز یا چند ساعت (مثلا NXT) فرق کند.

بررسی حملات دور بُرد در بلاک چین

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

صبر کنید! اگر بتوانید آخرین x تعداد از بلوک‌‌ها را سازمان‌‌دهی مجدد کنید، یک حمله دور برد نیست؟

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

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

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

شاید نتوانید یک تراکنش را از داخل یک بلوک تغییر دهید اما می‌‌توانید از زنجیره انشعاب بگیرید، بلوک‌‌‌‌های خودتان را بسازید، از زنجیره اصلی سبقت بگیرید، بلوک‌‌ها را دوباره سازمان‌‌دهی کنید و بوم! شما زنجیره تغییرناپذیر را دستکاری کردید. ما هیچ بلوکی را تعدیل و دستکاری نمی‌‌کنیم، ما تنها تاریخچه دیگری می‌‌سازیم. زنجیره اصلی پیشین نیز اگرچه هنوز تغییرناپذیر باقی می‌‌ماند اما دیگر معتبر نیست. دیگر هیچ اعتماد از سوی سیستم ندارد.

رمزنگاری تکامل کلید

با حرکت به سوی راهکارهای پیچیده‌‌تر به این روش می‌‌رسیم که برای مقابله با حملات کوراپشن‌‌ پیشین به کار گرفته می‌‌شود. در این نوع حملات، تاییدکنندگان بازنشسته که اگرچه کلیدهایشان دیگر معتبر نیست، می‌‌توانند از کلیدهایشان برای امضای بلوک‌‌های قدیمی‌‌تر در بلاک چین استفاده کنند.

یک رهبر با استفاده از رمزنگاری تکامل کلید و امضاهای دیگر می‌‌تواند یک بلوک را امضا کرده و به سرعت کلید مورد استفاده را نابود کند.

با کلیدهای تکاملی و بدون توانایی برگشتن یک نسخه قدیمی از کلید، اگر باب تصمیم بگیرد بلوکی از شاخه متفاوتی را امضا کند نخواهد توانست این کلید را به کلید بلوک آغازین متصل کند (چون پیشتر با امضای شاخه دیگری تکامل پیدا کرده است).

این یک ایده تجربی است و برای حصول اطمینان از اینکه همه این فرضیات درباره رمزنگاری تکامل کلید صحیح هستند به پژوهش بیشتری نیاز است.

تراکنش‌‌های آگاه از زمینه

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

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

یک منبع خوب درباره نحوه کار تراکنش‌‌های آگاه از زمینه توسط جف کولمن (Jeff Coleman) در مقاله زمان هش جهانی ارائه شده است که نوعی تراکنش آگاه از زمینه است.

بررسی حملات دور بُرد در بلاک چین

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

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

مهاجم وادار به ساخت یک تاریخچه کاملا متفاوت می‌‌شد. حتی اگر در این حمله موفق شوند، نامحسوس نخواهد بود.

قانون فراوانی

یک اقدام مقابله‌‌ای پیچیده‌‌تر در مقابل حملات دور برد قانون فراوانی است. این تکنیک کاهش خطر بر تشخیص کمیت و تراکم بلوک‌‌ها در شاخه‌‌های معارض مبتنی است.

بررسی حملات دور بُرد در بلاک چین

سهم تاییدکننده در بلوک آغازین

خراب‌‌‌‌کاران نمی‌‌توانند سهم خود را دستاری کنند. یک خرابکار با سهم آغازین 20 درصد، در همه شاخه‌‌های آن بلاک چین، با فرض اینکه همه شاخه‌‌ها از یک بلوک شروع شده باشند، همین مقدار سهم را خواهد داشت.

در حملات دور برد، خراب‌‌کار با شانس کمی برای تولید بلوک شروع می‌‌کند و با به دست آوردن پاداش بلوک‌‌ها و انباشت سهام، سهام‌‌ هرچه بیشتری به خراب‌‌کار اضافه خواهد شد. هرچه یک تاییدکننده سهام بیشتری داشته باشد، شانس بیشتری برای تولید بلوک خواهد داشت. آنچه در این مرحله به دنبالش هستیم شناسایی مرحله تسریع کار است.

بررسی حملات دور بُرد در بلاک چین

تصاویر بلاک چین تا نقطه X. تاییدکنندگان شانس یکسانی برای تولید بلوک در یک شاخه خاص دارند.

پیش از اینکه تاییدکنندگان خراب‌‌کار سهم کافی برای تسریع تولید بلوک خود به دست بیاورند، مابقی تاییدکنندگان، تاییدکنندگان صادق، برای تولید 80 درصد بلوک‌‌ها انتخاب می‌‌شوند. با این اطلاعات تنها می‌‌تواند شناسایی کرد که یک شاخه تنها بخشی از بلوک‌‌ها را تولید می‌‌کند (یک شاخه 80 تا 100 درصد تولید بلوک را در یک بخش مشخص دارد و دیگر حداکثر 20 درصد در اختیار دارد).

بررسی حملات دور بُرد در بلاک چین

تصاویر بلاک چینی که در آن تراکم شاخه خراب‌‌کار برای اولین بخش کم است.

در بلاک چین بالا، می‌‌توان دید که انباشت سهام چطور کار می‌‌کند. شاخه بالایی خراب‌‌کار است و در دو بخش اول، تولید بلوک کمتر از بخش سوم است. در شاخه دیگر می‌‌توان توزیع آرام تولید بلوک در همه بخش‌‌ها را مشاهده کرد.

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

در بخش سوم، زنجیره بالایی سهم کافی انباشت کرده است و تولید بلوک متراکم‌‌تر می‌‌شود.

بررسی حملات دور بُرد در بلاک چین

توزیع مجدد سم در شاخه مالری پس از زمان X.

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

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

با دنبال کردن این قانون، شناسایی زنجیره اصلی و شکست فعالیت ضعیف آسان خواهد شد.

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

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

منبع

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

ارسال پاسخ

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