حمله فینی (Finney Attack) چیست و چگونه کار می کند؟
حمله فینی که به آن Finney Attack گفته میشود، اولین حمله بلاک چین در شبکه بیت کوین به حساب میآید و توسط اولین فردی که بیت کوین دریافت کرده کشف شد. این یک نوع بسیار خاص از حملات دوبار خرج کردن است که بر بیت کوین و هر ارز دیجیتالی مشتق شده از آن تأثیر میگذارد. در این مقاله از وبلاگ صرافی ارز دیجیتال او ام پی فینکس به سوالهایی مانند حمله Finney چیست، چگونه کار میکند، چگونه بر فضای رمزنگاری و پیشگیری از آن تاثیر میگذارد پاسخ میدهیم.
پادکست حمله فینی (Finney Attack) چیست و چگونه کار می کند؟
تعریف حمله فینی
هال فینی (Hal Finney) توسعهدهنده نرمافزار آمریکایی، اولین دریافتکننده تراکنش بیتکوین بود. او همچنین اولین کسی بود که به صورت عمومی درباره بیتکوین در زمان معرفی اولیه آن صحبت کرد. به عنوان یک توسعهدهنده نرمافزار، او امکان وقوع طرح دو بار خرج کردن در بیتکوین را کشف کرد. این طرح بعدها به نام او، یعنی Finney Hack یا Finney Attack، نامگذاری شد. انواع حملات و هکها به منظور بهره بردن از قیمت ارز دیجیتال صورت میگیرید در نتیجه هکر تمایل دارند تمرکز خود را روی کوینهای با ارزش قرار بدهند. فینی یک نوع حمله یا هک دوگانه است. بنابراین، وقتی شخصی تراکنش تایید نشده در شبکه را میپذیرد، چه اتفاقی رخ میدهد؟
فینی توضیح داد که یک ماینر میتواند بلاکی ایجاد کند که در آن تراکنش را از یک آدرس (A) به آدرس دیگری (B) وارد کند، جایی که هر دو آدرس متعلق به او هستند. سپس، پرداخت دیگری را با همان ارزها انجام میدهید و از آدرس A به آدرس C که متعلق به کاربر دیگری است، ارسال میکنید. اگر کاربر مذکور تراکنش را بدون تایید شبکه بپذیرد، مهاجم میتواند بلاکی را که تراکنش اولیه او در آن گنجانده شده، آزاد کند. این امر تراکنش انجام شده معاملهگر را باطل کرده و به مهاجم اجازه میدهد تا دو برابر هزینه کند.
نحوه کار حمله فینی
شاید به نظر مجرمان سایبری حمله فینی جذاب باشد، زیرا راهی آسان برای ثروتمند شدن بدون تلاش زیاد و به صورت ناشناس به نظر میرسد، اما انجام آن آسان نیست و هر کسی نمیتواند آن را به راحتی اجرا کند. اجرای این حمله دشوار خواهد بود زیرا نیاز دارد که حملهکننده یک ماینر باشد که قادر به استخراج بلاکی است که تراکنش او در آن تایید خواهد شد. همچنین، نیاز دارید که یک معاملهگر تراکنش را با صفر تأییدیه از شبکه قبول کند. فراهم کردن این دو شرط بسیار دشوار است.
Finney Attack چگونه انجام میشود؟
در تئوری امکان انجام حمله فینی حتی با کمتر از ۵۱ درصد از هش ریت شبکه وجود دارد اما در عمل به این شکل نیست. در ادامه نحوه اجرای این حمله در ۳ مرحله توضیح داده شده که به شکل زیر است:
مرحله اول
حملهکننده یک تراکنش انجام میدهد که در آن سکههای خود را به آدرسی تحت کنترل خود ارسال میکند. پس از انجام این عمل، شروع به استخراج یک بلاک معتبر کرده که تراکنش مذکور در آن گنجانده شده است.
مرحله دوم
وقتی موفق به استخراج بلاک و گنجاندن تراکنش در آن میشود، آن را به شبکه منتقل نمیکند. در عوض، با همان مقدار سکهای که در تراکنش اول استفاده کرده بود، خریدی انجام میدهد. بدین ترتیب، به دنبال این است که پرداختی برای کالا یا خدماتی با همان مقدار پول انجام دهد.
مرحله سوم
پس از انجام تراکنش به تاجر و قبول آن توسط تاجر بدون تأییدیه، حملهکننده بلاک استخراج شده را به شبکه منتقل میکند. این عمل باعث میشود که شبکه بلاک را به عنوان معتبر بپذیرد، در حالی که تراکنش انجام شده را بیاعتبار میکند.
امکان موفقیت حمله فینی
وقتی حملهکننده مراحل فوق را انجام داد یک حمله یا هک فینی اجرا شده اما با این حال، موفقیت حمله همچنان به قدرت هش ماینر بستگی دارد. یعنی که هرچه نرخ هش ماینر کمتر باشد، شانس موفقیت او در اجرای این حمله نیز کمتر خواهد بود. از طرف دیگر، اگر در زمانی که حملهکننده در حال یافتن بلاک است، بلاک دیگری در شبکه پیدا شود، حمله ناکام خواهد ماند. این زمان از لحظهی یافتن بلاک تا تولید تراکنش برای معاملهگر و قبول آن توسط معاملهگر محاسبه میشود.
اجرای حمله فینی و دو بار خرج کردن نیازمند زمانبندی دقیق و صبر زیادی است. چرا که باید منتظر یافتن بلاک باشد که میتواند مدت زمان زیادی طول بکشد، بهویژه با توجه به تعداد ماینرها و سختی شبکه. علاوه بر این، حملهکننده باید بتواند در عرض چند دقیقه کالا بخرد یا هزینهی خدمتی را بپردازد. اگر ماینر دیگری بلاک دیگری پیدا کرده و آن را منتقل کند، تراکنش به تاجر ثبت میشود و حمله او ناکام میماند.
مشاهده قیمت لحظهای و خرید بیت کوین در صرافی آنلاین ارز دیجیتال
چگونه از حملات فینی جلوگیری کنیم؟
حملات فینی نسبت به سایر انواع حملات رواج کمتری دارند، اما همچنان میتوانند نگرانیهایی ایجاد کنند. در ادامه چند راهکار برای کاهش حملات فینی آورده شده است:
استفاده از تاییدیههای بیشتر
یکی از موثرترین راهها برای کاهش حملات فینی این است که قبل از نهایی در نظر گرفتن یک تراکنش، تعداد بیشتری از تاییدیههای بلوک را منتظر بمانید. در بیت کوین، معمولا حداقل شش تاییدیه منتظر میمانند. هر چه بیشتر منتظر تاییدیهها بمانید، تراکنش امنتر میشود، زیرا هزینه و دشواری اجرای حمله فینی با هر تاییدیه افزایش مییابد.
پروتکلهای پرداخت
از پروتکلهای پرداخت یا فناوریهایی مانند شبکه لایتنینگ بیت کوین برای تراکنشهای کوچکتر و سریعتر استفاده کنید. این راهحلهای خارج از زنجیره میتوانند تاییدیههای سریعتری ارائه دهند و خطر حملات فینی را برای تراکنشهای روزمره کاهش دهند، در حالی که برای امنیت همچنان به بلاکچین اصلی متکی هستند.
ارزیابی ریسک
بر اساس ارزش هر تراکنش، ریسک مربوط به آن را ارزیابی کنید. برای تراکنشهای با ارزش کم، انتظار برای یک یا دو تاییدیه کافی است. برای تراکنشهای با ارزش بالا، یک دوره تایید طولانیتر توصیه میشود. به عنوان مثال، اگر میخواهید کمتر از ۱۰۰ دلار آمریکا را بپذیرید، یک تأییدیه کافی خواهد بود زیرا هزینه حمله به طور قطع بیشتر از مبلغ تراکنش به نظر میرسد. این هرگز به نفع برنامه حملهکننده نخواهد بود.
سیستمهای نظارت و هشدار
سیستمهای نظارت و هشدار در زمان واقعی را پیادهسازی کنید تا فعالیتهای غیرمعمول یا مشکوک در بلاکچین را شناسایی کنید. این کار میتواند به شناسایی زودهنگام حملات فینی کمک کرده و امکان اقدام فوری را فراهم کند.
کیفپولهای چندامضایی
کیفپولهای چندامضایی نوعی کیفپول دیجیتال هستند که برای تایید تراکنشها به چندین کلید خصوصی نیاز دارند. این ویژگی امنیتی باعث میشود حملههای فینی، که در آن مهاجم در حال تلاش برای متوقف کردن تراکنش، پیش از تایید نهایی است، دشوارتر شود. در چنین کیفپولهایی، هیچکدام از امضاها به تنهایی کافی نیستند و برای تایید تراکنش، همه امضاها باید جمعآوری شوند. این امر نه تنها امنیت تراکنشها را افزایش میدهد، بلکه احتمال موفقیت حملات مخرب را کاهش میدهد.
جایگزینی تراکنش با کارمزد (RBF)
اگر بلاکچین شما از RBF پشتیبانی میکند، این قابلیت را برای تراکنشهای خود فعال کنید. RBF به شما اجازه میدهد که یک تراکنش تایید نشده را با یک تراکنش جدید که کارمزد بیشتری دارد، جایگزین کنید. این کار احتمال اینکه تراکنش اولیه در یک بلوک گنجانده شود را کاهش میدهد.
مشاهده قیمت لحظهای و خرید تتر در صرافی آنلاین ارز دیجیتال
افراد در معرض هک فینی
هر کسی که تراکنشهای خود را در بلاکهای تایید نشده قبول کند، امکان دارد به حملات فینی در ارزهای دیجیتال دچار شود. برای مثال، فروشگاههای آنلاین که از ارزهای دیجیتال برای پرداخت خدمات مانند دانلود بازیهای ویدیویی استفاده میکنند، افراد را در معرض این نوع حملات قرار میدهند. همچنین، تجار و فروشندگانی که پرداختهای تراکنش تایید نشده را قبول میکنند، ممکن است در معرض این حملات قرار گیرند، به ویژه در مکانهایی مانند سوپرمارکتها که زمان خرید مشخص نیست و تعداد زیادی از افراد در صف پرداخت حضور دارند که میتواند از استفاده مهاجم به نفع خود مانع شود.
پرسشهای پر تکرار در مورد حمله فینی (Finney Attack)
- فینی در بلاک چین چیست؟
حمله فینی نوعی حمله بلاک چین است که به نام خالق آن، هال فینی، یکی از مشارکت کنندگان اولیه بیت کوین، نامگذاری شد. این حمله مخصوص شبکههای بلاک چین است که از مکانیسمهای اجماع اثبات کار استفاده میکنند.
- آیا میتوان از حمله فینی جلوگیری کرد؟
بله. توصیه میشود برای اطمینان از ایمنی و غیرقابل برگشت بودن یک تراکنش در شبکه بیت کوین، حداقل ۶ تاییدیه از شبکه دریافت کنید. همچنین بهتر است تعداد تاییدات مورد نیاز را با توجه به مقدار پولی که قصد معامله آن را دارید، تعیین کنید.
- حمله ۵۱ درصدی همان فینی چیست؟
خیر. حمله ۵۱ درصدی که توسط یک موجودیت یا گروهی که بیش از ۵۰ درصد از شبکه را کنترل میکند ،میگویند. مهاجمان با کنترل اکثریت شبکه میتوانند ضبط بلاکهای جدید را با جلوگیری از تکمیل بلاکهای دیگر ماینرها قطع کنند.
- آیا حمله فینی شدنی است؟
در حال حاضر، انجام حمله فینی به شدت غیرعملی است زیرا نیاز به زمانبندی، صبر، تلاش و جستجو برای بلاک مناسب دارد.