باگ تقسیم زنجیر در کلاینت go-ethereum

پروژه اتریوم از توسعه‌دهندگان خواست با نصب یک وصله فوری از یک آسیب‌پذیری مهم جلوگیری کنند. این آسیب‌پذیری از نوع تقسیم زنجیر است و پیاده‌سازی اتریوم به زبان گو (Geth) را تحت تأثیر قرار می‌دهد.

 باگ تقسیم زنجیر در کلاینت go-ethereum

اتریوم (Ethereum) یک پروتکل رمزارز مبتنی بر بلاکچین است که از رمزارز اتر (Ether) پشتیبانی می‌کند و با استفاده از آن می‌توان قراردادهای هوشمند را نیز ایجاد کرد. باگ‌های تقسیم زنجیر (chain-split) می‌توانند در سرویس‌های بلاکچین اختلال ایجاد کنند و باعث خاموشی‌های گسترده‌ای شوند که یک مورد از آنها سال گذشته اتفاق افتاد.

در این هفته، مسئولین پروژه اتریوم، کاربرانی که از go-ethereum استفاده می‌کنند را تشویق کردند تا به نسخه 1.10.8 مهاجرت کنند که یک آسیب‌پذیری با حساسیت بالا را رفع می‌کند. Geth یا go-ethereum، یکی از کلاینت‌های اتریوم است که به زبان گو (Go) نوشته شده است.

این باگ می‌تواند باعث تقسیم زنجیر شود، یعنی نمونه‌های آسیب‌پذیر Geth، زنجیره‌های کانونی (canonical chain) را نمی‌پذیرند. Guido Vranken، متخصص فازینگ و عضو شرکت Sentnl این باگ را کشف کرده است.

توسعه‌دهندگان Geth، چند روز پیش، از انتشار نسخه جدید خبر داده بودند، اما جزئیات زیادی را منتشر نکردند تا اکثر کاربران فرصت به‌روزرسانی را پیدا کنند. Péter Szilágyi، مدیر تیم اتریوم می‌گوید: همه نسخه‌های Geth که از انشعاب «لندن» پشتیبانی می‌کنند، آسیب‌پذیر هستند (این باگ از لندن قدیمی‌تر است) بنابراین همه کاربران باید به‌روزرسانی را انجام دهند.

در دنیای رمزارزها، گاهی یک پروتکل کاملاً جدید ارائه می‌شود و بلاکچین را به دو انشعاب سخت (hard fork) تقسیم می‌کند. در مورد اتریوم، نام شهرهایی که کنفرانس مربوط به این رمزارز در آنها برگزار شده به انشعاب‌های سخت تعلق می‌گیرد (مثل استانبول، برلین و…). لندن، نام انشعابی است که به تازگی فعال شده است.

آسیب‌پذیری‌های تقسیم زنجیر در بلاکچین می‌توانند خطرساز شوند، زیرا بهره‌برداری از آنها می‌تواند باعث خاموشی شده و برداشت‌های رمزارزی و صحت کل بلاکچین را تحت تأثیر قرار دهد. چنین اتفاقی سال گذشته رخ داد، وقتی سرویس‌های مبتنی بر شبکه اتریوم دچار خاموشی شدند و برداشت‌ها با خطا مواجه شدند. آن سانحه نیز از یک کلاینت go-ethereum نشئت می‌گرفت.

تقسیم زنجیر وقتی رخ می‌دهد که کلاینت‌های مختلف اتریوم نمی‌توانند توافق کنند که چه تراکنشی مجاز و چه تراکنشی غیرمجاز است. در اتریوم، یک کامپیوتر کانونی وجود دارد که با نام (EVM) نیز شناخته می‌شود. این کامپیوتر یک وضعیت یا به عبارتی مجموعه‌ای از رکوردها را نگه می‌دارد که همه گره‌های اتریوم روی آن توافق دارند. البته EVM یک کامپیوتر واحد نیست، بلکه از هزاران کامپیوتر تشکیل شده که یک کلاینت اتریوم را اجرا می‌کنند.

همه سرویس‌های اتریوم یک کپی از محتویات EVM را نگه می‌دارند. اما اگر تقسیم زنجیر اتفاق بیفتد، سرویس‌های مختلف، رکوردهای متفاوتی را نشان خواهند داد و در نتیجه صحت و قابلیت اطمینان شبکه رمزارز تحت تأثیر قرار می‌گیرد. Dimos Raptis از مهندسان شرکت R3 می‌گوید احتمال اینکه کسی تصادفاً این باگ را فعال کند کم است، اما احتمال اینکه کسی به طور بدخواهانه آن را فعال کند را نمی‌توان نادیده گرفت.

 

منبع: Bleeping Computer

کلمات کلیدی