مروری بر حملات بازپخش و مقابله با آن ها
طی هفته های گذشته طرفداران بیت کوین بصورت آنلاین درباره عدم وجود حفاظت در مقابل خطرات مربوط به “حملات بازپخش” برای انشعاب (فورک) Segwit2x بحث کرده اند. با نزدیک شدن به زمان انشعاب (16نوامبر) بسیاری از افراد به دنبال صرافی ها و کیف پول های مقاوم در برابر “بازپخش” و روش های جایگزین دیگر جهت حفاظت از خود هستند.
همه در مورد “بازپخش” صحبت می کنند
ارز رمزنگاری شده ی غیرمتمرکز بیت کوین و بسیاری از آلتکوین ها از یک مفهوم ذخیره داده ها استفاده می کنند که به آن Unspent Transaction Outputs (خروجی های خرج نشده تراکنش) یا UTXO گفته می شود. هر فردی که در یک کیف پول بیت کوین داشته باشد، لیستی از ساتوشی های “خرج نشده” دارد که عمدتا حاوی اطلاعات حساب (موجودی) آن کاربر است. جمع تمام UTXOهای صاحب بیت کوین، معادل است با کل موجودی آن فرد یا آن سازمان.
با رخ دادن یک انشعاب (فورک)، زمانی که کاربران اقدام به ارسال تراکنش های بیت کوینی می کنند ممکن است “به هم ریختگی در شبکه” یا ” حملات بازپخش” اتفاق بیافتد و باعث از دست رفتن سرمایه شود.
از آنجایی که انشعاب در یک زنجیره مشخص صورت می گیرد، تمام تراکش ها، آدرس ها و موجودی ها،انعکاسی مستقیم از زنجیره ی پیش از انشعاب است. این بدان معناست که تایید شدن UTXOها می تواند از طرف استخراج کننده های هر دو زنجیره صورت بگیرد و می تواند -بصورت نظری- توسط افراد خرابکار دستکاری شود و یا مشکلات مختلفی حین ارسال تراکنش اتفاق بیافتد. برای مثال اگر بیت کوینی به یک آدرس در زنجیره Segwit2x فرستاده شود، این امکان وجود دارد که UTXO در هر دو زنجیره پخش (منتشر) شود.
اساسا این یعنی اینکه چون هر دو زنجیره دقیقا یک بازتاب هستند، هر دو توکن کلیدهای خصوصی یکسانی خواهند داشت. ممکن است کسی اشتباها تراکنشی ارسال کند و دارایی خود را تصادفا به شبکه دیگر بفرستد چرا که تراکنش در هر دو زنجیره معتبر است. یا حتی ممکن است مهاجمی بتواند پس از آنکه فردی تراکنشی ارسال کرد، اطلاعات آن تراکنش را دوباره استفاده کند و سعی کند که آن را در زنجیره دیگر نیز خرج کند. زمانی که مردم به بحث در مورد “حملات بازپخش” یا “replay attack” می پردازند، دو مساله یا نظریه رایج وجود دارد. حین هاردفورک (انشعاب سخت) اتریوم که باعث ایجاد توکن اتریوم کلاسیک شد مشکلاتی در رابطه با حمله بازپخش وجود داشت.
امکان فرستادن تراکنش های غیرقابل بازپخش وجود دارد
- تراکنش های coinbase
راه هایی وجود دارد که کاربران و استخراج کنندگان بتوانند تراکنشی را بفرستند و درجه ای از حفاظت در برابر حملات بازپخش را هم داشته باشند. این روش ها نیازمند نرم افزار تخصصی و درجه ای قابل قبول از دانش فنی است. برای مثال استخراج کنندگان یا افرادی که با یک استخر استخراج آشنایی دارند می توانند با استفاده از تراکنش Coinbase که نمی تواند بعد از فورک بازپخش شود، بیت کوین ارسال کنند. این کار مشکلاتی نیز دارد، مثلا تراکنش های Coinbase تا پیش از آنکه 100 تایید (confirm) نگیرند قابل خرج کردن نیستند؛ اما نکته مثبت اینجاست که این تراکنش ها تنها در زنجیره ای که ساخته شده اند معتبر هستند که این موضوع مصون بودن آن ها از بازپخش را تضمین می کند.
- nLocktime
روش دیگری که به کمی دانش فنی و نرم افزاری هم نیاز دارد nLocktime نام دارد. این روش بدان معناست که وقتی دو زنجیره از هم جدا می شوند، می توان یک تراکنش را برای زمان یا بلاکی با اندازه خاص تعیین (تنظیم) کرد. کاربر می تواند با استفاده از یک فول نود، nLocktime را برای بلاکی با ارتفاع (اندازه) خاص تنظیم کند. البته تعداد کیف پول هایی که چنین ویژگی را ارائه دهند زیاد نیست. با استفاده از روش nLocktime، کاربر می تواند تراکنشی بسازد که تنها در زنجیره طولانی تر تایید شود.
- دو تراکنش-دو تنظیم برای کارمزد
David Harding توسعه دهنده بیت کوین روش دیگری را توضیح می دهد که در آن از دو کارمزد مختلف برای تراکنش ها روی هر دو زنجیره استفاده می شود؛ هم زنجیره ی با کارمزد بالا و هم زنجیره ی با کارمزد پایین.
او می گوید:« این احتمال وجود دارد که استخرج کنندگان در یکی از طرف های فورک (یکی از زنجیره ها) در حال استخراج تراکنش های با کارمزد کمتر نسبت به طرف دیگر باشند، در نتیجه می توانید نسخه ای “کم کارمزد” از تراکنش خود را روی زنجیره “کم کارمزد” منتشر کنید و منتظر تایید بمانید و بعد نسخه “کارمزد بالا” از تراکنش خود را بر روی زنجیره ی با کارمزد بالا بفرستید».
حفاظت از دارایی های دیجیتالی به صبر نیاز دارد
روش های دیگر محافظت در برابر حملات بازپخش می تواند این باشد که منتظر یک ابزار جداساز که توسط یا صرافی یا کیف پول ساخته شده است باشید. علاوه بر این برخی از کیف پول ها و صرافی ها بصورت درونی در برابر حملات بازپخش مقابله می کنند، در نتیجه استفاده از این خدمات می تواند شما را در امان نگه دارد. برای مثال Coinbase و ارئه دهنده کیف پول BTC.com اعلام کرده اند که “حفاظت در برابر حملات بازپخش” مختص خود را خواهند داشت.
شاید یکی از بهترین راه ها این باشد که منتظر بمانیم تا فورک بیت کوین تمام و کمال و بصورت 100درصدی اتفاق بیافتد و همه از درست بودن اوضاع مطمئن شوند. اگر اجبار و عجله ای برای انجام تراکنش ندارید بهتر است منتظر بمانید تا فورک تمام شود و بعد با کمی تحقیق درباره شبکه ها، به انجام تراکنش بپردازید.
(در رابطه با هر کدام از روش های گفته شده باید ابتدا به اندازه کافی و به دقت مطالعه کنید. این مقاله صرفا جنبه آگاهی سازی و آشنایی کاربر با چیستی و روش های احتمالی مقابله با حملات بازپخش را دارد)
دیدگاه هایی که در این مقاله ارائه شده اند، متعلق به نویسنده می باشند و لزوماً مربوط به Coiniran نمی باشد و نباید به آن نسبت داده شود.