نوامبر سال گذشته یک کاربر بهصورت تصادفی بیش از ۱۵۵ میلیون دلار از سرمایه خود را در سرویس کیف الکترونیکی «پریتی» متعلق به ارز مجازی «اتریوم» (ethereum) از دست داد. این کلاهبرداری در نتیجه وجود یک باگ بزرگ در این نرمافزار اتفاق افتاد که دامن این کاربر را گرفت. این اتفاق البته اولین حادثهای نبود که در کیف پول هوشمند پریتی رخ میداد. یک ماه قبل از این اتفاق، یک باگ دیگر در این سرویس باعث شد هکرها بتوانند مبلغی معادل ۳۰ میلیون دلار از ارزهای مجازی این برنامه را به سرقت ببرند. البته پریتی تنها کیف پول متعلق به اتریوم نیست که از این دسته از آسیبپذیریهای قرارداد هوشمند (Smart Contract) ضرر میکند.
در سال ۲۰۱۶، هکرها موفق شدند مبلغی برابر با ۱۵ درصد از سرمایه در گردش اتریوم را به سرقت ببرند. این اتفاق باعث ایجاد یک شکاف بزرگ در کسب و کار اتریوم شد و در نتیجه آن اتریوم مجبور شد سیستم بلاکچین و ارز مجازی خود را بهطور کامل تغییر دهد و نسخه جدیدی از پول مجازی برای مشتریانش معرفی کند. همانند بسیاری دیگر از سرقتها که از زمان ظهور اتریوم در سال ۲۰۱۵ تا به حال در این زمینه صورت گرفته، اکثر این اتفاقات و باگها به «پروتکلهای هوشمند» مربوط میشود. پروتکل هوشمند همان کدی است که روی بلاکچین اتریوم قرار دارد و امکان خلق اپلیکیشنهای غیرمتمرکز را فراهم میکند. پروتکلهای هوشمند یکی از مهمترین بخشهای صنعت بلاکچین محسوب میشود و بهرغم هکهای صورت گرفته که در بالا به آنها اشاره کردیم اما همچنان استفاده از این پروتکلها در حال افزایش است. این پروتکلها در عین اینکه کاربردی هستند، یکی از اهداف مورد علاقه هکرها هم محسوب میشوند و اگر متخصصان پروسههای نظارتی و حسابرسی هوشمندتری را برای آن طراحی نکنند، همچنان شاهد وقوع چنین حملات و سرقتهایی در این بخش خواهیم بود. شاید هم راه حل این مشکل در بهکارگیری قرارداد هوشمندتر باشد.
مشکلات تامین امنیت قرارداد هوشمند
قرارداد هوشمند مانند دیگر برنامههایی که روی کامپیوترها وجود دارند، یک کد است، با این حال یکسری عوامل باعث میشوند قرارداد هوشمند از جنبه امنیتی نسبت به دیگر برنامهها حساستر باشند. در ادامه به این عوامل اشاره کردهایم. اول اینکه مانند تراکنشهای بلاکچین، قرارداد هوشمند هم تغییرناپذیر هستند. پس از اینکه برنامهنویسان قرارداد هوشمند را اجرایی میکنند، دیگر امکان ایجاد تغییر در آنها وجود نخواهد داشت. همین مساله هم باعث میشود باگهایی که در این پروتکلها وجود دارند «غیرقابل رفع» باشند. البته تلاشهای بسیاری در جهت رفع باگهای موجود در قراردادهای هوشمند انجام شده اما پروسه رفع این باگها بسیار پیچیده و مشکل هستند. دوم اینکه قرارداد هوشمند مستقیما به پرداختها متصل هستند و میتوانند حاوی میلیونها دلار ارز دیجیتال باشند. تفاوت زیادی بین باگ یک نرمافزار که امکان دسترسی هکرها به تصاویر شخصی شما را میدهند و باگ قرارداد هوشمند که امکان دسترسی به سرمایه دیجیتال شما را میدهد، وجود دارد.
سوم اینکه قرارداد هوشمند فعلا در مراحل ابتدایی کار خود قرار دارد و حتی ۱۰ سال از ظهور آنها نمیگذرد. میتوان گفت برنامهنویسان هنوز بهترین و مطمئنترین کدها و طراحیهای لازم را برای اپلیکیشنهای غیرمتمرکز و قرارداد هوشمند خلق نکردهاند و فعلا زمان لازم است. این دلایل باعث میشوند نظارت و بررسی امنیت قرارداد هوشمند بیش از حد اهمیت پیدا کند چون با اینکه نرمافزارهای سنتی شامل چرخه «ساخت-انتشار-رفع عیب» میشوند اما قرارداد هوشمند تنها شامل یک قدم میشود و در همان مرحله اول همه چیز باید بدون نقص طراحی شده باشد چون امکان ایجاد تغییر پس از انتشار این دسته از قراردادها وجود ندارد. البته امکان تغییر این قرارداد در یک حالت وجود دارد که این روش باعث از دست رفتن میلیونها دلار از سرمایه و البته بخش اعظمی از اعتبار شما در دنیای ارزهای دیجیتال خواهد شد.
نظارت بر قراردادهای هوشمند
بسیاری از شرکتها یک قدم فراتر رفته و خدمات نظارتی و حسابرسی را برای تراکنشها ارزهای دیجیتال خود در نظر گرفتهاند که این سرویسها کدهای مرتبط با قرارداد هوشمند را بررسی کرده و بازخوردهای مرتبط با کیفیت و امنیت آنها را به شرکتها گزارش میکنند. این پروسه به خدمات امنیتی که در بخش نرمافزارهای سنتی انجام میشوند، شباهت دارد. با این حال هزینه نظارت بر قراردادهای هوشمند از طریق این سرویسها بالا است و بسیاری از استارتآپهایی که در زمینه ارزهای دیجیتال فعالیت میکنند ممکن است نتوانند از پس این هزینهها برآیند. مشکل بعدی اینکه سرمایهگذاران و کاربرانی که از ارزهای دیجیتال این شرکتها استفاده میکنند قادر به مشاهده این سرویسهای نظارتی نخواهند بود که این مساله خلاف عرف حاکم در صنعت بلاکچین است. در دنیای بلاکچین همهچیز بر پایه شفافیت بنا شده و تمامی پروسهها و اتفاقات برای همه قابل مشاهده است. حال روش جایگزینی که بهتازگی استفاده میشود، استفاده از بلاکچین و قراردادهای هوشمند جهت خلق پروسههای نظارتی شفاف و مطمئن است که در آن تمامی گروههایی که در زمینه نظارت و ایمنسازی یک پروتکل نقش دارند سهم خواهند داشت.
شرکت «سالیدیفاید» (Solidified) که تجربه زیادی در نظارت و حفظ امنیت قراردادهای هوشمند تعدادی از پروژههای مهم اتریوم داشته، در حال راهاندازی نوعی «شبکه تشخیص باگهای برنامههای غیرمتمرکز» است تا از طریق آن بتواند امنیت قراردادهای هوشمند سیستمهای بلاکچین مختلف را تایید و تامین کند. خلاقیت و نکته مثبت این بازار تشخیص باگ این است که با این روش تمامی گروههایی که در زمینه بررسی قرارداد هوشمند نقش دارند از لحاظ کیفیت کار بهطور منصفانه تشویق یا تنبیه میشوند. با کمک شرکت سالیدیفاید برنامهنویسان میتوانند سریعا تقاضای نظارت بر قرارداد هوشمند خود را اعلام کنند. پس از اعلام تقاضا، بازرسان قرارداد هوشمند این شرکت که شامل بیش از ۲۰۰ متخصص میشود، شرایط و دستمزد دریافتی خود را اعلام میکنند و در صورتی که برنامهنویس و ناظران به توافق برسند، پروژه بررسی و نظارت بر قرارداد هوشمند آغاز میشود.
متخصصان شرکت پس از توافق، بررسی کدها را آغاز کرده و یافتههای خود را با برنامهنویسان به اشتراک میگذارند و آنها را از باگهای موجود در کدها باخبر کرده و به برنامهنویس فرصت تصحیح کدها را میدهند. اما قبل از اینکه متخصصان ناظر دستمزدشان را دریافت کنند، کدهای تصحیح شده از سوی این متخصصان برای تست و بررسی با شبکه گستردهتری از افراد متخصص در نظارت بر قرارداد هوشمند در سراسر دنیا بهاشتراک گذاشته میشود. در صورتی که این ناظرها بتوانند باگهای جدیدی در کدها کشف کنند، آنها هم در دستمزد نهایی این پروژه سهیم خواهند شد و مبلغی دریافت خواهند کرد. این شیوه از نظارت و بازرسی پروتکلهای هوشمند و همچنین این نوع از پرداخت دستمزد بر اساس عملکرد باعث میشود نظارت و بازرسی در بالاترین سطح و کیفیت ممکن انجام بگیرد.
شبکه نظارت بر باگها
بازرسی کدها و تصحیح باگها چیز جدیدی نیست. بسیاری از کمپانیهای بزرگ دنیا و سرویسهای دولتی بهطور مرتب برای اطمینان یافتن از امنیت برنامههای خود هرچند وقت یکبار چنین بازرسیهایی را انجام میدهند. با این حال نظارت بر کدهای بلاکچین و قرارداد هوشمند مزیتهای متعددی دارد که باعث میشود ارزش آن از نظارت بر کدهای معمولی بالاتر باشد. اول اینکه این روش باعث بهوجود آمدن شفافیت میشود. هر چیز و هرکس که در پروسه نظارت شرکت داشته روی شبکه بلاکچین ثبتنام میشود و برای بررسی قابل دسترس خواهد بود. این مساله برای سرمایهگذاری کاربران بسیار اهمیت دارد چرا که قادر خواهند بود تاریخچه پروسه بازرسی بر معاملاتشان را مشاهده کنند و شخصا تشخیص دهند که معاملاتشان از سوی افراد حرفهای نظارت و عیبیابی شده یا خیر. دوم اینکه این پروسه باعث ایجاد اطمینان کافی در تعیین مقدار امنیت یک قرارداد هوشمند توسط شرکت میشود. این اطمینان در نتیجه نظارت و بررسی دقیق متخصصان قراردادهای هوشمند به دست میآید و باعث میشود در آینده از آن بهعنوان یک سیستم هشدار به افراد استفاده کرد و از کاربران خواسته شود قبل از اینکه باگ موجود در قرارداد توسط هکرها شناسایی شود سریعا از آن قرارداد خارج شوند و از این طریق از سرقت و هدر رفتن سرمایه افراد جلوگیری کرد.
سوم اینکه نظارت بر کدهای بلاکچین به روش شرکت سالیدیفاید باعث افزایش انگیزه بازرسان میشود که در نتیجه آن باگهای بیشتری کشف و رفع میشوند. ناظران پس از گزارش یک باگ علاوه بر دریافت دستمزد، از طرف شرکت سالیدیفاید هم مقداری ارز مجازی Solid دریافت میکنند البته در صورتی که در پروژههای بعدی اشتباه کنند آن را از دست خواهند داد. این روش باعث ایجاد انگیزه و همچنین افزایش دقت ناظران قراردادهای هوشمند شده است. ضمنا شرکت سالیدیفاید قصد دارد گستره نظارت خود را افزایش دهد و متخصصان بیشتری را بهکار بگیرد. در حال حاضر سالیدیفاید نظارت را از طریق لیستی از متخصصان فعال در شرکت خود انجام میدهد اما شرکت قول داده در آینده این فرصت را در اختیار تمامی افرادی که مایل هستند از این روش کسب درآمد کنند قرار دهد. در گذشته این باور وجود داشت که هیچ نرمافزار پروتکل هوشمندی با امنیت ۱۰۰ درصد وجود ندارد اما ظاهرا با اقدامات انجام شده در این زمینه توسط سالیدیفاید و متخصصان آن، بهتر است کمکم باورهایمان را تغییر دهیم.