در مقاله قبل به شناخت بلاک چین و روند عملیات آن پرداختیم،حال به امنیت بلاکچین و تفاوت آن با بیت کوین میپردازیم:
آنچه در این مقاله خواهید آموخت :
آیا بلاکچین خصوصی است؟
هر فردی میتواند محتوای بلاکچین را مشاهده کند، اما کاربران همچنین میتوانند رایانه خود را به عنوان نود یا گره (node) به شبکه بلاک چین متصل کنند. با این کار کامپیوتر آنها یک نسخه از بلاکچینی را که با اضافه شدن بلاک جدید به طور خودکار به روز رسانی می شود دریافت میکنند. چیزی شبیه اخبار فیسبوک که با اضافه شدن استاتوس یا وضعیت (status) جدید بطور زنده و خودکار بروزرسانی میشود.
هر رایانه ای در شبکه بلاکچین دارای یک کپی از بلاکچین میباشد، و این یعنی هزاران، یا در مورد بیتکوین، میلیون ها نسخه از همان بلاکچین. بنابراین با وجود نسخههای یکسان بلاکچین، انتشار این اطلاعات در شبکه های رایانهای کار را برای دستکاری اطلاعات دشوارتر میکند.
پس با وجود بلاکچین ما یک رویداد و حساب ثابت در پیش رویمان نداریم و بدین صورت هکرها مجبور خواهند بود که همه نسخهها را دستکاری کنند. به همین دلیل است که ما بلاکچین را یک دفتر کل پراکنده یا توزیع شده مینامیم.
ما با نگاهی به بلاکچین در بیتکوین در میابیم که به اطلاعات هویتی کاربرانی که تراکنش انجام میدهند دسترسی نداریم. اگرچه معاملاتشان در بلاکچین کاملاً ناشناس نیستند، اما اطلاعات شخصی در مورد کاربران فقط به امضای دیجیتال یا نام کاربری آنها محدود می شود، که این خود سوال مهمی میشود ایجاد میکند: اگر نمی دانیم چه کسی بلوک ها را به بلاکچین اضافه می کند، چگونه می توانیم به بلاکچین یا شبکه رایانه هایی که از آن پشتیبانی می کنند اعتماد کنیم؟
آیا امنیت بلاک چین تامین است؟
فناوری بلاکچین از چند جهت به مباحث امنیتی و مقوله اعتماد میپردازد. اول اینکه بلوک های جدید دائم بصورت خطی و به ترتیب زمانی ذخیره میشوند، بدین معنی که بلوک جدید همیشه به انتهای زنجیره بلوک اضافه میشود. اگر شما به نمودار زنجیره بلوک بیتکوین نگاه کنید میبینید که هر بلوک یک جایگاهی بنام “ارتفاع “ دارد.
همانطور که یک بلوک به انتهای بلاکچین اضافه شد، برگشتن به عقب و تغییر محتوای بلوک بسیار دشوار است. به این دلیل که هر بلوک حاوی هَش(hash) مخصوص به خود و همچنین هش بلوک قبل از خود است. کدهای هش توسط یک عملکرد ریاضی ایجاد می شوند که اطلاعات دیجیتال را به رشته ای از اعداد و حروف تبدیل می کند. اگر به هر دلیلی آن اطلاعات تغییر کنند، کد های هَش نیز تغییر میکنند.
در اینجا بیان میکنیم چرا این امر برای بحث امنیت حائز اهمیت است. فرض میکنیم که هکری تراکنش شما را در دیجی کالا (توجه : دیجی کالا به عنوان مثال به کار رفته و این شرکت از تکنولوژی بلاکچین در حال حاضر استفاده نمیکند) تغییر میدهد تا شما دوبار بهای محصولی را بپردازید، همین که مبلغ ریال (دلار) تراکنش شما تغییر میکند، هَش بلوک نیز تغییر میکند. بلوک بعدی در این زنجیره هنوز هَش قبلی را در اختیار دارد، پس هکر مجبور است آن بلوک را نیز بروزرسانی کند، که این خود باز منجر به تغییر هَش بلوک میشود و این روند به همین منوال ادامه پیدا میکند.
برای تغییر تنها یک بلوک، هکر میبایست بلوک های پس از آن را نیز در زنجیره بلوک تغییر دهد. محاسبه دوباره همه آن هَش ها مستلزم محاسبات بسیار قدرتمند کامپیوتری میباشد که بسیار غیر محتمل است. به عبارتی دیگر وقتی یک بلوک به زنجیره بلوک اضافه میشود، ویرایش آن بسیار دشوار و حذف آن غیر ممکن میشود.
برای بحث اطمینان نیز شبکه های بلاکچین تستهایی را برای رایانه هایی که میخواهند متصل شوند و به زنجیره بلوک اضافه کنند در نظر گرفته است. این تست ها که مدلِ اجماع یا ” consensus models ” نام دارند کاربران را قبل از پیوستن به شبکه بلاکچین ملزم به تایید خود میکنند. یکی از متداول ترین نمونه های بکار گرفته شده توسط بیت کوین ” اثبات عملی ” نامیده می شود.
در این سیستم رایانه ها باید بطور عملی اثبات کنند که میتوانند مسائل ریاضی پیچیده را پشت سر بگذارند. اگر رایانه ای یکی از این مسئلهها را حل کند، واجد شرایط اضافه کردن یک بلوک به زنجیره بلوک می شود.
اما روند افزودن بلوک به زنجیره، آنچه در دنیای ارز دیجیتال به اصطلاح “ماینینگ”mining معدنکاوی یا (استخراج معدن) نامیده میشود آنقدر ها هم آسان نیست.
در حقیقت شانس حل یکی از این مسائل در شبکه بیتکوین در ژانویه ۲۰۲۰ حدود یک در ۱۵.۵ تریلیون بود.
برای حل مسائل ریاضی پیچیده در چنین شرایطی کامپیوترها میبایست برنامه هایی را اجرا کنند که نیازمند مقدار قابل توجهی قدرت و انرژی است.
” اثبات عملی ” حملات هکرها را غیرممکن نمی سازد بلکه تا حدود زیادی بیفایده میسازد. اگر هکری بخواهد حملهای به بلاکچین را ترتیب دهد، میبایست بیش از ۵۰ درصد از کل توان محاسباتی را در بلاکچین کنترل کنند تا بتوانند همه شرکت کنندگان دیگر در شبکه را تحت الشعاع قرار دهند. با توجه به ابعاد وسیع بلاکچینِ بیت کوین، یک حمله به اصطلاح ۵۰ درصدی تقریباً غیرممکن بوده و قطعا ارزشش را نخواهد داشت.
تفاوت بلاک چین و بیت کوین
هدف اصلی بلاک چین این است که اجازه دهد اطلاعات ضبط و توزیع شوند، اما بدون ویرایش باقی بمانند. متوجه شدن این فناوری بدون اینکه آن را در عمل ببینیم کمی کار را سخت میکند، از این رو بهتر است ببینیم که نخستین کاربردهای فناوری بلاکچین چگونه بودند. پروتکل بیتکوین در بستر بلاکچین ایجاد شده است. در مقالهای درمورد ارز دیجیتالی، خالق بیتکوین با نام مستعار Satoshi Nakamoto، از آن بعنوان ” نظام پول الکترونیکی نوین بدون شخص ثالث ” یاد میکند.
روش کار بدین صورت میباشد:
افرادی در سراسر دنیا داریم که دارای بیتکوین هستند. به احتمال زیاد میلیونها انسان در سراسر جهان وجود دارند که حداقل بخشی از بیت کوین را در اختیار دارند. بیایید فرض کنیم که یکی از آن میلیون ها نفر می خواهد بیتکوین خود را صرف خرید در سوپرمارکت کند. اینجاست که بلاکچین وارد عمل می شود.
وقتی صحبت از پول چاپی می شود، استفاده از ارز چاپی توسط یک مقام مرکزی که معمولاً بانک یا دولت است تنظیم و تأیید می شود، اما بیت کوین توسط کسی کنترل نمی شود. در عوض معاملات انجام شده در بیتکوین توسط شبکه ای از رایانه ها تأیید می گردد. به این دلیل است که شبکه بیتکوین و بلاکچین را “غیرمتمرکز” مینامیم.
هنگامی که یک نفر برای خرید کالا از طریق بیتکوین اقدام میکند، رایانه های موجود در شبکه بیتکوین برای تأیید تراکنش باهم مسابقه میدهند. به منظور انجام این کار، کاربران برنامه ای را روی رایانه های خود اجرا می کنند و سعی می کنند مسئلههای ریاضی پیچیدهای بنام “هَش” را حل کنند. هنگامی که رایانه مسئلهای را با به اصطلاح “هَش” کردن بلوک حل کند، روند الگوریتمی آن نیز تراکنش بلوک را تایید میکند. همانطور که در بالا توضیح دادیم این تراکنش به صورت عمومی در بلوک زنجیره ضبط و ذخیره شده که در این صورت تغییر ناپذیر می شود. در مورد بیتکوین و اکثر بلاکچین های دیگر، رایانه هایی که با موفقیت بلوک ها را تأیید می کنند برای کار خود با ارز دیجیتالی پاداش می گیرند. این اصطلاح را معمولاً با عنوان “ماینینگ” میشناسیم.
گرچه تراکنشها بصورت عمومی ثبت میشوند، اما این امر در مورد دادههای کاربران صدق نکرده و یا حداقل بطور کامل صدق نمیکند. برای انجام تراکنش یا معاملات در شبکه بیتکوین، شرکت کنندگان باید برنامه ای را با نام “کیف پول” اجرا کنند.
هر کیف پول از دو کلید رمزنگاری شده منحصر به فرد و مجزا تشکیل شده است: یک کلید عمومی و یک کلید اختصاصی. کلید عمومی مکانی است که معاملات در آن سپرده گذاری و یا از آن برداشت می شوند. این کلید همچنین به عنوان امضای دیجیتالی کاربر در دفترکل بلاکچین ظاهر می شود. حتی اگر کاربر در بیتکوین توسط کلید عمومی خود مبلغی را دریافت کند، قادر نخواهد بود آنها را با کلید اختصاصی برداشت کند. کلید عمومی یک کاربر نسخه کوچک شدهی کلید خصوصی او است که از طریق الگوریتم پیچیده ریاضی ایجاد شده است. با این حال، به دلیل پیچیدگی این معادله، معکوس کردن روند و تولید کلید خصوصی از یک کلید عمومی تقریباً غیرممکن است. به همین دلیل است که فناوری بلاکچین یک فناوری محرمانه تلقی می شود.
مبانی کلید عمومی و اختصاصی
به زبان ساده تر اگر بخواهیم بگوییم، کلید عمومی را میتوان مانند کمد دانش آموزان(در برخی کشور ها دانشآموزان در مدرسه قفسه های شخصی بهمراه قفل آنرا تا پایان سال در اختیار دارند) و کلید اختصاصی را مانند قفل آن درنظر گرفت. معلمان، مربیان و محصلان می توانند نامه ها و یادداشت ها را از طریق روزنه باریکی وارد قفسه کنند. با این حال، تنها شخصی که می تواند محتوای قفسه را دریافت کند شخصی است که آن کلید منحصر به فرد را در اختیار دارد. البته لازم به ذکر است اشاره کنیم در حالی که کلید قفسهها در دفتر مدرسه نگهداری می شود، هیچ بانک اطلاعاتی مرکزی وجود ندارد که کلیدهای اختصاصی شبکه بلاکچین را ردیابی کند.
زنجیره عمومی واحد
در شبکه بیت کوین ،نه تنها بلاکچین توسط یک شبکه عمومی از کاربران به اشتراک گذاشته می شود، بلکه در مورد آن نیز اجماع وجود دارد. هنگامی که کاربران به شبکه می پیوندند، کامپیوتر آنها یک نسخه از بلاکچین را دریافت کرده که با اضافه شدن بلوک جدید بروز رسانی میشود. اما چه اتفاقی میافتد اگر، چه از طریق خطای انسانی یا تلاش هکرها، نسخهی بلاکچین کاربر دستکاری و از دیگر نسخهها متفاوت باشد؟ پروتکل بلاکچین از طریق پروسهای به نام ” اجماع ” مخالف وجود چند بلاکچین است. در صورت وجود چند نسخه از بلاکچین، پروتکل اجماع خود را با بزرگترین زنجیره موجود وفق میدهد. کاربران در بلاکچین اکثرا بر این باور هستند که بلوکها میتوانند سریعتر به انتهای زنجیره اضافه شوند. با وجود این منطق، زنجیره بلوک اسناد همیشه همانی خواهند بود که اکثر کاربران به آن اطمینان داشته و آن را تایید میکنند.
پروتکل اجماع یکی از قوی ترین نقاط فناوری بلاکچین است، در حالی که نقطه ضعف بزرگ نیز دارد.
تئوری و ضدهکر بودن
از نظر تئوری امکان دارد که هکر ها کنترل اکثریت یا همان ۵۱ درصد را در دست بگیرند. اتفاقی که میافتد این است:
بیایید بگوییم که پنج میلیون رایانه در شبکه بیت کوین وجود دارد، که البته رقم بیشتر از این حرفهاست، اما میخواهیم کار تقسیم را ساده تر کنیم. یک هکر برای دستیابی به اکثریت در شبکه باید حداقل ۲.۵ میلیون به اضافه یک عدد از آن رایانه ها را کنترل کند. برای انجام این کار یک هکر یا گروهی از هکرها می توانند در روند ثبت معاملات جدید مداخله کنند. آنها می توانند تراکنشی را ارسال کنند و سپس آن را برگردانند تا اینطور به نظر برسد که هنوز سکه یا کوینی را که خرج کرده اند در اختیار دارند. این آسیب پذیری معروف به double-spending، معادل دیجیتال یک جعل بی نقص است و باعث می شود کاربران بتوانند بیت کوین های خود را دو بار خرج کنند. اجرای چنین حمله ای در مقیاس بلاکچین بیتکویت بسیار دشوار است، زیرا هکر ها میبایست به میلیون ها رایانه دسترسی داشته و آنها را کنترل کنند. هنگامی که بیت کوین برای اولین بار در سال ۲۰۰۹ با داشتن ده ها کاربر تاسیس شد، یک مهاجم راحت تر می توانست اکثر قدرت محاسباتی را در شبکه کنترل کند. در ابتدا این ویژگی بلاکچین در مقابل ارز های دیجیتالی صاحب نام یک نقطه ضعف تلقی میشد. ترس کاربران از حمله ۵۱ درصد میتواند استفاده از بلاکچین را محدود کند. در مقاله ای بنام:
Digital Gold: Bitcoin and the Inside Story of the Misfits and Millionaires Trying to Reinvent Money
خبرنگار نیویورک تایمز بنام ناثانیِل پاپِر شرح میدهد که چگونه گروهی از کاربران بنام bitfury هزاران کامپیوتر قدرتمند را کنارهم قرار دادند تا در بلاکچین رقابت کنند. هدف آنها استخراج هرچه بیشتر بلوک و بدست آوردن بینکوین بود که در آن زمان هرکدام حدود ۷۰۰ دلار ارزش داشتند.
برای مرور فرق بیت کوین و بلاکچین به ویدئو زیر توجه کنید:
در مقاله آتی به مزایا، معایب و کاربردهای بلاک چین میپردازیم.