هک پروتکلهای دیفای (Defi) آنهم یکی پس از دیگری، نشان از ضعف عمده در ساختار این پروتکلها دارد. هنوز چند هفته از هک بریج شبکه رونین نمیگذرد، که این بار خبر هک شدن پروتکل بینزتاک (Beanstalk) سر زبانها افتاده است. این بار هکر با استفاده از وام سریع (Flash Loan) و با هدف قرار دادن مکانیسمهای حاکمیتی، توانست ۸۰ میلیون دلار رمزارز را از این پروتکل به سرقت ببرد. در این مقاله ابتدا به طور اجمالی پروتکل بینزتاک و نحوه کار آن را تشریح میکنیم و سپس به بررسی نحوه انجام این هک میپردازیم. با میهن بلاکچین همراه باشید.
پروتکل Beanstalk چیست؟
بینزتاک یک پروتکل دیفای محسوب میشود که قصد دارد نوع جدیدی از استیبل کوین ها را به بازار کریپتو معرفی کند. در حال حاضر استیبل کوینها برای ثابت نگه داشتن قیمت خود در برابر دلار از چندین مکانیسم استفاده میکنند؛ به طور مثال USDT و USDC ادعا میکنند که در ازای هر واحد از آنها یک واحد دلار فیزیکی در بانکها نگهداری میکنند.
استیبل کوین DAI از کوین اتریوم به عنوان پشتوانه استفاده میکند و توکنهایی مانند UST یا FRAX استیبل کوینهای الگوریتمی هستند که پشتوانه آنها از کوین بومی شبکه ترا و فرکس تامین میشود. تمامی این استیبل کوینها برای صدور نیاز به تامین وثیقه دارند و از این رو در هنگام تقاضای زیاد نمیتوانند بدون تامین وثیقه توکن جدیدی ایجاد کنند و پاسخگوی نیاز بازار باشند.
پروتکل Beanstalk با هدف حل این مشکل از یک مکانیسم جدید استفاده میکند. بینزتاک برای ایجاد استیبل کوین BEAN از یک مکانیسم غیرمتمرکز مبتنی بر اعتبار (Credit Based) استفاده میکند. پروتکل بینزتاک از یک سازمان مستقل غیر متمرکز (DAO) برای مدیریت ایجاد استیبل کوین بین (BEAN) بهره میبرد.
این مساله باعث میشود تا توکن بین مانند سایر استیبل کوینها نظیر تتر، قابل سانسور نباشد. تمامی فرایندها در پروتکل Beanstalk مانند اوراکلها برای تعیین قیمت، توکن حاکمیتی، زمانبندی صدور توکن BEAN و DAO این پروتکل توسط افراد جامعه آن کنترل میشوند. توکن BEAN هیچگونه پیش تخصیص قبل از آغاز به کار نداشته و تیم سازنده آن هیچ تعداد توکنی را از قبل برای خود ذخیره نکردهاند.
غیرمتمرکز بودن استیبل کوین بین به این معناست که تمامی افرادی که به اینترنت متصل هستند، میتوانند در فرایند ایجاد و مدیریت آن شرکت داشته باشند. همانطور که پیشتر بیان شد، پروتکل Beanstalk برای دستیابی به یک استیبل کوین غیرمتمرکز از مکانیسمی به نام مبتنیبر اعتبار یا Credit Based استفاده میکند.
در این مکانیسم پروتکل بینزتاک میتواند از طریق تسهیلات اعتباری غیرمتمرکز خود به نام فیلد (Field) ارزش دلاری خود را بدون نیاز به وثیقه حفظ کند. از آنجایی که پروتکل بینزتاک مجبور نیست برای ثابت نگهداشتن قیمت BEAN در برابر دلار از وثیقه استفاده کند، میتواند به طور انعطافپذیر و قابل اعتماد عرضه را برای پاسخگویی به نیاز بازار به مقدار دلخواه گسترش دهد.
پروتکل Beanstalk چگونه کار میکند؟
بسیاری از شرکتها در گذشته و در حوزه دیفای به دلیل تلاشهای ناموفق برای ایجاد استیبل کوینهای الگوریتمی و غیروثیقهای مانند Empty Set Dollar ،Dynamic Set Dollar و Basis Cash از بین رفتهاند. قیمت هر یک از این استیبل کوینها در عرض چند ماه پس از عرضه به پایینتر از قیمت یک دلار کاهش یافته است. پروتکل Beanstalk با در نظر گرفتن این تلاشهای قبلی طراحی شد و به طور متناوب ضعفها و کاستیهای پروتکل خود را بهبود بخشید. پروتکل بینزتاک توانست قیمت BEAN را بیش از ۴۲۰۰ بار در ۸ ماه از عمر این استیبل کوین به ۱ دلار بازگرداند و ۲۴ میلیون دلار بدهی خود را بازپرداخت کند.
مهمترین معیار برای پروتکل Beanstalk این است که استیبل کوین BEAN همواره ۱ دلار ارزش داشته باشد. Beanstalk با افزایش و کاهش عرضه توکن بین در پاسخ به تغییرات تقاضا، قیمت خود را حفظ میکند. زمانی که قیمت BEAN کمتر از ۱ دلار است، Beanstalk کاربران را تشویق میکند تا توکن BEAN را از بازار خریداری کنند و آنها را به پروتکل قرض دهند.
این موضوع باعث میشود عرضه این استیبل کوین در بازار کم شود و قیمت آن به یک دلار بازگردد. زمانی که قیمت BEAN بالاتر از ۱ دلار باشد، Beanstalk توکنهای بین جدیدی را تولید میکند تا قیمت را به ۱ دلار کاهش دهد. سپس توکنهای ایجاد شده را بین کاربران توزیع میکند تا قیمت BEAN به یک دلار بازگردد.
دو جز اصلی در پروتکل بینزتاک وجود دارد که مسئول حفظ ثبات قیمت خارج از اوراکل هستند. این دو جز Field و Silo نام دارند، که در ادامه آنها را بررسی میکنیم:
فیلد (Field)
فیلد به عنوان مکانیسم تسهیلات اعتباری غیرمتمرکز در پروتکل بینزتاک محسوب میشود. Beanstalk برای حفظ ثبات قیمت Bean به جامعه غیرمتمرکز وامدهندگان متکی است. هرچه Beanstalk سریعتر بتواند وامدهندگان را جذب کند، قیمت Bean پایدارتر خواهد بود. قرض دادن توکن Bean در قسمت فیلد صورت میگیرد. فرایندی که در این قسمتها صورت میپذیرد، به شرح زیر است:
- هر زمان که Beanstalk مایل به صدور توکن باشد، Soil در قسمت فیلد در دسترس قرار میگیرد.
- Soil نشان دهنده تعداد توکنهای بین است که میتوان به Beanstalk قرض داد.
- هر توکن بین خارج از Silo را میتوان در ازای دریافت توکن POD به Beanstalk قرض داد.
- POD داراییهای بومی Beanstalk هستند. آنها در این پروتکل به عنوان اوراق قرضه با نرخ بهره ثابت و تاریخ سررسید نامشخص عمل میکنند.
- توکنهای POD با توجه به عوامل مختلف و در طول زمان ارزشمند میشوند و پس از گذشت یک دوره قابلیت فروش یا بازخرید پیدا میکنند.
سیلو (Silo)
سیلو مکانیسم حکمرانی غیرمتمرکز پروتکل Beanstalk محسوب میشود. بینزتاک از Silo برای ساخت Beanstalk DAO استفاده میکند. تمامی کاربرانی که توکن BEAN داشته باشند، میتوانند در امور حاکمیتی پروتکل بینزتاک مشارکت کرده و همچنین با سپردهگذاری داراییهای خود در سیلو، توکن STALK و SEED دریافت کنند.
STALK توکن حاکمیتی Beanstalk است. دارندگان توکن STALK میتوانند پروپوزالهای خود را برای بهبود Beanstalk ارائه یا به پروپوزالهای دیگر رای دهند. هر چه تعداد سپردهها و دارندگان توکن STALK بیشتر باشد، مکانیسم حاکمیتی پروتکل بینزتاک غیرمتمرکزتر خواهد بود. برای تشویق کاربران به نگهداری طولانی مدت سپردهها و افزایش تمرکززدایی مالکیت توکنهای STALK پروتکل بینزتاک در طول زمان از مکانیسمهای زیر استفاده می کند:
- سپردهگذاران توکنهای Stalk و Seed را با شروع سپردهگذاری دریافت میکنند.
- توکنهای SEED در هر فصل توکنهای STALK جدیدی را تولید میکنند.
- با برداشت سرمایه توکنهای STALK و SEED نیز باید برداشته شوند.
هک پروتکل Beanstalk چگونه اتفاق افتاد؟
هک پروتکل Beanstalk چندمین هک یک پروتکل دیفای بر بستر شبکه اتریوم است. این سرقت را از لحاظ فنی نمیتوان هک دانست؛ زیرا مهاجم برای سرقت داراییها از پروتکل بینزتاک از ضعف قرارداد هوشمند آن در قسمت حاکمیتی بهره برده است.
این حمله با استفاده از یک وام فلش لون انجام شد. وام سریع یا فلش لون به زبان ساده مبلغی است که از یک پروتکل دیفای مانند یونی سواپ (Uniswap) یا آوه (Aave) قرض گرفته شده و در یک تراکنش برگردانده میشود. این نوع وام هیچ خطری برای ارائهدهندگان نقدینگی یا پروتکلهای دیفای ندارد؛ زیرا تراکنشها به صورت اتمی انجام شده و اگر مشکلی پیش بیاید، تراکنش برگردانده میشود. این آدرسی است که مهاجم برای دریافت وام سریع و تبدیل داراییهای سرقتی استفاده کرده است.
هک بینزتاک با گرفتن وام سریع استیبل کوینهای تتر، دای و USDC به ارزش ۱ میلیارد دلار از پلتفرم Aave آغاز شد. مهاجم همچنین حدود ۳۲ میلیون دلار توکن BEAN را از یونی سواپ به صورت وام سریع دریافت کرد که این مقدار حدودا شامل ۳۰ درصد از کل توکنهای BEAN است. علاوه بر این ۱۱.۶ میلیون دلار توکن LUSD را از سوشی سواپ به صورت فلش لون دریافت کرد.
سپس مهاجم توکنهای DAI ،USDC و USDT را به استخر 3CRV پلتفرم کرو فایننس انتقال داده و آن را به جفت توکن BEAN/LUSD تبدیل کرد. این جفت توکن امکان ایجاد پروپوزال و تصمیمگیری درباره پروتکل بینزتاک را از طریق جامعه حاکمیتی آن و از طریق قرارداد هوشمند Diamond فراهم میکند. جفت توکن BEAN/LUSD به کاربران اجازه میدهد تا با استفاده از توکن STALK در فرایندهای حاکمیتی مشارکت کرده و رای بدهند.
تعداد توکنهای STALK بیشتر برابر است با قدرت رای بیشتر. مهاجم موفق شد تا کنترل ۶۶ درصد از توکنهای STALK را در دست بگیرد. این میزان توکن برای تصویب یک پیشنهاد لازم است. مهاجم با در دست داشتن ۲/۳ از قدرت رایها توانست یک پیشنهاد ارائه دهد، به آن رای دهد و آن را اجرایی کند. این هک در تاریخ ۱۷ آوریل ۲۰۲۲ (۲۸ فروردین ۱۴۰۱) رخ داد و طبق بررسیها مهاجمان از یک روز قبل حمله به پروتکل بینزتاک را طراحی کرده بودند.
پروپوزالی که برای انجام این هک تهیه شده بود BIP-18 نام داشت و هدف آن در ظاهر جمعآوری کمک برای دولت اوکراین بود؛ اما به نقل از برخی متخصصان حوزه بلاکچین در توییتر، پس از اجرای این پیشنهاد قرارداد هوشمند مخربی اجرا شد که تمام داراییهای قفل شده در پروتکل بینزتاک را به آدرس مهاجمان منتقل کرد. در تصویر زیر به طور کامل فرایند حمله هکرها به پروتکل بینزتاک، نشان داده شده است.
همچنین در برخی ازمنابع عنوان شده است که این پروپوزال به مهاجمان اجازه میداد تا به تعداد دلخواه توکن BEAN ایجاد کنند. پس از انجام این پروپوزال ۲۵۰,۰۰۰ دلار به حساب دولت اوکراین واریز شد و مهاجمان معادل تقریبا ۸۰ میلیون دلار اتریوم و استیبل کوین BEAN را به سرقت بردند.
آنها تمامی توکنهای BEAN را به اتریوم تبدیل کرده و سپس برای از بین بردن رد سرقت انجام شده آنها را به تورنادو کش انتقال دادند. همچنین پس از انجام این هک ارزش کل قفل شده پروتکل Beanstalk حدودا ۱۸۲ میلیون دلار کاهش یافت و قیمت هر واحد BEAN به ۰.۰۲ دلار رسید در حال حاضر و در زمان نگارش این مقاله توکن BEAN با قیمت ۰.۰۵۷ معامله میشود. پس از رخ دادن این هک پروتکل Beanstalk از دسترس خارج شده است.
جمع بندی
در حال حاضر پلتفرمهای دیفای به یکی از مقاصد اصلی هکرها تبدیل شدهاند. هر از چندگاهی اخباری مبنیبر هک یکی از آنها منتشر میشود و عمده مشکلات آنها مربوط به قراردادهای هوشمند است. Beanstalk یک پروتکل دیفای است که با استفاده از یک مکانیسم جدید نوعی از استیبل کوینهای بدون داشتن وثیقه را ایجاد کرده است. این پروتکل اخیرا مورد هک واقع شده و ارزش استیبل کوین آن به شدت افت کرده است. در این مقاله نحوه هک پروتکل Beanstalk