اسکریپت های بلاکچین: خطرات و روشهای سوء استفاده در دنیای ارزهای دیجیتال

اسکریپت در زمینه بلاکچین به عنوان یک نوع کد، نقشی اساسی در زمینههایی چون اجرای قراردادهای هوشمند، مدیریت انتقال توکنها و ایجاد منطق برای اپلیکیشنهای غیرمتمرکز دارد. توسعهدهندگان در حوزه ارزهای دیجیتال با استفاده از زبانهایی مانند پایتون (فریمورک Brownie)، جاوا اسکریپت (فریمورکهای Truffle و HardHat) و سالیدیتی (فریمورک Foundry) امکانات مختلفی را برای بهبود عملکرد شبکههای بلاکچینی ایجاد میکنند. در این مقاله، به بررسی انواع قابلیتهای بلاکچینی که با استفاده از اسکریپت ایجاد شدهاند و همچنین چگونگی سوءاستفاده هکرها از این کدها خواهیم پرداخت. همراه فارسی سواپ باشید تا بیشتر در این خصوص بدانید.
نقش اسکریپت در بلاکچین چیست؟
اسکریپتها در بلاکچین برای ایجاد و اجرای کدهایی به کار میروند که فرآیندهای مختلف مانند تراکنش و تعامل در شبکههای بلاکچینی را تعریف و کنترل میکنند. برخی از مهمترین ویژگیهای بلاکچین که به واسطه اسکریپت به وجود آمدهاند، عبارتند از:
- قراردادهای هوشمند: امروزه بلاکچینهای متعددی از این قراردادها بهرهبرداری میکنند. اسکریپتها میتوانند برای آزمایش و تعامل با این قراردادها استفاده شوند. این نوع قرارداد به طور خودکار در صورت تحقق شرایط خاصی، اجرا میشود. به عنوان مثال، اسکریپتی میتواند طراحی شود که فرایند فروش یک توکن را به عهده بگیرد و به محض تأیید پرداخت کاربر، توکنها را در اختیار او قرار دهد.
- رباتهای معاملاتی: این اسکریپتها میتوانند برای توسعه رباتهایی در نظر گرفته شوند که به صورت اتوماتیک استراتژیهای معاملاتی مختلف را انجام میدهند. به طور مثال، رباتهای آربیتراژ میتوانند تغییر قیمتها در صرافیهای مختلف را شناسایی کرده و به طور خودکار اقدام به ثبت تراکنشهایی کنند که از این اختلاف قیمت سود میبرند. به عنوان مثال، یک ربات آربیتراژ میتواند بیت کوین را با قیمتی کمتر از یک صرافی خریداری کرده و بلافاصله آن را در صرافی دیگر که قیمت بالاتری دارد، به فروش برساند.
- زبانهای اسکریپتنویسی: توسعه بلاکچینها به کمک زبانهای اسکریپتنویسی انجام میشود. به عنوان مثال، زبان اسکریپت بیت کوین در شبکه بلاکچین بیت کوین دارای ویژگیهایی است که به توسعهدهندگان این امکان را میدهد تا تراکنشهای چندامضایی را ایجاد کنند.
- پردازش خودکار تراکنشها: از طریق اسکریپت، امکان پردازش خودکار تراکنشها فراهم میشود. به عنوان نمونه، یک اپلیکیشن غیرمتمرکز میتواند با کمک اسکریپتنویسی، مراحل معاملات، وامدهی و وامگیری را به صورت اتوماتیک به انجام برساند. اتوماسیون این فرآیندها باعث افزایش کارآمدی سیستم و کاهش احتمال خطاها میشود.
- ایجاد صرافیهای دیجیتال: توسعهدهندگان میتوانند با استفاده از اسکریپتها، بسترهای جدید معاملاتی ایجاد کرده و به طراحی صرافیهای غیرمتمرکز پرداخته و امکان معامله همتا به همتا را فراهم سازند.
چگونه هکرها از اسکریپتها سوءاستفاده میکنند؟

اسکریپت در بلاکچین یکی از ابزارهای کلیدی برای پیشرفت و اتوماسیون در محیطهای غیرمتمرکز است. اما متأسفانه این ابزار میتواند به عنوان وسیلهای برای هکرها نیز عمل کند، بهخصوص در مواقعی که ضعفهای امنیتی در اسکریپتهای موجود وجود دارد. این ضعفها میتوانند به تهدیدی جدی برای قراردادهای هوشمند، اپلیکیشنهای غیرمتمرکز و حتی خود شبکههای بلاکچینی تبدیل شوند. هکرها با استفاده از تکنیکهای مختلف اسکریپتنویسی قادر به انجام فعالیتهای مخرب نظیر سرقت دارایی و دستکاری دادهها هستند. در ادامه به برخی از روشهای متداولی که هکرها برای سوءاستفاده از اسکریپت در بلاکچین به کار میبرند، میپردازیم:
- حملات ریاینترنسی (Reentrancy): این نوع حمله زمانی رخ میدهد که یک تابع در یک قرارداد هوشمند چندین بار فراخوانی میشود. این به هکر این امکان را میدهد که به طور متوالی از قرارداد برداشت کند. به عنوان مثال، حادثه هک DAO در سال ۲۰۱۶ نمونهای از این نوع حمله است که منجر به سرقت ۶۰ میلیون دلار اتریوم شد. این حمله از ضعفهای امنیتی ناشی از عدم قفلگذاری صحیح داراییها استفاده کرد.
- مشکلات منطقی (Logic Flaws): حتی کوچکترین خطا در منطق کد میتواند تأثیرات جدی داشته باشد و منجر به از دست رفتن مقدار زیادی از دارایی شود. برای مثال، یک اسکریپت ممکن است نتواند دسترسی غیرمجاز را محدود کند. در یک مورد معروف، ایرادی ناچیز درهیچ کیف پول پریتی (Parity Wallet) بیش از ۳۰۰ میلیون اتریوم را فریز کرد و باعث اختلال در فعالیت هزاران کاربر شد.
- سرریز و پاریز عدد صحیح (Integer Overflow/Underflow): در زبان برنامهنویسی سالیدیتی، ممکن است محاسبات عدد صحیح از محدوده مجاز فراتر برود. اگر یک قرارداد نتواند از این فرایند جلوگیری کند، کاربر میتواند با ایجاد توکنهای جدید موجودی یک ارز دیجیتال را به طور ناگهانی افزایش دهد و با فروش این توکنها، سود هنگفتی کسب کند. این نوع حمله بهخصوص در قراردادهای قفل دارایی که زمانبندی خاصی دارند، میتواند آسیبزننده باشد.
- فرانت رانینگ (Front-Running): اطلاعات تراکنشها در بلاکچین برای همگان قابل مشاهده است. رباتهای فرانت رانینگ میتوانند تراکنشهایی که در واسطهها قرار دارند را بیرون آورده و با کارمزد بالاتر، تراکنشهای مشابهی را سریعتر ثبت کنند. به این ترتیب، هکرها میتوانند از نوسانات ایجاد شده در قیمت ناشی از تراکنشهای بزرگ بهرهبرداری کنند.
این موارد تنها بخشی از خطرات ناشی از اسکریپتنویسی ضعیف در بلاکچین است. به همین دلیل لازم است توسعهدهندگان و کاربران با آگاهی کامل از این تهدیدات، اقدام به طراحی و استفاده از قراردادهای هوشمند و سایر اپلیکیشنهای بلاکچینی نمایند.
بررسی برخی از حملات بزرگ در بلاکچین

در دنیای کریپتو، هکها و حملات سایبری به هیچ عنوان نادر به شمار نمیروند، بهویژه زمانی که ضعفهای کدها بروز پیدا میکنند. در این بخش، به بررسی چهار مورد از شناختهشدهترین حملات سایبری در این حوزه خواهیم پرداخت:
- هک دائو (The DAO): این حادثه در سال ۲۰۱۶ به وقوع پیوست و به دلیل یک آسیبپذیری امنیتی در سازمان خودگردان غیرمتمرکز اتریوم، باعث از دست رفتن بیش از ۶۰ میلیون دلار دارایی شد. این حمله به تغییر جدی سرنوشت شبکه اتریوم و ایجاد دو ارز دیجیتال اتریوم و اتریوم کلاسیک انجامید.
- هک پریتی والت (Parity Wallet): در سال ۲۰۱۷، دو آسیبپذیری مهم در سیستم کیف پول پریتی شناسایی شد. اولین مورد در سیستم چندامضایی آن، به سرقت ۳۰ میلیون دلار دارایی منجر شد. بعد از آن، یک باگ دیگر موجب فریز شدن بیش از ۳۰۰ میلیون دلار از داراییها در قالب ETH شد که مشکلات جدی برای کاربران به همراه آورد.
- حمله به پروتکل بیزدایکس (bZx Protocol): در سال ۲۰۲۰، پروتکل دیفای bZx با چندین حمله فلش لون (Flash Loan) روبهرو شد. در این حملات، هکرها توانستند با دستکاری قیمتها از طریق اسکریپتها، مبالغ قابل توجهی را سرقت کنند.
- اکسپلویت پالی نتورک (Poly Network): سال ۲۰۲۱، پلتفرم چندزنجیرهای پالی نتورک هدف یک حمله سایبری بزرگ قرار گرفت. آسیبپذیری در ناحیه مدیریت تأیید تراکنشهای بین زنجیرهای، به هکرها اجازه داد ۶۱۰ میلیون دلار ارز دیجیتال را از این پلتفرم به سرقت ببرند.
اسکریپت در بلاکچین؛ ابزاری قدرتمند یا یک شمشیر دو لبه؟
اسکریپتها در بلاکچین کارآییهای بسیاری دارند و از تراکنشهای ساده تا برنامههای غیرمتمرکز پیشرفته با در نظر گرفتن آنها شکل میگیرد. هماکنون، شاهد توسعه زبانهای اسکریپتنویسی مانند سالیدتی هستیم که بلاکچین را به عنوان یک بستر جامع برای نوآوریهای توسعهدهندگان مطرح میسازد. با این حال، این وابستگی به اسکریپت و اتوماسیون فرایندها سبب بروز چالشهای امنیتی جدیدی نیز شده است. خصوصیت متن باز بلاکچین و اطلاعات شفاف آن هکرها را به استفاده از روشهای پیچیدهتری از جمله یافتن نقاط ضعف در اسکریپتها و سوءاستفاده از آنها ترغیب میکند. از طغیانیان مختلف مانند فرانت رانینگ تا اجرای اسکریپتهای پیشرفته، حملات به دنیای بلاکچین گسترش یافته است. بنابراین همزمان با پیشرفت تکنولوژی بلاکچین و زبانهای اسکریپتنویسی، نیاز به بررسی دقیق ضعفهای موجود و حسابرسی منظم برای آسیبپذیریها بیشتر احساس میشود.
همهجا طلا یه قیمت نیست
چندکس رو باز کن و ببین چطور با یه بودجه ثابت، بیشترین طلا رو از بهترین پلتفرم میگیری. مقایسه کن تا ضرر نکنی!





