هک فینی یا حمله ی فینی چیست؟
اولین دریافت کننده ی تراکنش بیتکوین شخصی بود به نام هال فینی که اولین بار از راه اندازی …
خانه »
اولین دریافت کننده ی تراکنش بیتکوین شخصی بود به نام هال فینی که اولین بار از راه اندازی بیتکوین خبر داده بود. همینطور او کسی بود که اولین بار احتمال حمله ی خرج مضاعف به بیتکوین را مطرح کرد. به همین دلیل این نوع از حمله به نام او نامگذاری شد. حمله ی فینی از نوع حملات خرج مضاعف است که زمانی اتفاق می افتد که فردی یک تراکنش تایید نشده روی شبکه را بپذیرد. فینی توضیح داد که یک ماینر می تواند بلاکی ایجاد کند که در ان تراکنشی را از آدرس A به آدرس B منتقل کند و هر دو آدرس متعلق به خود او باشد. سپس پرداخت دیگری را با همان رمزارز انجام داده و از آدرس A به آدرس C که متعلق به شخص دیگری است ارسال می کنید. اگر کاربر مذکور تراکنش را بدون تایید شبکه بپذیرد، مهاجم می تواند بلاکی را که تراکنش اولیه او درآن گنجانده شده است را آزاد کند. این کار تراکنش انجام شده با معاملهگر دیگر را باطل می کند و شخص می تواند با همان پول دوباره خرید دیگری انجام دهد.
حمله ی فینی چگونه انجام می شود؟
انجام این نوع حملات خرج مضاعف کار آسانی نیست. زیرا اقدام به این کار نشان می دهد که مهاجم خود یک استخراج کننده است که می تواند بلاکی را استخراج کند که تراکنش او در آن اعتبارسنجی می شود. همچنین به کسی نیاز دارید که تراکنش شما که هیچ تاییدی در شبکه روی آن وجود ندارد را بپذیرد. رخ دادن این دو شرط با هم بسیار نادر است. با این حال به صورت نظری حتی زمانی که شما کمتر از 51 درصد قدرت هش شبکه را در اختیار دارید این امکان وجود دارد. بیایید ببینیم چطور این حمله در سه گام رخ می دهد:
گام اول:
مهاجم یک تراکنش را انجام می دهد که در آن مقداری رمزارز را به یک آدرس تحت کنترل خودش ارسال می کند. وقتی انجام شد، او شروع می کند به ماینینگ یک بلاک معتبر که تراکنش گفته شده را در خود دارد.
گام دوم:
وقتی کار استخراج بلاک و گنجاندن آن تراکنش در بلاک تمام شد، از انتقال آن به شبکه خودداری می کند و در عوض خرید دیگری با همان مقدار رمزارز تراکنش اول انجام می دهد و خدمت یا دارایی دیگری با همان مقدار پول را می خرد.
گام سوم:
بعد از فرستادن تراکنش به تاجر دیگر و اگر آن تاجر آن را بدون تایید پذیرفت، آنگاه مهاجم بلاک ماین شده را به شبکه انتقال می دهد. این کار باعث می شود شبکه آن بلاک را معتبر فرض کند در حالی که تراکنش انتقال رمزارز به آن تاجر را نامعتبر تشخیص دهد.
اگر مهاجم موفق به تکمیل این فرایند شود یعنی او یک حمله یا هک فینی انجام داده است. گرچه بسته به قدرت هشینگ ماینر، احتمال بسیار کمی برای انجام آن وجود دارد. هر چه قدرت هشینگ ماینر پایینتر باشد، احتمال موفقیت او در حمله ی فینی کمتر خواهد بود. ازسوی دیگر اگر در فاصله ی زمانی بین تکمیل بلاک و عدم عرضه ی آن به شبکه تا فریب خوردن تاجر و پذیرش تراکنش تایید نشده، بلاک دیگری در شبکه تکمیل و عرضه شود، این حمله شکست خواهد خورد.
چه کسی در معرض حملات فینی قرار دارد؟
اگر یک شخص یا تاجر پرداخت های تراکنش تایید نشده را بپذیرد، ممکن است هدف چنین حمله ای قرار بگیرد. برای مثال یک مغازه با خدمات آنلاین مثل دانلود بازی های ویدیویی که رمزارزها را می پذیرد و بلافاصله اجازه ی دانلود می دهد ممکن است در معرض این نوع حملات قرار بگیرد. همچنین این احتمال وجود دارد که این اتفاق در یک سوپرمارکت بیفتد اگرچه مدت زمان خرید در آن خیلی دقیق نیست و احتمال موفقیت حمله کم است.
چگونه خود را در برابر حملات فینی محافظت کنیم؟
توصیه ی اول این است که صبر کنید تا دست کم 6 تایید در شبکه ی بیتکوین روی آن تراکنش صورت بگیرد تا بتوان تراکنش را امن و برگشت ناپذیر در نظر گرفت. گذشته از این که عدم تمرکز شبکه به قدری رشد کرده که در اکثر موارد یک یا دو تایید نیز کافیست اما می توان بر حسب اهمیت و مقدار معامله تعداد تاییدیه های مورد نیاز را تعیین کرد. برای مثال برای تراکنش های زیر 100 یورو یک تاییدیه ممکن است کافی باشد زیرا هزینه ی چنین حمله ای بسیار بیشتر از این رقم است.
تراکنش های بیتکوین در صورتی که بلاک های جدید حاوی آن تراکنش، تولید شده باشند دیگر غیرقابل برگشت خواهند بود. زیرا هر بلاک تولید شده به معنای تایید تمام تراکنش های درون آن است. همچنین برای تراکنش های بزرگ و قابل توجه توصیه می شود که برای 6 تاییدیه منتظر بمانید تا مطمئن شوید که عملا دیگر امکان ندارد که تراکنش برگردد.
اگر یک مهاجم قصد استفاده از حملات فینی برای کسب مقداری دارایی نقد را داشته باشد، کار دشواری برای تطبیق این دارایی و جستجو برای یک بلاک را در پیش خواهد داشت. حتی اگر چنین کاری را بتواند صورت دهد باز هنوز این امکان وجود دارد که تاجر مقابل برای اخذ تاییدیه ها صبر کند. بنابراین در عمل بسیار کار مشکلی است که از این طریق بتوان چیزی به چنگ آورد.