⛓ دانشکدهٔ ۲ · تکامل، مقیاسپذیری و ارتباط زنجیرهها
پلهای بینزنجیرهای و درس هکهای بزرگ
Cross-chain bridges and lessons from major hacks
پیشنیازها: سهگانهٔ بلاکچین، لایهٔ ۱ و لایهٔ ۲امضای دیجیتال: ECDSA و Schnorr
📚 آموزش در سه سطح
از سطح ساده شروع کنید؛ اگر روشن بود، سطح بعد را بخوانید. سطح مناسب شما ذخیره میشود.
🌱 توضیح ساده
هر بلاکچین مثل یک کشور با پول و قوانین خودش است و بهطور طبیعی از آنچه در کشور دیگر میگذرد خبر ندارد. بیتکوین نمیداند در اتریوم چه اتفاقی افتاده و اتریوم هم نمیتواند موجودی سولانا را ببیند. «پل بینزنجیرهای» سامانهای است که این خبررسانی را انجام میدهد تا بتوان دارایی را از یک زنجیره به زنجیرهٔ دیگر «برد».
در واقع دارایی معمولاً جابهجا نمیشود. رایجترین روش مثل صرافیهای قدیمی است که سکهٔ طلا را در گاوصندوق نگه میداشتند و بهجایش رسید کاغذی میدادند. پل، توکن اصلی شما را در زنجیرهٔ مبدأ قفل میکند و در زنجیرهٔ مقصد یک «توکن پیچیده» (wrapped) به همان مقدار میسازد. این رسید تا وقتی ارزش دارد که گاوصندوق سالم باشد؛ اگر گاوصندوق خالی شود، همهٔ رسیدها بیپشتوانه میشوند.
به همین دلیل پلها یکی از پرخطرترین بخشهای دنیای رمزارزند. گاوصندوق هر پل بزرگ، صدها میلیون دلار دارایی را در یکجا جمع میکند و هدف جذابی برای هکرهاست. چند مورد از بزرگترین سرقتهای تاریخ کریپتو از پلها بوده است. اگر ناچار به استفاده از پل هستید، مبلغ را محدود کنید، فقط از آدرس رسمی استفاده کنید و بدانید به چه کسی یا چه چیزی اعتماد میکنید.
📘 توضیح متوسط
پلها از نظر جابهجایی دارایی چند الگو دارند. در «قفل و ساخت» (lock-and-mint) توکن در مبدأ قفل و نسخهٔ پیچیده در مقصد ساخته میشود و در بازگشت، نسخهٔ پیچیده سوزانده و اصل آزاد میشود. در «سوزاندن و ساخت» (burn-and-mint) که ناشران برخی توکنها استفاده میکنند، توکن در مبدأ سوزانده و در مقصد توسط خود ناشر ساخته میشود و نسخهٔ پیچیدهای در کار نیست. در «پلهای نقدینگی»، استخرهایی از دارایی بومی در هر دو زنجیره وجود دارد و پل فقط موجودیها را جابهجا میکند.
پرسش مهمتر این است که زنجیرهٔ مقصد از کجا «مطمئن» میشود که در مبدأ واقعاً چیزی قفل شده است. در «پلهای با تأییدکنندهٔ خارجی»، مجموعهای از امضاکنندگان (مثلاً ۵ از ۹ یا ۱۳ از ۱۹) رویدادهای مبدأ را تأیید میکنند؛ امنیت پل برابر امنیت کلیدهای همین گروه است. در «پلهای خوشبینانه»، پیامها پس از یک بازهٔ اعتراض پذیرفته میشوند. در «پلهای مبتنی بر کلاینت سبک یا اثبات دانش صفر»، قرارداد مقصد خودش سربرگها و اثباتهای مبدأ را بررسی میکند؛ این روش به اعتماد کمتری نیاز دارد ولی پیچیدهتر و گرانتر است. پل رسمی هر رولآپ به سمت اتریوم هم در اصل از قواعد خود رولآپ استفاده میکند.
ریسکها را میتوان در چهار دسته دید: نفوذ به کلیدهای تأییدکنندگان، باگ در قرارداد هوشمند (بهویژه در بررسی امضا یا پیام)، ریورگ یا نهایینشدن زنجیرهٔ مبدأ، و ریسک عملیاتی و حاکمیتی (کلیدهای ارتقای قرارداد، تیم کوچک، مسدودسازی). وقتی پلی هک میشود، توکنهای پیچیدهٔ آن در زنجیرهٔ مقصد ممکن است ناگهان کمپشتوانه شوند و قیمتشان از دارایی اصلی جدا شود. مثلاً اگر ۱۰۰ هزار توکن پیچیده در گردش باشد و پس از هک فقط ۶۰ هزار واحد در گاوصندوق بماند، پشتوانهٔ هر توکن به ۰٫۶ واحد میرسد.
🔬 توضیح تخصصی
Ronin، زنجیرهٔ جانبی بازی Axie Infinity، پلی با ۹ تأییدکننده داشت و برای برداشت ۵ امضا لازم بود. ۴ کلید در اختیار Sky Mavis (سازندهٔ بازی) بود و یک مجوز موقت قدیمی هم به Sky Mavis اجازه میداد از طرف تأییدکنندهٔ Axie DAO امضا کند؛ مجوزی که پس از پایان نیاز لغو نشده بود. مهاجمان با نفوذ به زیرساخت Sky Mavis به ۵ امضا رسیدند و در ۲۳ مارس ۲۰۲۲ حدود ۱۷۳٬۶۰۰ ETH و ۲۵٫۵ میلیون USDC برداشت کردند؛ حدود ۶۲۵ میلیون دلار به ارزش آن زمان. سرقت تا ۲۹ مارس، یعنی شش روز، کشف نشد و FBI در آوریل ۲۰۲۲ آن را به گروه Lazarus نسبت داد. درس فنی: آستانهٔ چندامضایی وقتی معنا دارد که کلیدها واقعاً مستقل باشند؛ ۵ از ۹ با ۴ کلید نزد یک نهاد، در عمل یعنی «یک نفوذ بهاضافهٔ یک کلید».
Wormhole در ۲ فوریهٔ ۲۰۲۲ قربانی نوع دیگری از شکست شد. قرارداد این پل روی سولانا برای بررسی امضای «نگهبانان» از تابعی منسوخ استفاده میکرد که بررسی نمیکرد حساب سیستمیِ ارجاعدادهشده واقعاً همان حساب سیستمی معتبر است. مهاجم یک حساب جعلی جایگزین کرد، بررسی امضا را دور زد و بدون هیچ وثیقهای ۱۲۰ هزار wETH روی سولانا ساخت؛ حدود ۳۲۰ میلیون دلار به ارزش آن زمان. شرکت Jump Crypto کسری را با ETH جایگزین کرد تا توکنهای پیچیده بیپشتوانه نشوند. در اوت ۲۰۲۲ هم پل Nomad بهدلیل خطایی در مقداردهی اولیهٔ قرارداد که هر پیامی را معتبر جلوه میداد، در یک «غارت جمعی» حدود ۱۹۰ میلیون دلار از دست داد. در هیچکدام از این موارد رمزنگاری پایه شکسته نشد؛ کلید و کد شکست خوردند.
معیارهای عملی ارزیابی یک پل: مدل تأیید (چند امضاکننده، چقدر مستقل، کلاینت سبک یا اثبات)، قابلیت ارتقای قراردادها و اینکه چه کسی و با چه تأخیر زمانی (timelock) میتواند ارتقا دهد، سابقهٔ ممیزی و برنامهٔ پاداش باگ، سقف برداشت و سازوکار توقف اضطراری، تعداد تأییدی که از زنجیرهٔ مبدأ صبر میکند، و حجم ارزش قفلشده بهعنوان اندازهٔ «جایزهٔ» مهاجم. از نگاه سبد دارایی، نگهداشتن بلندمدت توکن پیچیده یعنی پذیرفتن دائمی ریسک پل؛ هرجا ممکن است، نسخهٔ بومی دارایی یا نسخهای که ناشر اصلی مستقیماً در آن زنجیره صادر میکند، ریسک کمتری دارد.
🌍 مثال واقعی: هک پل Ronin (۲۳ مارس ۲۰۲۲) و پل Wormhole (۲ فوریهٔ ۲۰۲۲)
Ronin: مهاجمان با دستیابی به ۵ کلید از ۹ کلید تأییدکنندگان، دو برداشت بزرگ انجام دادند: حدود ۱۷۳٬۶۰۰ ETH و ۲۵٫۵ میلیون USDC که در زمان رویداد حدود ۶۲۵ میلیون دلار ارزش داشت. حمله شش روز بعد، در ۲۹ مارس، وقتی کاربری نتوانست برداشت کند، کشف شد. FBI در آوریل ۲۰۲۲ گروه Lazarus را مسئول دانست.
Wormhole: مهاجم با دور زدن بررسی امضا در قرارداد سولانا، ۱۲۰ هزار wETH بدون پشتوانه ساخت و بخش بزرگی از آن را به اتریوم برگرداند؛ حدود ۳۲۰ میلیون دلار به ارزش آن زمان. Jump Crypto کسری را جبران کرد.
هر دو حمله با تراکنشهای عمومی روی زنجیره ثبت شدهاند و گزارشهای پس از رویداد (post-mortem) آنها منتشر شده است؛ ارقام دلاری بر اساس قیمت روز حملهاند و امروز متفاوت خواهند بود. فهرست هکهای بزرگ را میتوانید در rekt.news یا داشبورد پلهای DefiLlama دنبال کنید.
🔤 واژگان تخصصی
سامانهای که رویدادها یا دارایی را از یک بلاکچین به بلاکچین دیگر منتقل یا بازنمایی میکند.
مثال: انتقال USDT از اتریوم به یک زنجیرهٔ دیگر از طریق یک پل.
توکنی در زنجیرهٔ مقصد که نمایندهٔ دارایی قفلشده در زنجیره یا نزد امانتدار دیگری است و ارزشش به سلامت آن پشتوانه وابسته است.
مثال: wETH روی سولانا که توسط Wormhole ساخته میشد.
الگوی پل که دارایی را در مبدأ قفل و نسخهٔ پیچیده را در مقصد میسازد و در بازگشت، نسخهٔ پیچیده را میسوزاند.
مثال: گاوصندوق قرارداد Ronin روی اتریوم دارایی کاربران را در این الگو نگه میداشت.
گروهی از امضاکنندگان بیرون از هر دو زنجیره که رویدادهای مبدأ را تأیید میکنند؛ امنیت پل برابر امنیت کلیدهای آنهاست.
مثال: پل Ronin برای برداشت ۵ امضا از ۹ تأییدکننده لازم داشت.
پلی که در آن قرارداد مقصد سربرگها و اثباتهای زنجیرهٔ مبدأ را خودش بررسی میکند و به گروه امضاکننده اعتماد نمیکند.
مثال: پلهای مبتنی بر IBC در اکوسیستم Cosmos از کلاینت سبک استفاده میکنند.
🔑 نکات کلیدی
- پل معمولاً دارایی را جابهجا نمیکند؛ آن را قفل و یک رسید (توکن پیچیده) صادر میکند که ارزشش به سلامت گاوصندوق وابسته است.
- امنیت پل همان امنیت سازوکار تأیید آن است: کلیدهای امضاکنندگان، بازهٔ اعتراض یا کلاینت سبک و اثبات.
- Ronin (مارس ۲۰۲۲) با نفوذ به ۵ کلید از ۹ و Wormhole (فوریهٔ ۲۰۲۲) با باگ بررسی امضا هک شدند؛ رمزنگاری پایه سالم بود.
- آستانهٔ چندامضایی بدون استقلال واقعی کلیدها امنیت ظاهری است.
- برای کاهش ریسک: مبلغ محدود، آدرس رسمی، ترجیح دارایی بومی، و بررسی مدل تأیید و کلیدهای ارتقا.
⚠️ اشتباهات رایج
- دانستن توکن پیچیده بهعنوان همان دارایی اصلی؛ اگر پل هک شود، ارزش آن میتواند از دارایی اصلی جدا شود.
- تکیه به شمار امضاکنندگان بدون بررسی اینکه چند کلید نزد یک نهاد است؛ Ronin نشان داد ۵ از ۹ میتواند در عمل بسیار ضعیفتر باشد.
- جستوجوی نام پل در موتور جستوجو و کلیک روی نخستین تبلیغ؛ سایتهای جعلی پل از رایجترین روشهای فیشینگاند.
- نگهداشتن مبلغ زیاد و بلندمدت در توکن پیچیده بدون آگاهی از ریسک دائمی پل.
🛠 تمرین عملی: ارزیابی ریسک یک پل واقعی بدون جابهجایی پول
- یک پل پرکاربرد را انتخاب کنید و اطلاعات آن را در L2BEAT یا مستندات رسمی پروژه پیدا کنید.
- مدل تأیید را مشخص کنید: چند امضاکننده، چه آستانهای، کلاینت سبک، اثبات یا بازهٔ اعتراض.
- بررسی کنید چه کسی میتواند قراردادها را ارتقا دهد و آیا تأخیر زمانی (timelock) وجود دارد.
- ارزش قفلشده در پل را از DefiLlama یادداشت کنید (عددی متغیر است و فقط برای همان روز معتبر است).
- گزارش پس از رویداد هک Ronin یا Wormhole را بخوانید و بنویسید کدام یک از معیارهای این درس، آن حمله را دشوارتر میکرد.
- یک جدول کوتاه از نقاط قوت و ضعف پل انتخابی تهیه کنید و نتیجه بگیرید برای چه مبلغ و چه مدتی آن را مناسب میدانید.
✅ معیار درستی: گزارش شما باید دستکم مدل تأیید، کنترل ارتقا و یک ریسک مشخص را با ارجاع به منبع قابل بررسی ذکر کند؛ هیچ تراکنش واقعی و هیچ اتصال کیف پولی در این تمرین لازم نیست.
🔒 در هیچ تمرینی از سرمایهٔ واقعی، عبارت بازیابی (Seed Phrase)، کلید خصوصی یا اتصال کیف پول اصلی استفاده نکنید.
📝 آزمون تطبیقی
هر بار ۵ سؤال از بانک ۸ سؤالی این درس انتخاب میشود؛ سؤالهایی که قبلاً اشتباه زدهاید زودتر برمیگردند. حدنصاب قبولی ۸۰٪ (۴ از ۵) است و درس بعد با قبولی باز میشود.
✍️ پرسش تشریحی
هکهای Ronin و Wormhole را مقایسه کنید: یکی شکست در مدیریت کلید و دیگری شکست در کد بود. توضیح دهید هر کدام کدام فرض امنیتی پل را نقض کرد و چه طراحی یا فرایندی میتوانست خسارت را کمتر کند.
بعد از نوشتن، پاسخ خود را با این معیارها بسنجید
خودارزیابی: هر نکتهای را که پاسخ شما بهروشنی پوشش داده علامت بزنید.
🤖 دستیار آموزشی
دستیار آفلاین آکادمی: پاسخها فقط از متن درسها و واژگان همین آکادمی پیدا میشوند و منبع هر پاسخ نشان داده میشود. هوش مصنوعی مولد نیست، حدس نمیزند و هیچ سیگنال خرید و فروشی نمیدهد.
📎 منابع مطالعاتی
🏁 معیار تسلط بر این درس: بتوانید مدل تأیید هر پل را تشخیص دهید، علت فنی دو هک بزرگ را توضیح دهید و برای یک پل واقعی ارزیابی ریسک مکتوب و مستند ارائه کنید.