پیشرفته کریپتو پدیا

حملات دوربرد در گواه اثبات سهام چیست؟ آشنایی با Long Range Attacks

پروتکل‌های گواه اثبات سهام (PoS) در صدر توجه قرار گرفته‌اند؛ زیرا بلاک چین‌های معروف و شناخته‌شده بیشتری در صدد انتقال از پروتکل گواه اثبات کار (PoW) به این مکانیزم اجماع هستند. بسیاری از این بلاکچین‌ها به بررسی سیستم‌های دوگانه یا هیبریدی (PoW/PoS) می‌پردازند؛ در حالی که بعضی از آنها نیز در صدد اجرای نسخه‌های اصلی PoS هستند. یکی از مهم‌ترین تهدیدها علیه پروتکل‌های گواه اثبات سهام، حملات دوربرُد (Long Range Attacks) است. دلیل اصلی وجود این نوع حملات، مفهومی به نام “تشخیص ضعیف” است. در این مقاله، به معرفی اصطلاح حملات دوربُرد، مفهوم تشخیص ضعیف و انواع حمله‌های دوربرد می‌پردازیم. در ابتدای مقاله مفهوم تشخیص ضعیف را تشریح می‌کنیم و بعد، به حملات Long Range می‌پردازیم. با ما همراه باشید.

مفهوم تشخیص ضعیف در حملات دوربرد

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

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

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

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

الگوی بلاک چین، بلاک جنسیس(سبز)، شاخه رها شده (بنفش ، زنجیره اصلی (سیاه)
الگوی بلاک چین، بلاک جنسیس(سبز)، شاخه رها شده (بنفش) ، زنجیره اصلی (سیاه)

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

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

به دلیل تشخیص ضعیف (Weak Subjectivity) و شبیه‌سازی بدون هزینه (Costless Simulation)، این نوع حملات در پروتکل‌های گواه اثبات سهام نسبت به گواه اثبات کار خطرناک‌تر هستند.

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

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

تشخیص ضعیف در گواه اثبات کار

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

شبیه‌سازی بدون هزینه

در پروتکل‌های گواه اثبات سهام، قانون طولانی‌ترین زنجیره برای تعیین زنجیره اصلی کافی نیست؛ این موضوع به دلیل مفهومی به اسم شبیه‌سازی بدون هزینه (Costless Simulation) است.

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

الگوی بلاک چین گواه اثبات سهام با چند شاخه هم اندازه
الگوی بلاک چین گواه اثبات سهام با چندشاخه هم‌اندازه

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

حملات دوربُرد در گواه اثبات سهام و انواع آنها

تاکنون سه نوع حملات دوربُرد مختلف وجود داشته است. اکثر مقاله‌ها، دو نوع حمله اول که حملات ساده و Posterior Corruption (با معنی لغوی فساد پسین که مقداری نامفهوم است؛ پس در این مقاله از لغت انگلیسی استفاده خواهیم کرد) نام دارند را ترکیب می‌کنند. بعضی از مقاله‌ها نیز صرفا حملات فساد پسین را به عنوان تنها نمونه این حملات پذیرفته‌اند. حملات نشت سهام (Stake Bleeding) نیز تحقیق نسبتا جدیدی است که در سال ۲۰۱۸ منتشر شده است.

به طور خلاصه، این سه نوع حمله عبارتند از:

۱- حملات ساده

۲- حملات Posterior Corruption

۳- حملات نشت سهام

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

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

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

حملات ساده

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

در یک چرخه ساده پروتکل PoS، هر تاییدکننده فرصت تایید بلاک‌ها را به دست خواهد آورد.

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

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

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

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

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

حملات Posterior Corruption

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

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

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

در خصوص مثال ما، باب تصمیم می‌گیرد پس از ۱۰,۰۰۰ بلاک از کار خود کناره‌گیری کنند. باب سهام خود را برمی‌دارد، آن را نقد می‌کند و به تعطیلات می‌رود. اگرچه باب یک تاییدکننده بود، اما از بهترین اقدامات امنیتی برای کلیدهای خصوصی خود استفاده کرده بود. اکنون که باب دیگر سهامی در این پلتفرم در اختیار ندارد، امنیت کلیدهای خصوصی او در اولویت قرار ندارد.

نکته کلیدی: اگرچه باب دیگر نمی‌تواند بلاک‌های جدید را امضا و تایید کند (زیرا دیگر تاییدکننده نیست)، اما می‌تواند مجددا ۱۰,۰۰۰ بلاک اول را امضا کند. اگر او به امضای ۱۰,۰۰۰ بلاک اول در زنجیره متفاوت نیاز پیدا کند، این موضوع سودمند خواهد بود.

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

دو سناریو محتمل برای این حمله وجود دارد.

۱- مالوری باب را هک کند و کلید خصوصی او را بدزدد.

۲- مالوری به باب رشوه دهد و باب به حمله بپیوندد.

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

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

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

این نوع حمله دوربُرد را می‌توان با رمزنگاری تکامل کلید (Key-Evolving Cryptography) و چک‌پوینت‌های متحرک (Moving Checkpoints) دفع کرد. در ادامه مقاله به روش‌های کاهش و دفع حمله‌ها می‌پردازیم.

حمله نشت سهام

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

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

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

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

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

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

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

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

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

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

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

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

نشت سهام را می‌توان با استفاده از چک‌پوینت‌های متحرک خنثی کرد. هم‌چنین می‌توان از قانون فراوانی (Plenitude Rule) برای شناسایی شاخه‌های مخرب استفاده کرد.

کاهش احتمال حمله دوربرد

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

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

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

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

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

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

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

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

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

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

حمله بر روی تعداد محدودی از بلاک‌ها به عنوان حمله کوتاه‌بُرد یا حمله رشوه‌‌گیری انجام می‌شود. این نوع حمله‌ها، مشوق‌ها، روش‌ اجرا، تأثیرگذاری و روش‌های کاهش احتمال حمله متفاوتی دارد.

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

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

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

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

با استفاده از رمزنگاری تکامل کلید (Key-Evolving Cryptography) و به طور مشخص‌تر، امضاهای تکامل کلید (KES)، پیشگام جای خالی بلاک، بلاک را امضا می‌کند و سریعا کلید استفاده‌شده را از بین می‌برد.

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

این روش یک ایده آزمایشی و تجربی است و تحقیقات بیشتری برای اطمینان از این مورد لازم است که تمام فرضیات درست باشند.

تراکنش‌های محتوامحور

تمام بلاک‌ها در بلاک چین شامل هش بلاک قبلی در هدر خود هستند. این هش به منظور شناسایی شاخه‌ای استفاده می‌شود که بلاک در آن جای می‌گیرد. با وجود تراکنش‌های محتوامحور (Context-Aware Transaction)، گامی دیگر در جهت تحقق این مفهوم نزدیک‌تر می‌شویم و می‌توان هش بلاک قبلی را در تراکنش قرار داد.

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

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

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

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

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

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

اقدام متقابل پیچیده‌تر در مقابل حملات دوربُرد، قانون فراوانی (Plenitude Rule) است. این روش کاهش احتمال وقوع حمله بر اساس شناسایی پراکندگی و تراکم بلاک‌ها در شاخه‌های دیگر است.

سهام تایید کننده بلاک جنسیس - حملات دوربرد
سهام تاییدکننده بلاک جنسیس

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

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

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

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

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

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

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

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

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

توزیع مجدد سهام در شاخه مالوری بعد از زمان X - حملات دوربرد
توزیع مجدد سهام در شاخه مالوری بعد از زمان X

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

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

نتیجه‌گیری

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

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

منبع
blog.positive

نوشته های مشابه

1 دیدگاه
جدید ترین
قدیمی ترین محبوب ترین
Inline Feedbacks
View all comments
دکمه بازگشت به بالا