فرق اتربوم و اتریوم کلاسیک
نام اتریوم قرارداد هوشمند همیشه درکنارهم است. در حقیقت همه زیربنای ساختمان اتریوم قرارداد هوشمند است. همانطور که میدانید یک قرارداد عادی، توافقی بین دو یا چند نفر حقیقی یا حقوقی است که منجر به تعهدی معین میشود. در قرارداد هوشمند کدهای کامپیوتر اتوماتیک و تضمینی فرایندها را انجام میدهند و نیازی به شخص سومی نیست. هر فعالیتی را که قراردادهای هوشمند ثبت میکنند غیرقابلبازگشت است. همچنین تمامی شرایط و اقدامات را میتوان پیگیری کرد. به زبان سادهتر کار قراردادهای هوشمند اجرای خودکار دستورالعملهای دادهشده به آنها است.
حمله DAO
در ژوئن 2016، یکسوم سرمایههای DAO یده شد. این مقدار نزدیک به 50 میلیون دلار بود. راه فراری که هکرها کشف کردند کاملاً واضح و قابلدرک است. برای خروج از DAO، هرکس باید درخواستی بفرستد این فرایند اسپلیت فانکشننامیده میشود. عملکرد جداسازی دو مرحله زیر را خواهد داشت:
در معاوضه با توکن DAO، اتر کاربر به او برگردانده میشود.
تراکنش در لجر ثبتشده و تعادل توکن داخلی بهروزرسانی میشود.
کاری که هکر انجام داد این بود که یک عمل بازگشتی در درخواست انجام داد، بنابراین عمل جداسازی اینگونه بود:
توکن DAO از کاربر گرفتهشده و درخواست اتر برای آنها فرستاده شد.
پیش از آنکه بتوانند تراکنش را ثبت کنند، عملکرد بازگشتی کد را برعکس کرده و برای همان مقدار DAO اتر بیشتری انتقال داد.
این کار تا زمانی ادامه داشت که 50 میلیون اتر برداشتشده بود و در یک Child DAO ذخیرهشده بود و همانطور که انتظار میرود، در تمام جامعه اتریوم جنگ به پا شد.
پیامدهای حمله
هرچند اتریوم بیتقصیر بود اما تأثیر روانی و عدم اعتماد مردم به ارز دیجیتال اتریوم به قوت خودش باقی ماند. قیمت اتر از 20 دلار به 13 دلار کاهش یافت. از دست رفتن ۵۰ میلیون دلار اتریوم برای شبکهای که در ابتدای راه خودش قرار داشت، یک فاجعه محسوب میشد.
راهحلهای سهگانه
هکر زرنگ بهاندازه پنجاه میلیون اتر برداشت کرده بود، اما این مبلغ هنوز در child DAO قرار داشت و نمیتوانست به آن دسترسی داشته باشد چراکه در قرارداد هوشمند DAO قیدشده است که هر اتری که از DAO خارج شود تا 28 روز غیرقابل دسترسی است. با در نظر گرفتن این موضوع، گروه اتریوم تصمیم گرفتند دراینباره اقدام کنند و سه راهحل احتمالی وجود داشت:
سافت فورک
هارد فورک
کسی کاری انجام ندهد.
بر اساس قانون فلسفه وجودی اتریوم این شبکه میبایستی غیرقابل دستکاری و تغییر باشد. شعار «کد یعنی قانون» باید سرجایش بماند. پس اگر لازم باشد تا روی آن بهروزرسانی صورت بگیرد یا اگر عدهای از قوانین یک بلاک چین ناراضی باشند، دو راهحل بعدی باقی میماند. یا سافت فورک یا هارد فورک
سافت فورک چیست؟
وقتیکه نیاز به بهروزرسانی زنجیرهای احساس میشود، دو راه برای انجام آن وجود دارند: سافت ورک و هارد ورک. سافت ورک را بهعنوان بهروزرسانی در نرمافزار در نظر بگیرید که بهصورت وارونه است. با مثالی برایتان سادهتر میکنیم:
در نظر بگیرید برای مثال روی لپتاپ خود برنامه اکسل ورژن 2015 را نصبکردهاید و میخواهید یک صفحه در آن بازکنید. شما میتوانید این کار را انجام دهید چراکه برنامه اکسل 2015 بهصورت برعکس سازگار است.
بااینوجود یک تفاوت وجود دارد. تمامی این آپدیتهایی که در نسخه جدید ایجاد میکنید، در نسخه قدیمیتر قابلمشاهده نخواهند بود. فرض کنید در Excel ویژگی وجود دارد که به شما این اجازه را میدهد در نسخه 2015 از GIF استفاده کنید، اما نمیتوانید این GIF را در نسخه 2005 ببینید. درواقع تمام متن را خواهید داشت اما نمیتوانید GIF را ببینید.
این معادل برنامهای است که اتریوم قصد داشت با بلاک چین خود پیاده کند.
به عبارت دیگرسافت فورکی که در آن به انتخاب خودتان بهروزرسانی را اجرا کرده یا نمیکنید، اما کاربران بازهم میتوانند با یکدیگر ارتباط داشته باشند و کاری به این بهروزرسانی ندارد. نقشهی جالب که بیشتر جامعه اتریوم نیز با آن موافقت کردند این بود که:
با جداسازی و نادیده گرفتن هر بلاک دارای تراکنشی که به هکر کمک میکرد اتر را جابهجا کند، اتری که یدهشده بود را محبوس کنند، اما بعداً معضلی پدیدار شد. در ادامه اجرای یک سافت ورک منجر به حمله DoS میشد.
بهعلاوه توسعهدهندگان اتریوم میخواستند که بدون تغییر دادن قوانین بلاک چینِ اتریوم، جلوی تراکنش هکر DAO را بگیرند و نودها (Nodes) بلاکهایی را که مربوط به تراکنشهای هکر است نادیده بگیرند. اینگونه میتوان مبالغ را بازگشت داد.
درباره این سایت