امنیت بلاک چین چطور تامین می شود؟
امنیت بلاک چین با ارتباط دادن داده های ذخیره شده به هم، به گونه ای تامین می شود که نفوذ به شبکه نیازمند زمان و هزینه قابل توجهی باشد و در یک کلام، مقرون به صرفه نباشد.
ساختار فناوری بلاک چین به گونه ای است که بستری امن برای ذخیره اطلاعات فراهم می کند. امنیت بلاک چین با مفاهیمی مثل رمزنگاری، غیرمتمرکز بودن و قوانین اجماع گره خورده است و همه این عوامل در نهایت باعث می شود تراکنش های شبکه به صورت امن و قابل اعتماد انجام شود. نحوه پردازش و ذخیره ی اطلاعات در سیستم های «دفترکل توزیع شده» (Distributed Ledger) مثل بلاک چین ها، نشان می دهد که اطلاعات تا چه حد به یکدیگر مرتبط هستند و برای دستکاری و نفوذ آن ها، چه مقدار زمان و چه هزینه ای نیاز است.
هیچ سیستمی وجود ندارد که صد درصد در برابر همه خطرهای موجود مقاوم باشد؛ اما در طراحی سیستم های امن همیشه تلاش بر این بوده که مدت زمان و هزینه لازم برای نفوذ و خرابکاری در آن ها به قدری زیاد باشد که انجام آن عقلانی و مقرون به صرفه نباشد. بلاک چین این کار را با مفهوم بلاک های متصل به هم و همچنین تراکنش های متصل به هم در بلاک ها انجام داده است. با ما همراه باشید تا بیشتر در مورد امنیت بلاک چین، انواع حملات و نکات ایمنی موجود در این زمینه صحبت کنیم.
میزان امنیت بلاک چین با توجه به نوع آن بلاک چین متغیر است. بلاک چین های Private و Permissioned اجازه های دسترسی و هویت اعضا را کنترل می کنند و مناسب شرکت های خصوصی هستند، اما بلاک چین های Public و Permissionless به همه اجازه مشارکت در پردازش شبکه را می دهند و به طور کامل غیرمتمرکز هستند.
بلاک چین ها ساختار بسیار منسجمی دارند و فرایند پردازش و ذخیره ی اطلاعات را با استفاده از مکانیزم های پیشرفته رمزنگاری و راه حل های ریاضی انجام می دهند. همین موضوع باعث شده که «رمزارزها» (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) گفته می شود که در آن، اجازه برداشت از حساب تنها در اختیار فردی است که کلید خصوصی آدرس مربوطه را داشته باشد.
هک کردن بلاک چین کار بسیار سختی است، ولی غیرممکن نیست. شبکه بلاک چین طوری طراحی می شود که هک کردن آن زمان و هزینه زیادی نیاز داشته باشد و انجام آن مقرون به صرفه نباشد.
احتمال نفوذ و هک شدن هیچ سیستمی صفر نیست ولی تمام راه کارهای امنیتی تلاش می کنند این احتمال را به صفر نزدیک و نزدیک تر کنند. همان طور که تا اینجا متوجه شدیم، امنیت بلاک چین به ساختار و الگوریتم های استفاده شده در آن بستگی دارد، ولی به طور کلی می توان گفت که هک کردن کل یک شبکه بلاک چین، کار بسیار سختی است. به عنوان مثال، بیش از 12 سال است که بلاک چین بیت کوین ساخته شده و میلیون ها تراکنش در «لجر» (Ledger) یا همان دفترکل بیت کوین ثبت شده، ولی تابه حال شبکه آن هک نشده است.
به لطف سیستم توزیع شده و الگوریتم «گواه اثبات کار» (PoW)، تابع هش SHA-256 و قدرت بسیار زیاد پردازشی شبکه (همان ماینرها)، برای هک کردن شبکه بیت کوین به میلیاردها دلار پول نیاز است و فردی که بخواهد این کار را بکند، به شدت متضرر خواهد شد. چون قیمت ارزِ هر شبکه ای که هک شود، به شدت سقوط می کند؛ یعنی حتی اگر این کار شدنی باشد، توجیه اقتصادی ندارد.
نکته دیگری که در این زمینه وجود دارد، پلتفرم های ذخیره یا مبادله رمزارزها، یعنی همان کیف پول ها و صرافی ها هستند. کیف پول ها و صرافی ها نیز انواع مختلفی دارند (مثل کیف پول های متصدی و غیرمتصدی و صرافی های متمرکز و غیرمتمرکز) و یکی از موضوعات مرتبط با بحث امنیت بلاک چین به شمار می روند. بارها شنیده ایم که دارایی های کیف پول یا اطلاعات و دارایی های کاربرهای یک صرافی به سرقت رفته است. این پلتفرم ها به عنوان واسطه، به کاربرهای حوزه کریپتو سرویس می دهند و احتمال هک شدن آن ها نسبت به شبکه بلاک چین اصلی بیشتر است.
بیشتر شبکه های بلاک چینی بستری برای رمزارزها هستند و این رمزارزها در حقیقت نقش پول را دارند و هر جا که پول زیادی ذخیره شده باشد، مورد توجه خلافکارها و هکرهاست. نباید فراموش کنیم که هک کردن یک سیستم مالی نرم افزاری، مخصوصا از نوع غیرمتمرکز، فرایندی بسیار پیچیده و فنی است و ای کاش زمان و هزینه ای که صرف این نوع کارها می شود، در جهت مثبت و ارتقای تکنولوژی بلاک چین به کار برده می شد. در ادامه 4 مورد از معروف ترین حملاتی که ممکن است امنیت بلاک چین را به خطر بیندازد معرفی می کنیم.
«فیشینگ» (Phishing) روشی است که در آن هکر از طریق یک راه ارتباطی مثل ایمیل، با مالکان کلید های خصوصیِ آدرس های بلاک چینی مثل کیف پول ها یا صرافی ها ارتباط برقرار می کند و آن ها را مجاب به استفاده از لینک هایی می کند که به سایتی بسیار مشابه با سایت اصلی ختم می شود. کاربرها اگر به آدرس URL توجه نکنند، با وارد کردن اطلاعات حساب خود در آن سایت غیرواقعی، به دام حمله فیشینگ می افتند و هکر با ورود به حساب کاربری آن ها، تمام موجودی آن ها را به کیف پول دیگری می فرستد.
حمله «روتینگ» (Routing) مربوط به مسیر انتقال اطلاعات در بستر اینترنت است. بلاک چین ها حجم زیادی از اطلاعات را در لحظه منتقل می کنند و جالب است که در این نوع حمله، کاربرها چیزی متوجه نمی شوند و همه چیز طبیعی به نظر می رسد، اما هکرها در پشت پرده، مسیر انتقال اطلاعات را دستکاری کرده و اطلاعات مد نظرشان را از آن استخراج می کنند.
اسم حمله ی «سیبل» (Sybil) از یک شخصیت چند هویتی در کتابی نام Book Sybil گرفته شده که در آن شخصی به نام Shirley Mason از اختلال چندشخصیتی رنج می برد. هکرها در این نوع حمله با ساخت هویت های جعلی متعدد، حجم زیادی درخواست به شبکه ارسال می کنند و باعث اختلال در سیستم می شوند.
امنیت بلاک چین هایی که با الگوریتم PoW کار می کنند در اثر توزیع توان پردازشی بین تمام نودهای شبکه تأمین می شود و برای تأیید بلاک ها باید بیش از نیمی از نودها موافقت خود را با عملیات مربوطه اعلام کنند. اگر یک ماینر یا مجموعه ای از آن ها به طریقی بتواند بیش از 50 درصد توان پردازشی شبکه را در اختیار بگیرد، این امکان را خواهد داشت که بلاک های دلخواه را به شبکه اضافه کند و درون آن ها تراکنش های نامعتبر را به صورت تأییدشده ثبت کند. به این نوع حمله ها به اصطلاح حمله 51 درصدی می گویند.
هنگام ساخت بلاک چینی که قرار است کاربرد اقتصادی داشته باشد باید نکات مختلفی را مدنظر قرار داد تا در آینده، امنیت بلاک چین به خطر نیفتد. لایه های ساختاری و قوانین حاکمیتی و اجازه های دسترسی از جمله این موضوعات هستند.
استراتژی امنیتی هر بلاک چین باید متناسب با هدف آن چیده شود و این کار می تواند با ترکیب تکنولوژی های سنتی و تکنولوژی پیشرفته صورت بگیرد. از جمله مواردی که در تعیین استراتژی ساخت بلاک چین مؤثرند، می توان به احراز هویت و مدیریت دسترسی، مدیریت کلیدها، حریم خصوصی، منبع ارتباطات، امنیت قراردادهای هوشمند و امضاهای تراکنش ها اشاره کرد.
پس از مشخص شدن استراتژی، در مورد جزئیات بیشتر می توان با پاسخ به این سوال ها، دید بهتری نسبت به شبکه پیدا کرد:
درباره این مطلب دیدگاهی بنویسید...
آدرس پست الکترونیک شما منتشر نخواهد شد.