امنیت بلاک چین چطور تامین میشود؟
امنیت بلاک چین با ارتباط دادن دادههای ذخیرهشده به هم، بهگونهای تامین میشود که نفوذ به شبکه نیازمند زمان و هزینه قابل توجهی باشد و در یک کلام، مقرون به صرفه نباشد.
ساختار فناوری بلاک چین به گونهای است که بستری امن برای ذخیره اطلاعات فراهم میکند. امنیت بلاک چین با مفاهیمی مثل رمزنگاری، غیرمتمرکز بودن و قوانین اجماع گره خورده است و همه این عوامل در نهایت باعث میشود تراکنشهای شبکه بهصورت امن و قابل اعتماد انجام شود. نحوه پردازش و ذخیرهی اطلاعات در سیستمهای «دفترکل توزیع شده» (Distributed Ledger) مثل بلاک چینها، نشان میدهد که اطلاعات تا چه حد به یکدیگر مرتبط هستند و برای دستکاری و نفوذ آنها، چه مقدار زمان و چه هزینهای نیاز است.
هیچ سیستمی وجود ندارد که صد درصد در برابر همه خطرهای موجود مقاوم باشد؛ اما در طراحی سیستمهای امن همیشه تلاش بر این بوده که مدت زمان و هزینه لازم برای نفوذ و خرابکاری در آنها به قدری زیاد باشد که انجام آن عقلانی و مقرون به صرفه نباشد. بلاک چین این کار را با مفهوم بلاکهای متصل به هم و همچنین تراکنشهای متصل به هم در بلاکها انجام داده است. با ما همراه باشید تا بیشتر در مورد امنیت بلاک چین، انواع حملات و نکات ایمنی موجود در این زمینه صحبت کنیم.
امنیت بلاک چین
بلاک چینها ساختار بسیار منسجمی دارند و فرایند پردازش و ذخیرهی اطلاعات را با استفاده از مکانیزمهای پیشرفته رمزنگاری و راهحلهای ریاضی انجام میدهند. همین موضوع باعث شده که «رمزارزها» (Cryptocurrencies) روی این بستر پیادهسازی شوند تا بتوانند از امنیت بلاک چین استفاده کنند. البته بهجز پروژههای رمزارزها، هر مجموعهای که در آن امنیت و ثبات دادهها اولویت داشته باشد، از جمله اطلاعات پزشکی، مدیریت زنجیره تامین و غیره میتوانند از بلاک چین استفاده کنند.
برای درک بهتر موضوع امنیت بلاک چین، باید بدانیم که چند نوع بلاک چین وجود دارد و هر کدام چه دسترسیهایی به کاربرها میدهند. دو دستهبندی برای انواع بلاک چین وجود دارد. در دسته اول با توجه به اینکه چه افرادی در پردازش اطلاعات مشارکت دارند، بلاک چینهای «عمومی» (Public) و «خصوصی» (Private) را داریم و در دسته دوم با توجه به اینکه چه افرادی به شبکه دسترسی دارند، بلاک چینهای Permissioned و Permissionless را خواهیم داشت.
یک بلاک چین عمومی مثل «بیت کوین» (Bitcoin) به همه اجازه میدهد که به شبکه بپیوندند و در تایید تراکنشها مشارکت کنند. بلاک چینهای خصوصی که اکثرا متعلق به شرکتهای خصوصیاند، هویت اعضا را قبل از پیوستن و فعالیت در شبکه بررسی میکنند و این کار توسط یک واحد مرکزی کنترل میشود. در بلاک چین Permissionless محدودیتی در پردازشگرهای شبکه وجود ندارد ولی در نوع Permissioned فقط افراد احراز هویت شده، اجازه دخالت دارند.
برای ساخت یک برنامه کاربردی روی بلاک چین، باید به این نکته توجه شود که کدام یک از ویژگیهای بلاک چینها تناسب بیشتری با نیازهای کسب و کار مورد نظر دارد. بلاک چینهای عمومی و Permissionless بیشترین قابلیت توزیعشدگی و غیرمتمرکز بودنِ دادهها را ارائه میکنند، در صورتی که بلاک چینهای خصوصی و Permissined بیشتر مناسب اهداف نظارتی و قانونگذاری هستند چون قابلیت اعمال محدودیتها را دارند.
چه چیزی امنیت بلاک چین را تأمین می کند؟
اگر بخواهیم نگاهی کلی به اتفاقات درون یک بلاک چین عمومی مثل بیت کوین بیندازیم، بلاکهایی را میبینیم که هر کدام شامل مجموعهای از تراکنشها هستند. هر بلاک جدید به روش خاصی رمزنگاری و به مجموعهی بلاکهای قبلی اضافه میشود بهطوری که دستکاری اطلاعات هر بلاک بدون اینکه بقیهی آنها تغییر کنند، تقریباً غیرممکن است. تمام تراکنشهای درون هر بلاک نیز طبق یک الگوریتم اجماع، بررسی و تأیید میشوند تا تکتک آنها صحیح و معتبر باشند. امنیت بلاک چین در اثر همکاری غیرمتمرکز، یعنی مشارکت تمام اعضای شبکه شکل میگیرد و هیچ فردی به تنهایی نمیتواند تراکنش یا بلاکی را دستکاری کند. با این وجود، همهی بلاک چینها مثل هم نیستند و ساختار و قوانین اجماع مختلفی دارند، پس درجهی امنیتی آنها هم متفاوت خواهد بود.
نقش الگوریتم اجماع و تغییرناپذیری در امنیت بلاک چین
«الگوریتمهای اجماع» (Consensus Algorithms) و «تغییرناپذیری» (Immutability) را میتوان دو مورد از مهمترین فاکتورها در تأمین امنیت بلاک چین دانست. اعضا یا همان «نودها» (Nodes) به کمک الگوریتمهای اجماع میتوانند صحت تراکنشها و در نتیجه حالت کلی شبکه را به صورت غیرمتمرکز اداره کنند.
ویژگی تغییرناپذیری به عنوان فاکتور مهم بعدی در تأمین امنیت بلاک چین، به قابلیت این فناوری در نگهداری از اطلاعات تراکنشهایِ تأییدشده و جلوگیری از دستکاری و تغییر در آنها مربوط میشود. این تراکنشها در بیشتر مواقع مربوط به جابهجایی رمزارزها هستند، ولی میتوانند شامل اطلاعات دیجیتال دیگری هم باشند که هرگز نباید بعد از ذخیره شدن، دستکاری شوند.
با استفاده همزمان از این دو فاکتور میتوان یک بلاک چین امن را پیادهسازی کرد. شبکه به کمک الگوریتمهای اجماع مطمئن میشود که پردازشها مطابق قوانین انجام میشوند و اکثریت اعضا در تعیین وضعیت فعلی شبکه مشارکت کرده و موافقت خود را اعلام میکنند. در طرف مقابل، ویژگی تغییرناپذیری تضمین میکند که تمام تراکنشهای درون بلاکهای تأییدشده، به همان صورت خواهند ماند و هرگز تغییر نخواهند کرد و به این ترتیب امنیت بلاک چین تأمین میشود.
نقش رمزنگاری در امنیت بلاک چین
«رمزنگاری» یا کریپتوگرافی (Cryptography) یکی از اصول پایه در تأمین امنیت بلاک چینها است که در بیشتر مواقع برای این کار از توابع هش رمزنگاری استفاده میشود. این توابع اطلاعات را به عنوان ورودی دریافت کرده و خروجیهایی رمزنگاریشده با اندازه ثابت تولید میکنند. اندازه ورودیها در عملیات «هشینگ» (Hashing) میتواند هر مقدار دلخواهی داشته باشد، اما اندازه خروجی همواره ثابت است و تا ورودی تغییر نکند، خروجی جدید تولید نخواهد شد. نکته مهم در عملیات هش این است که این فرایند یک طرفه بوده و از روی خروجی، نمیتوان ورودی اولیه را پیدا کرد.
اطلاعات تراکنشها قبل از اینکه درون یک بلاک قرار بگیرند، هش میشوند و به این ترتیب همه تراکنشهای یک بلاک به هم مرتبط شده و در نهایت بلاک حاوی آنها نیز هش شده و در این عملیات از هش بلاک قبلی هم استفاده می شود؛ به این معنی که تمام اطلاعات در قالب زنجیرهای رمزنگاریشده روی بلاک چین ذخیره میشوند که دستکاری و تغییر آنها کاری بسیار بسیار سخت خواهد بود.
علاوه بر این، از رمزنگاری در فرایند ساخت «کلید عمومی» (Public Key) و «کلید خصوصی» (Private key) هم استفاده میشود. کاربرد این دو کلید در زمان ارسال و دریافت تراکنشها در بلاک چین است و به نوعی نقش شماره حساب و رمز حساب را ایفا میکنند. به این روش از ساخت رمزها برای ارسال تراکنشها، «رمزنگاری کلید عمومی» (Asymetric or Public-Key Cryptography) گفته میشود که در آن، اجازه برداشت از حساب تنها در اختیار فردی است که کلید خصوصی آدرس مربوطه را داشته باشد.
آیا می توان بلاک چین را هک کرد؟
احتمال نفوذ و هک شدن هیچ سیستمی صفر نیست ولی تمام راهکارهای امنیتی تلاش میکنند این احتمال را به صفر نزدیک و نزدیکتر کنند. همانطور که تا اینجا متوجه شدیم، امنیت بلاک چین به ساختار و الگوریتمهای استفاده شده در آن بستگی دارد، ولی بهطور کلی میتوان گفت که هک کردن کل یک شبکه بلاک چین، کار بسیار سختی است. به عنوان مثال، بیش از ۱۲ سال است که بلاک چین بیت کوین ساخته شده و میلیونها تراکنش در «لجر» (Ledger) یا همان دفترکل بیت کوین ثبت شده، ولی تابهحال شبکه آن هک نشده است.
به لطف سیستم توزیعشده و الگوریتم «گواه اثبات کار» (PoW)، تابع هش SHA-256 و قدرت بسیار زیاد پردازشی شبکه (همان ماینرها)، برای هک کردن شبکه بیت کوین به میلیاردها دلار پول نیاز است و فردی که بخواهد این کار را بکند، بهشدت متضرر خواهد شد. چون قیمت ارزِ هر شبکهای که هک شود، بهشدت سقوط میکند؛ یعنی حتی اگر این کار شدنی باشد، توجیه اقتصادی ندارد.
نکته دیگری که در این زمینه وجود دارد، پلتفرمهای ذخیره یا مبادله رمزارزها، یعنی همان کیف پولها و صرافیها هستند. کیف پولها و صرافیها نیز انواع مختلفی دارند (مثل کیف پولهای متصدی و غیرمتصدی و صرافیهای متمرکز و غیرمتمرکز) و یکی از موضوعات مرتبط با بحث امنیت بلاک چین بهشمار میروند. بارها شنیدهایم که داراییهای کیف پول یا اطلاعات و داراییهای کاربرهای یک صرافی به سرقت رفته است. این پلتفرمها به عنوان واسطه، به کاربرهای حوزه کریپتو سرویس میدهند و احتمال هک شدن آنها نسبت به شبکه بلاک چین اصلی بیشتر است.
انواع حملات امنیتی به بلاک چین
بیشتر شبکههای بلاک چینی بستری برای رمزارزها هستند و این رمزارزها در حقیقت نقش پول را دارند و هر جا که پول زیادی ذخیره شده باشد، مورد توجه خلافکارها و هکرهاست. نباید فراموش کنیم که هک کردن یک سیستم مالی نرمافزاری، مخصوصا از نوع غیرمتمرکز، فرایندی بسیار پیچیده و فنی است و ای کاش زمان و هزینهای که صرف این نوع کارها میشود، در جهت مثبت و ارتقای تکنولوژی بلاک چین بهکار برده میشد. در ادامه ۴ مورد از معروفترین حملاتی که ممکن است امنیت بلاک چین را به خطر بیندازد معرفی میکنیم.
- حمله فیشینگ: «فیشینگ» (Phishing) روشی است که در آن هکر از طریق یک راه ارتباطی مثل ایمیل، با مالکان کلیدهای خصوصیِ آدرسهای بلاک چینی مثل کیف پولها یا صرافیها ارتباط برقرار میکند و آنها را مجاب به استفاده از لینکهایی میکند که به سایتی بسیار مشابه با سایت اصلی ختم میشود. کاربرها اگر به آدرس URL توجه نکنند، با وارد کردن اطلاعات حساب خود در آن سایت غیرواقعی، به دام حمله فیشینگ میافتند و هکر با ورود به حساب کاربری آنها، تمام موجودی آنها را به کیف پول دیگری میفرستد.
- حمله روتینگ: حمله «روتینگ» (Routing) مربوط به مسیر انتقال اطلاعات در بستر اینترنت است. بلاک چینها حجم زیادی از اطلاعات را در لحظه منتقل میکنند و جالب است که در این نوع حمله، کاربرها چیزی متوجه نمیشوند و همهچیز طبیعی به نظر میرسد، اما هکرها در پشت پرده، مسیر انتقال اطلاعات را دستکاری کرده و اطلاعات مد نظرشان را از آن استخراج میکنند.
- حمله سیبل: اسم حملهی «سیبل» (Sybil) از یک شخصیت چند هویتی در کتابی نام Book Sybil گرفته شده که در آن شخصی به نام Shirley Mason از اختلال چندشخصیتی رنج میبرد. هکرها در این نوع حمله با ساخت هویتهای جعلی متعدد، حجم زیادی درخواست به شبکه ارسال میکنند و باعث اختلال در سیستم میشوند.
- حمله ۵۱ درصد: امنیت بلاک چینهایی که با الگوریتم PoW کار میکنند در اثر توزیع توان پردازشی بین تمام نودهای شبکه تأمین میشود و برای تأیید بلاکها باید بیش از نیمی از نودها موافقت خود را با عملیات مربوطه اعلام کنند. اگر یک ماینر یا مجموعهای از آنها به طریقی بتواند بیش از ۵۰ درصد توان پردازشی شبکه را در اختیار بگیرد، این امکان را خواهد داشت که بلاکهای دلخواه را به شبکه اضافه کند و درون آنها تراکنشهای نامعتبر را به صورت تأییدشده ثبت کند. به این نوع حملهها به اصطلاح حمله ۵۱ درصدی میگویند.
نکات مهم در امنیت بلاک چینها
هنگام ساخت بلاک چینی که قرار است کاربرد اقتصادی داشته باشد باید نکات مختلفی را مدنظر قرار داد تا در آینده، امنیت بلاک چین به خطر نیفتد. لایههای ساختاری و قوانین حاکمیتی و اجازههای دسترسی از جمله این موضوعات هستند.
استراتژی امنیتی هر بلاک چین باید متناسب با هدف آن چیده شود و این کار میتواند با ترکیب تکنولوژیهای سنتی و تکنولوژی پیشرفته صورت بگیرد. از جمله مواردی که در تعیین استراتژی ساخت بلاک چین مؤثرند، میتوان به احراز هویت و مدیریت دسترسی، مدیریت کلیدها، حریم خصوصی، منبع ارتباطات، امنیت قراردادهای هوشمند و امضاهای تراکنشها اشاره کرد.
پس از مشخص شدن استراتژی، در مورد جزئیات بیشتر میتوان با پاسخ به این سوالها، دید بهتری نسبت به شبکه پیدا کرد:
- کاربرها طبق چه مدلِ حکومتیای در شبکه دخالت یا مشارکت دارند؟
- چه نوع اطلاعاتی قرار است در بلاکها ذخیره شود؟
- شبکه به چه جزئیاتی از هویت هر کاربر نیاز دارد؟ ذخیره و بازیابی کلیدها چطور انجام میشود؟
- شبکه در بدترین حالت، چه قابلیتهایی برای بازیابی اطلاعات ارائه میکند؟
- کاربرها چه حداقلهایی را برای مشارکت در شبکه باید رعایت کنند؟
- راه حل شبکه برای حل مشکلاتی مثل «تصادم» (Collision) در بلاکها چیست؟
سخن پایانی
امنیت بلاک چین یک موضوع بسیار گسترده و در عین حال پراهمیت است. همانطور که صحبت کردن از فناوری بلاک چین زمان زیادی میخواهد، بحث در مورد مسائل امنیتی در این حوزه نیز شامل موارد زیادی میشود. نکته مثبتی که در مورد بلاک چین وجود دارد این است که این تکنولوژی به خوبی توانسته کاربرها را با سیستمهای غیرمتمرکز آشنا کند و به طورکلی، احتمال نفوذ به این نوع سیستمها همیشه کمتر از سیستمهای متمرکز است. مثلا تابهحال هیچ وقت شبکه بلاک چینی مثل بیت کوین هک نشده، اما بارها اتفاق افتاده که یک صرافی ارز دیجیتال هک شده است.
باز هم متذکر میشویم که امکان هک شدن یک بلاک چین هیچوقت صفر نیست و همواره کاربرها در معرض انواع حملات فیشینگ، سیبل، روتینگ یا حمله ۵۱ درصدی هستند. به نظر شما بلاک چینهای فعلی به اندازه کافی امن هستند؟ نظر شما در مورد امنیت در فضای غیرمتمرکز چیست؟
برای دریافت مشاوره تخصصی رایگان از کارشناسان ما، اطلاعات خواسته شده رو تکمیل فرمایید.