این اولین حمله یا هک شناخته شده برای بیت کوین است که توسط هال فینی، اولین شخصی که تراکنش بیت کوین را دریافت کرد، کشف شد. هک یا حمله فینی همانطور که به افتخار وی نامگذاری شد، یک نوع بسیار خاص از حملات دوگانه است که بر بیت کوین و هر ارز دیجیتال مشتق شده از آن تأثیر می گذارد.
Eاولین دریافت کننده تراکنش بیت کوین هال فینی بود و او اولین بار از راه اندازی بیت کوین صحبت کرد . او همچنین اولین کسی بود که احتمال حمله دوگانه به بیت کوین را مطرح کرد. به همین دلیل این حمله به افتخار او با نام Finney Hack یا Finney Attack نامگذاری شد.
هک یا حمله Finney نوعی حمله هک یا هزینه مضاعف است چه اتفاقی میافتد زمانی که شخصی یک تراکنش تایید نشده در شبکه را بپذیرد . فینی توضیح داد که یک ماینر میتواند بلوکی ایجاد کند که در آن تراکنش را از آدرس A به آدرس B دیگر وارد کند، جایی که هر دو آدرس متعلق به او هستند. سپس، پرداخت دیگری را با همان ارزها انجام می دهید و از آدرس A به آدرس C (که متعلق به کاربر دیگری است) ارسال می کنید. اگر کاربر مذکور تراکنش را بدون تایید شبکه بپذیرد، مهاجم می تواند بلوکی را که تراکنش اولیه او در آن گنجانده شده است، آزاد کند. این امر تراکنش انجام شده با ارسال کننده را باطل می کند و به مهاجم اجازه می دهد تا هزینه را دو برابر کند.


هک یا حمله فینی چگونه اجرا می شود؟
انجام این نوع حملات دوگانه کار آسانی نیست. برعکس، اجرای آن بسیار دشوار است، زیرا نشان میدهد که مهاجم یک ماینر است که میتواند بلوکی را استخراج کند که تراکنش او در آن اعتبارسنجی میشود. همچنین، برای پذیرش تراکنش با تایید صفر از شبکه به یک تاجر نیاز دارید. پیوستن به این دو شرط بسیار دشوار است. با این حال، از نظر تئوری، حتی زمانی که شما کمتر از ۵۱ درصد از قدرت هش شبکه را دارید، انجام آن ممکن است. بیایید ببینیم که چگونه این حمله در ۳ مرحله اجرا می شود:
گام اول
مهاجم تراکنشی را انجام می دهد که در آن سکه های خود را به آدرسی تحت کنترل خود می فرستد. پس از انجام این عمل، استخراج یک بلوک معتبر که تراکنش مذکور در آن گنجانده شده است، آغاز می شود.
مرحله دوم
هنگامی که موفق به استخراج بلوک و شامل تراکنش می شود، آن را به شبکه منتقل نمی کند. در عوض، با همان مقدار سکه ای که در اولین تراکنش استفاده کردید، خرید کنید. بنابراین، به دنبال پرداخت یک کالا یا خدمت با همان مقدار پول است.
مرحله سوم
پس از انجام تراکنش به تاجر و پذیرش آن توسط تاجر بدون تایید، مهاجم بلوک استخراج شده را به شبکه منتقل می کند. این عمل باعث می شود که شبکه بلاک را معتبر بپذیرد و در عین حال تراکنش انجام شده به تاجر را بی اعتبار می کند.
وقتی مهاجم موفق شد، به این معنی است که او یک هک یا حمله فینی را اجرا کرده است. با این حال، بسته به قدرت هش ماینر، اجرای این حمله کاملاً بعید است. بنابراین، هرچه قدرت هش ماینر کمتر باشد، شانس اجرای موفقیت آمیز آن کاهش می یابد. از سوی دیگر، اگر بلوک دیگری در شبکه پیدا شود در زمانی که مهاجم برای یافتن یک بلوک زمان میبرد تا زمانی که تراکنش برای تاجر ایجاد شود و تاجر آن را بپذیرد، حمله شکست خواهد خورد.
بنابراین انجام این نوع حملات دوگانه مستلزم زمان بندی دقیق و صبر زیاد از سوی مهاجم است. از آنجایی که باید منتظر بمانید تا یک بلوک پیدا شود، که ممکن است زمان زیادی طول بکشد، به خصوص با توجه به تعداد ماینرها و سختی شبکه. علاوه بر این، مهاجم باید بتواند در چند دقیقه مقداری کالا بخرد یا هزینه یک سرویس را از یک تاجر بپردازد. از آنجایی که همانطور که اشاره کردیم، اگر ماینر دیگری بلاک دیگری را پیدا و ارسال کند، تراکنش به تاجر وارد می شود و حمله او با شکست مواجه می شود.
چه کسانی در معرض حمله فینی هستند؟
اگر شخص یا تاجری پرداخت های تراکنش تایید نشده را بپذیرد، ممکن است در معرض این حمله قرار بگیرید. به عنوان مثال، فروشگاهی با خدمات آنلاین مانند دانلود بازی های ویدیویی که ارزهای رمزنگاری شده را می پذیرند و امکان دانلود فوری را دارند ممکن است در معرض این نوع حملات قرار بگیرند. همچنین احتمال دارد در سوپرمارکت ها رخ دهد، اگرچه زمان خرید در آنها دقیق نیست. این به این دلیل است که افراد زیادی در صف پرداخت وجود دارند که مانع از استفاده مهاجم از زمان به نفع خود می شود.
آیا حمله Finney رفع نشده است زیرا توسعه دهندگان نمی توانند آن را انجام دهند؟
نادرست!
رفع حمله Finney در سطح کد آسان است، اما با وجود این، توسعهدهندگان به دلیل قوی این کار را انجام ندادهاند: این نیاز به تغییری دارد که به شدت روش اجماع در شبکه را تغییر میدهد و میتواند اثرات نامطلوبی داشته باشد. به همین دلیل، و با توجه به اینکه تمرکززدایی و افزایش قدرت استخراج، بهره برداری از این ضعف را بسیار دشوار می کند، توسعه دهندگان بیت کوین این اشتباه را نادیده گرفته اند که همه چیز را به همان شکلی که هست رها کرده اند. پس از همه “اگر کار کرد، آن را لمس نکنید.”
چگونه از خود در برابر حمله فینی محافظت کنیم؟
اولین توصیه این است که منتظر حداقل ۶ تایید در شبکه بیت کوین باشید تا یک تراکنش را ایمن و غیرقابل برگشت در نظر بگیرید. . علیرغم عدم تمرکز شبکه به قدری رشد کرده است که در اکثریت قریب به اتفاق موارد با ۱ یا ۲ حتی ممکن است کافی باشد، حتی میتوان تعداد تاییدیهها را بر اساس مقدار معامله ارزشگذاری کرد.
به عنوان مثال، اگر قرار است کمتر از ۱۰۰ یورو بپذیرید، با تایید ممکن است کافی باشد زیرا هزینه حمله بسیار بالاتر خواهد بود. تئوری بازی ها و تعادل النش هرگز به نفع اجرای حمله نخواهد بود.
همانطور که در مقاله های قبلی در مورد تراکنش های برگشت ناپذیر اشاره کردیم، تراکنش های بیت کوین غیرقابل برگشت خواهند بود زیرا بلوک های جدیدی ایجاد می شود که تراکنش شامل آن می شود. انعکاس هر بلوک جدید به عنوان تأییدی برای تراکنش شامل. با این حال، برای مبالغ قابلتوجه، توصیه میشود برای اطمینان از غیرممکن بودن معکوس کردن تراکنش، منتظر ۶ تأیید باشید. برای آنچه که در معرض خطر یک کاربر یا تاجر باقی میماند، تراکنشهای تایید نشده توسط شخص دیگری را بپذیرید.
اگر یک مهاجم قصد استفاده از حمله Finney را برای به دست آوردن مقداری دارایی غیر نقدی داشته باشد، تطبیق نیاز به این دارایی با جستجوی یک بلوک دشوار است. با این حال، اگر از آن به عنوان راهی برای به دست آوردن چیزی مایع استفاده کنید، مانند مبادله بیت کوین با ارز دیگری، همیشه فرصتی برای درک خود وجود دارد. اما به احتمال زیاد بازرگان برای انجام این عمل از او تعدادی تاییدیه خواسته است. بنابراین در عمل رسیدن به چنین چیزی بسیار دشوار و غیرمحتمل است.




