بلاک چین چیست؟ همه چیز درباره بلاک چین

انسان‌ها طی سالیان متمادی به دنبال راه حل یا فرمولی برای همه چیز بودند. از نظریات توصیف شکل گیری جهان هستی گرفته، تا نظریات علوم روانشناسی، فلسفی، جامعه شناسی، سیاست، اقتصاد و … . اما رویای آرمانشهر مورد انتظار بشر و دستیابی به صلح و هم افزایی پایدار، تنها در گروی یک مفهوم است: اعتماد. گویی اعتماد حلقه اتصال تمامی خواسته‌های بشر است که تا به امروز در اشخاص واسطه، حکومت‌ها، سیستم‌ها و سازمان‌ها جستجو شده است. اما امروزه فناوری انقلابی بلاک چین اساساً اصل را بر عدم اعتماد گذاشته و این چالش را نه به دست بشر، بلکه با حذف واسطه‌های معتمد و جایگزینی فرایندهای مبتنی بر خرد جمعی به سرانجام می‌رساند. فناوری بلاک چین علی رغم ظاهر پیچیده و گنگی که دارد، به سادگی قابل فهم بوده و امروز در مرکز توجهات جوامع علم و تکنولوژی قرار گرفته است. در این مقاله قصد داریم با توصیف ریشه‌های تاریخی شکل گیری بلاک چین، ساز و کار دقیق این فناوری را به شما معرفی کنیم. تا انتهای این مقاله با ما همراه باشید تا هرآنچه برای فهم عمیق این فناوری نیاز است را فرا گیرید.

1 222,252

تا به حال با دوستانتان بازی مافیا انجام داده‌اید؟ اصول این بازی بسیار ساده است؛ اقلیت مافیا در میان اکثریت شهروندان مخفی شده و وانمود می کنند که خود نیز شهروند هستند. وظیفه شهروندان این است که با گفتگو در طول روز مافیا را تشخیص دهند و آنها را حذف کنند، و وظیفه مافیا این است که شهروندان را در تصمیم گیری ها گمراه کنند و هر شب مخفیانه یک شهروند را به قتل برسانند. در یک کلام، مافیا بازی اعتماد است. شاید بیراه نباشد اگر بگوییم زندگی واقعی ما نیز نمونه بزرگ شده‌ای از بازی مافیاست. همه ما در زندگی واقعی، با افراد گوناگون تعاملات گوناگون (شغلی، عاطفی و …) داریم و همه این تعاملات نیازمند اعتماد طرفین است. اعتماد جوهره اصلی روابط انسانیست و در این مقاله قصد داریم فناوری انقلابی را به شما معرفی کنیم که چالش اعتماد را یک بار برای همیشه حل می‌کند. شاید تا کنون چیزهایی درباره فناوری بلاک چین شنیده باشید، شاید هم نه! شاید درک کاملی از این فناوری داشته باشد، و شاید هم بلاک چین را با چیزهای دیگر اشتباه گرفته باشید که احتمالش هم کم نیست. بنابراین قبل از هر حرفی اجازه دهید بگوییم بلاک چین چه چیزهایی نیست!

یک تعریف ابتدایی برای بلاک چین

بلاک چین چیست

*توضیح تصویر: عباراتی که در 12 ماه اخیر، بیشتر از همه در ارتباط با بلاک چین جستجو شده‌اند. (منبع: Google Trends)

بلاک چین هرگز نوعی فیلترشکن نبوده و نیست. بلاک چین نام نسخه جدید و ضد فیلتر پیامرسان تلگرام هم نیست. همچنین بلاک چین چیزی شبیه تالار بورس اوراق بهادار نیست که مثلا سهام فلان شرکت را ببریم روی بلاک چین؛ بلاک چین با شبکه های هرمی و بازاریابی شبکه‌ای هیچ سنخیتی ندارد و در نهایت باید بگوییم که بلاک چین واژه معادلی برای توصیف بیت کوین هم نیست؛ بلکه پلتفرم بیت کوین اولین پیاده سازی موفق بلاک چین در حوزه مالی بوده که تا به امروز جلوه‌های تمرکز زدایی، توزیع شدگی، ارتباط همتا به همتا، شفافیت و امنیت بلاک چین را به منصه ظهور رسانده است. اما برای آن که ذهنیتی ابتدایی از بلاک چین داشته باشیم و بتوانیم این مقاله را تا انتها دنبال کنیم، در اینجا تعریفی ابتدایی از مفهوم بلاک چین ارائه خواهیم داد.

بلاک چین در تعریف عام، یک پایگاه داده مدرن برای ثبت، نگهداری و مدیریت داده‌هاست؛ اما در تعریفی دقیقتر می‌توان گفت:

«بلاک چین ابزاری برای یکپارچه سازی و هماهنگی سیستم های توزیع شده و همتا به همتاست.»

بلاک چین به خودی خود فناوری نیست؛ بلکه ابزاریست که از فناوری هایی همچون رمزنگاری ، دفتر کل توزیع شده ، ارتباط همتا به همتا، و الگوریتم‌های اجماع بهره می گیرد. تفاوت بلاک چین با سیستم‌های ثبت و مدیریت سنتی داده، از آنجا نشأت می‌گیرد که داده‌های ذخیره شده در این سیستم، میان تمامی اعضای شبکه به اشتراک گذاشته می‌شود و با رمزنگاری داده‌ها و بهره گیری از روش‌های اجماع، امکان حذف، تغییر، سانسور، هک و تقلب در داده‌های ثبت شده، تقریباً غیر ممکن می‌گردد.»

تاریخچه مختصر بلاک چین

ایده اولیه بلاک چین، اولین بار در سال 1991 توسط استوارت هابر و اسکات استورنتا، به منظور ثبت و مدیریت بهینه داده‌ها مطرح گردید. تفاوت بنیادین بلاک چین با سیستم‌های ثبت داده سنتی، ایده‌ی تایم استمپ یا زمانبندی اسناد دیجیتالی بود که امکان دستکاری، سانسور و تغییر تاریخ اسناد را غیر ممکن می‌ساخت. اما این نوآوری تا سال 2008 چندان جدی گرفته نشد. در سال 2008 بیت کوین به عنوان اولین ارز رمزنگاری شده و اولین کاربرد عملی بلاک چین، توسط فرد یا افراد ناشناسی با نام مستعار ساتوشی ناکاموتو به جهان معرفی شد. بیت کوین شبکه‌ای از تراکنش‌ها بر بستر بلاک چین است که کاربران را قادر می‌سازد بدون دخالت هیچ گونه واسطه‌ای و بدون حضور یک سیستم مرکزی (مانند بانک) برای یکدیگر پول بفرستند. عنوان مقاله (یا وایت پیپر) ساتوشی ناکاموتو این بود: «بیت کوین: یک سیستم پول نقد الکترونیکی همتا به همتا».

اما کاربردهای بلاک چین تنها به امور مالی محدود نخواهد شد. ما در عصری زندگی می‌کنیم که نیاز به ثبت و مدیریت اطلاعات، بیش از پیش در حال افزایش است و در چنین شرایطی فناوری بلاک چین به عنوان نسل جدیدی از تکنولوژی های ارتباطی، روش‌های جایگزین جدیدی را پیش رویمان قرار خواهد داد. طبق گزارش LinkedIn Learning، بلاک چین به عنوان یک مهارت، در سال ۲۰۱۹ از مهارت های IT از جمله محاسبات ابری، استدلال تحلیلی (analytical reasoning)، هوش مصنوعی و طراحی تجربه کاربری (UX) پیشی گرفته است و به پرطرفداترین مهارت حوزه IT در بین کارفرمایان جهان در سال ۲۰۲۰ تبدیل شده است.

بلاک چین چیست
بلاک چین چیست

دنیای بدون بلاک چین

حال که اندکی با تاریخچه پیدایش بلاک چین آشنا شدیم، لازم است از خود بپرسیم که ضرورت وجود آن چیست؟ مگر دنیای سنتی فناوری اطلاعات، بدون بلاک چین چه چیزی کم داشت؟ تمرکزگرایی و وجود سازمان‌های واسطه چه مشکلاتی برای ما ایجاد کرده‌اند که بلاک چین قرار است آنها را حل کند؟ در ادامه به تک تک این سوالات پاسخ خواهیم گفت.

برای درک ضرورت استفاده از بلاک چین، نیازمند مرور سیر تاریخی فرایند تبادل داده هستیم. این داده‌ها می‌توانند اطلاعات مربوط به تراکنش‌های مالی باشند، یا اطلاعات هویتی شما، یا سوابق بیمه، و یا حتی سوابق کاری، اطلاعات مربوط به تولید و عرضه یک محصول دارویی، حقوق مالکیت معنوی یا هر چیز دیگر …

از زمان پیدایش حیات، چالش اعتماد یکی از اساسی ترین چالش‌های انسان برای برقراری ارتباط و داد و ستد بوده است. در گذشته ترجیح مردم بر این بود که تنها با کسانی که می‌شناسند و شخصاً به آنها اعتماد دارند وارد معامله شوند. اما از زمان آغاز شهرنشینی و گسترش روابط و مناسبات اجتماعی، همیشه نیاز به یک شخص یا سازمان واسطه احساس می‌شد. ابتدا ریش سفیدان و اشخاص معتمد شهرها این نقش را برعهده داشتند و بعدها، سازمان‌های واسطه. به عنوان مثال بانک‌ها از زمان شکل‌گیری تا کنون، مسئولیت نگهداری از دارایی‌های مردم و ثبت داده‌های مربوط به تراکنش‌های آنها را برعهده داشته و دارند. این سازمان‌های واسطه، بسیاری از مشکلات مردم را برطرف کردند. برای مردمی که در تمامی مناسبات خود همواره با مشکل اعتماد دست و پنجه نرم می‌کردند، اعتماد به یک سازمان واسطه بسیار ساده‌تر از اعتماد به تک تک افراد جامعه بود. در عصر جدید و با توسعه تجارت الکترونیکی، این نیاز بیش از پیش محسوس شد. اکنون شما می‌توانید با افرادی از سراسر جهان تعامل و داد و ستد داشته باشید، بدون اینکه حتی آن‌ها را بشناسید یا به آن‌ها اعتماد داشته باشید. با گسترش دستگاه‌های الکترونیکی، اختراع شبکه و فراگیر شدن تدریجی اینترنت، کم کم بسیاری از سازمان‌های سنتی، جای خود را به سرویس‌ها و پلتفرم‌های اینترنتی دادند. بخش عظیمی از نقل و انتقالات مالی به فضای دیجیتالی وارد شد و پلتفرم های متمرکز همچون گوگل، فیسبوک، اوبر، آمازون (در داخل ایران مثل دیجیکالا و اسنپ) و … بسیاری از نیازهای ارتباطی مشترکین را برطرف ساختند.

بلاک چین چیست
بلاک چین چیست

تا به اینجای کار، اقتصاد واسطه محور روز به روز در حال گسترش بود اما علی رغم تمامی مزیت‌های سیستم‌های متمرکز و سازمان‌های واسطه، ایراداتی هم به آنها وارد است. ایراداتی که شاید تا زمانی که موجب بروز مشکلی نگردند، به آن‌ها توجه نکرده و آنها را جدی نمی‌گیریم. در اینجا به چند مورد از این ایرادات خواهیم پرداخت:

1- قدرت بیش از حد پلتفرم‌های متمرکز

پلتفرم‌های متمرکز به دلیل ذخیره حجم کلانی از داده‌های کاربران (Big data) و همچنین دارا بودن قدرت بسیار زیاد محاسباتی و هوش مصنوعی، کنترل بسیار زیادی بر داده‌های عموم مردم دارند. از این رو همواره این ریسک وجود دارد که این شرکت‌ها با سوء استفاده از این داده‌ها در سرنوشت بسیاری از مردم تأثیرگذار باشند. به عنوان مثال ماجرای رسوایی فیسبوک و کمبریج آنالایتیکا (cambridge analytica) در جریان انتخابات ریاست جمهوری سال 2016 امریکا را به یاد آورید. در جریان این رسوایی فاش شد که شرکت کمبریج آنالایتیکا با همکاری فیسبوک به اطلاعات شخصی بیش از 50 میلیون شهروند امریکایی دسترسی یافته و از این داده‌ها برای تبلیغات روانی هدفمند و تغییر نتیجه انتخابات به نفع جمهوری خواهان استفاده کرده است. همچنین شرکت قدرتمند گوگل نیز با ذخیره کوکی‌های کاربران موتور جستجوی خود، قدرت بسیار زیادی در کنترل افکار عمومی و جهت دهی به آن بدست آورده که گهگاهی خبرهای آن را نیز می‌شنویم.

البته قضیه به اینجا منتهی نمی‌شود. زمانی که دیتای کاربران از جنس پول و تراکنش‌های مالی باشد، قضیه از این هم خطرناک‌تر می‌شود. شاید تا کنون درباره قدرت بی حد و حصر بانک‌ها چیزهایی شنیده باشید. بانک ‌ها با در اختیار داشتن حجم عظیمی از سپرده‌های مالی راکد شهروندان، قدرت بسیار زیادی به دست آورده‌اند. این قدرت بی حد و حصر به آن‌ها اجازه می‌دهد در بسیاری از تصمیم گیری های کلان حکومتی و همچنین در امور مربوط به قانون گذاری اعمال نفوذ داشته باشند.

بلاک چین چیست
بلاک چین چیست

2-توانایی سانسور، تحریف و تقلب

زمانی که کنترل تمامی داده‌های یک سیستم در اختیار یک سازمان متمرکز باشد، امکان بالقوه سانسور، تغییر اطلاعات، تحریف و تقلب گریزناپذیر خواهد بود. به عنوان مثال بارها و بارها شاهد فساد مالی در بانک‌هایی بوده‌ایم که با دستکاری و تقلب در تراکنش‌ها، مبالغی از سرمایه‌های عمومی را کلاهبرداری کرده‌اند. بارها و بارها شاهد این بوده‌ایم که شبکه‌های اجتماعی مثل اینستاگرام و فیسبوک، به علت منافع شخصی یا تحت تأثیر دولت‌ها، برخی از پست‌های کاربران را حذف کرده‌اند. تمامی این اتفاقات ناشی از کنترل متمرکز سازمان‌ها و شرکت‌ها بر داده‌های کاربران است.

3-ضعف امنیت

امنیت داده‌ها همواره از چالش‌های پیش روی سازمان‌های غیرتوزیع شده است. تصور کنید کلیه اطلاعات و داده‌های یک شبکه یا سوابق بانکی، در یک کامپیوتر یا سرور مرکزی جمع شده‌ باشند. در این صورت هرگونه حادثه غیر مترقبه طبیعی، سرقت سایبری و هک، و همچنین مشکلات فنی، می‌تواند باعث آسیب پذیری یا از بین رفتن تمامی این اطلاعات شود. به این موارد اصطلاحاً نقطه بحرانی شکست (single poin of failure) یا SPoF می‌گویند. تنها راه مقابل با این تهدیدات بالقوه، توزیع شدگی اطلاعات است؛ به گونه‌ای که دیگر تنها یک سرور مرکزی، نگهدارنده تمامی اطلاعات نباشد. به عنوان یک اصل اساسی می‌توان گفت تا زمانی که با از کار انداختن یکی از اجزای سیستم بتوان کارایی کل سیستم را تحت تأثیر قرار داد، این سیستم توزیع شده نیست؛ فرقی هم نمی‌کند که طراحی آن در ظاهر چقدر پیچیده به نظر برسد.

4-عدم شفافیت در الگوریتم‌های حاکمیتی

وقتی قصد دارید از یک پلتفرم متمرکز استفاده کنید، در ابتدای کار مجموعه‌ای از قوانین و شرایط را تحت عنوان terms and conditions یا Terms of service می‌پذیرید که اختیاراتی را از جانب شما به صاحبان و مدیران این پلتفرم‌ها اعطا می‌کند. در این قرارداد یک طرفه تنها شرایط و تعهداتی که شما ملزم به رعایت آن هستید ذکر شده و معمولاً هیچ خبری از تعهدات سازمان نسبت به شما وجود ندارد. در حقیقت شما هیچ حقی ندارید، چرا که چاره دیگری جز استفاده از این پلتفرم ندارید. حتماً این تعهدنامه را در هنگام استفاده از سرویس‌های گوگل یا فیسبوک و اینستاگرام مشاهده کرده‌اید. آیا چاره دیگری جز پذیرش آن هست؟ آیا می‌توانید از این پلتفرم استفاده نکنید؟ آیا تا به حال در این تعهدنامه هیچ حقی برای مصرف کنندگان درنظر گرفته شده است؟ تا به حال پیش آمده است که از نحوه رفتار الگوریتم این پروتکل‌ها گیج و سر درگم شوید؟ به عنوان مثال تغییر رتبه ناگهانی یک وبسایت در سرویس جستجوی گوگل یا نمایش ندادن پست‌های اینستاگرام برای یک اکانت خاص، یا حتی ممنوعیت ناگهانی فعالیت‌های روزمره (نظیر لایک کردن و کامنت گذاشتن) شما در شبکه‌های اجتماعی بدون هیچ دلیل واضح و مشخصی! تمامی این اتفاقات ناشی از عدم شفافیت الگوریتم حاکمیتی این پلتفرم‌های متمرکز است؛ اما آیا راهکار بهتری سراغ داریم؟

5-تحمیل هزینه‌های غیرمنصفانه

برای رفع بخشی از مشکلاتی که در موارد قبلی گفته شد، و همچنین برای تأمین هزینه‌های ناشی از خدمات سازمان‌ها، به ناچار بخشی از این هزینه‌ها توسط کاربران تأمین می‌گردد. به عنوان مثال بانک‌ها برای تأمین هزینه‌ حفظ امنیت سرمایه‌ها و نظارت بر صحت تراکنش‌ها، هزینه‌ای را به عنوان کارمزد به هر تراکنش تحمیل می‌کنند که باید توسط مشتریان پرداخت شود. وجود این کارمزدها اجتناب ناپذیر است و در برخی موارد از جمله در تراکنش‌های خُرد، باعث عدم صرفه اقتصادی تراکنش می‌گردد.

6-بروکراسی پیچیده در روندهای سازمانی

به دلیل عدم یکپارچگی و هماهنگی در میان اجزای مختلف یک سازمان، بسیاری از عملیات اجرایی این سازمان‌ها درگیر پروسه‌های زمان‌بر و پرزحمت می‌گردند. به عنوان مثال برای طی مراحل احراز هویت در یک سازمان یا یک بانک، باید مدارک مشابهی را به بخش‌های متنوعی از سازمان ارائه دهید تا در هر بخش به طور جداگانه تأیید شوند. یا همچنین برای دسترسی تمامی اعضای یک شبکه سنتی به نسخه‌های بروزرسانی شده اسناد و اطلاعات، نیازمند صرف هزینه‌های بیش از حد هستیم. بخشی از این مشکلات به دلیل آن است هنوز استفاده از اسناد دیجیتالی در بسیاری از سازمان‌ها مرسوم نبوده و یا صحت‌سنجی آن با مشکلاتی مواجه است. آیا روش بهتری برای یکپارچه سازی و ایجاد هماهنگی میان بخش‌های مختلف یک سازمان وجود دارد؟

 

تمامی ایرادات و مشکلاتی که در بالا گفته شد، مقدمه‌ای بود برای معرفی فناوری بلاک چین؛ برای اینکه بدانیم چرا به شبکه‌های غیر متمرکز، توزیع شده و همتا به همتا نیاز داریم؛ شفافیت در سیستم‌های مالی و پلتفرم‌ها و سرویس‌های اجتماعی چه مشکلاتی را حل می‌کند؛ امنیت داده‌های کاربران پلتفرم‌های متمرکز چگونه به خطر می‌افتد؛ عدم غلبه منافع شخص به گروه چگونه محقق می‌گردد و در نهایت اینکه حذف واسطه‌ها چه کمکی به کاهش هزینه‌های کاربران خواهد کرد.

بلاک چین چیست
بلاک چین چیست

در ادامه با ارائه تعاریف دقیقی از بلاک چین، چگونگی رفع چالش‌های فوق را توضیح خواهیم داد.

ابزارهای لازم برای درک بلاک چین

پیش از صحبت درباره چیستی و چگونگی کارکرد فناوری بلاک چین، اجازه دهید برخی از اصطلاحات و مفاهیم مرتبط با این فناوری را با یکدیگر مورد مطالعه قرار دهیم.

 

تمرکزگرایی و تمرکززدایی

هرگاه از تمرکزگرایی صحبت می‌کنیم، تنها یک منظور داریم: قدرت و حاکمیت متمرکز. در سازمان‌ها، سیستم‌ها و پلتفرم‌های متمرکز، ساختار توزیع قدرت به شکل یک هرم است. معماری یک ساختار متمرکز می‌تواند متشکل از زیربخش‌های بسیاری باشد که هر یک در بخش مربوط به خود دارای قدرت تصمیم گیری هستند، اما معمولاً تمامی اختیارات و مسئولت‌ها در نهایت متعلق به یک شخص یا مجموعه کوچکی از اشخاص (به طور مثال سهامداران ارشد یا اعضای هیئت مدیره سازمان) است. قدرت‌های متمرکز می‌توانند بدون ضمانت حفظ منافع تک تک اعضا یا کاربران سیستم، به اختیار خود تصمیمات جدید اتخاذ کنند. این تصمیمات منجر به تغییراتی خواهند شد که در نهایت به سود عده‌ای از اعضا و به ضرر عده‌ای دیگر از اعضا تمام خواهد شد. به عنوان مثال سیستم مالی کشوری مانند ایران را درنظر بگیرید. تمامی افراد سرمایه گذار در سیستم بانکی ایران، اعضای اولیه این سیستم مالی هستند. در طبقه بالاتر بانک‌ها و مؤسسات مالی و اعتباری قرار دارند که همگی تابع مقررات وضع شده از سوی بانک مرکزی هستند. در مرتبه بالاتر بانک مرکزی قرار دارد که خود از دو رکن اساسی ناظر به نام شورای پول و اعتبار و مجمع عمومی تشکیل شده است. در نهایت در صدر این سیستم مالی رئیس کل بانک مرکزی قرار دارد که می‌تواند با تصمیمات مستقیم خود دستور اجرا یا عدم اجرای مصوبات را صادر کند. به عنوان مثال فرض کنید رئیس بانک مرکزی دستور دهد میزان عرضه پول (چاپ پول) در سال جدید 3 درصد افزایش یابد؛ یا به طور مثال چهار صفر از واحد پول ملی کسر شود و یا اینکه نرخ بهره بانکی افزایش یا کاهش یابد. تمامی این تصمیمات تأثیرات مستقیم و غیر مستقیمی بر کاربران این سیستم (که بیشترین تعداد و کمترین قدرت تصمیم گیری را دارند) خواهد داشت. چنین سازمانی متمرکز نامیده می‌شود. در شکل زیر هرم تمرکز قدرت در سیستم مالی ایالات متحده را به عنوان نمونه‌ای مشابه مشاهده می‌کنید.

بلاک چین چیست
بلاک چین چیست

اما زمانی که از تمرکز زدایی صحبت می‌کنیم، منظورمان دقیقاً تقسیم قدرت تصمیم گیری و حاکمیت، در میان اعضا است. به عنوان مثال یک سیستم مالی را در نظر بگیرید که هیچ شخص یا سازمان خاصی مسئولیت مستقیم حفظ امنیت و اعتبارسنجی و تایید تراکنش‌ها را بر عهده نداشته باشد؛ بلکه این مسئولیت بر عهده خود کاربران بوده و هر کاربر با توجه به قدرت پردازشی که وارد شبکه می‌کند، بتواند در حفظ شبکه مشارکت کند و اصطلاحاً حق رأی داشته باشد. همچنین در این سیستم فرضی، هیچ شخص یا نهادی مسئولیت بررسی نهایی آرا و اعمال تصمیمات را برعهده ندارد؛ بلکه این فرایند از طریق یک کد متن باز عمومی انجام می‌گیرد که همه کاربران نیز از صحت کارکرد آن مطمئن هستند. اگر توانایی تصور چنین سیستمی را دارید، به شما تبریک می‎گوییم! شما با بخشی از پروتکل بیت کوین (اولین پول نقد الکترونیکی همتا به همتا) به عنوان اولین سیستم مالی غیرمتمرکز آشنا شده‌اید. در حقیقت مفهوم تمرکززدایی در سیستم مالی ارزهای رمزنگاری شده همچون بیت کوین ، تنها و تنها به کد عمومی و غیرقابل تغییر این رمز ارز شده بستگی دارد.

بلاک چین چیست

«طبیعت بیت کوین به گونه‌ایست که پس از عرضه اولین نسخه، طراحی هسته این سیستم باید تا انتهای عمر این رمز ارز بدون تغییر باقی بماند.

ساتوشی ناکاموتو – خالق افسانه‌ای بیت کوین»

در اینجا باید نکته مهمی را مد نظر داشت. تمرکز زدایی از یک سیستم و توزیع مراکز قدرت، به هیچ عنوان با اصطلاح توزیع شدگی شبکه برابر نیست.

برای فهم دقیقتر مفهوم توزیع شدگی، ادامه این مقاله را مطالعه فرمایید:

 

توزیع شدگی

مفهوم توزیع شدگی در دنیای فناوری اطلاعات، از دو جنبه قابل بحث است. توزیع شدگی شبکه، و توزیع شدگی پایگاه داده.

مفهوم توزیع شدگی در شبکه به معنای مجموعه‌ای از کامپیوترهای مستقل و ناهمگن است که برای کاربر به صورت یک سیستم منسجم و یکپارچه ظاهر می‌شوند. در این حالت مجموعه‌ای از وظایف بین کامپیوترهای مختلف تقسیم شده اما در نهایت یک خروجی واحد و یکپارچه مورد انتظار است.

اما توزیع شدگی در پایگاه‌های داده مفهوم کاملاً متفاوتی دارد. در پایگاه‌های داده توزیع شده، بجای اینکه داده‌ها تنها روی یک سرور مرکزی ذخیره شوند، روی چندین سرور یا کامپیوتر ذخیره می‌گردند. این توزیع شدگی لزوماً به معنای توزیع شدگی مکانی نیست. به عنوان مثال ممکن است پایگاه داده‌ای (بنا به نیازهای خاص آن پلتفرم) در چندین دیتا سنتر در مناطق مختلف جهان توزیع شده باشد (همانند گوگل و فیسبوک) و یا ممکن است این توزیع شدگی در میان چندین کامپیوتر یا سرور واقع در یک ساختمان باشد. چیزی که در اینجا اهمیت دارد این است که تمامی داده‌ها پس از بروزرسانی، به صورت همزمان در چندین سرور ذخیره شوند تا هیچ یک از این سرورها به تنهایی نقطه شکست بحرانی (SPoF) نباشند؛ به عنوان مثال در یک سیستم توزیع شده، نمی‌توان با هک یک سرور تمامی سیستم را از کار انداخت؛ چرا که سرورهای دیگری نیز همین داده‌ها را به طور یکسان ذخیره سازی کرده‌اند. همانطور که تا کنون حدس زده‌اید، استفاده از پایگاه داده توزیع شده، هیچ ارتباطی با تمرکز زدایی از حاکمیت سیستم ندارد. برای دستیابی به یک سیستم توزیع شده و (به طور همزمان) غیر متمرکز، لازم است ابتدا با مفهوم دفتر کل توزیع شده آشنا شویم.

در شکل زیر، تفاوت ساختاری سیستم‌های متمرکز، غیر متمرکز، و توزیع شده نمایش داده شده است.

بلاک چین چیست
بلاک چین چیست

دفتر کل 

اولین مفهوم مورد نیاز برای درک فناوری بلاک چین ، دفتر کل توزیع شده یا (distributed ledger technology or DLT) است. اما برای معرفی این مفهوم، لازم است ابتدا به معرفی “دفتر کل” بپردازیم.

تمامی کسب و کارهایی که به هر نحوی با عملیات مالی سر و کار دارند، برای حسابداری و کنترل این عملیات مالی از ابزار اولیه‌ای تحت عنوان دفتر کل استفاده می‌کنند. تمامی عملیات مالی (تراکنش‌ها) با شرح توضیحات، تاریخ و ذکر ماهیت (بدهکار و بستانکار) در این دفتر ثبت می‌گردد. مانده حساب‌های هر صفحه از این دفتر، در پایان صفحه ذیل عبارت “نقل به صفحه …” ذکر شده و به صفحه بعدی انتقال می‌یابد. در ابتدای هر صفحه نیز ذیل عبارت “منقول از صفحه …” باقیمانده حساب‌ها از صفحه قبل وارد صفحه جدید شده و ثبت داده‌های مالی ادامه می‌یابد. قصد ما اینجا آموزش حسابداری نیست، اما فرایند ثبت داده‌ها در دفتر کل و نحوه ایجاد ارتباط میان صفحات این دفتر را به خاطر بسپارید تا مشابه همین فرایند را در بلاک‌های بلاک چین نیز مشاهده کنید!

بلاک چین چیست
بلاک چین چیست

پیدایش دفتر کل‌ها اتفاق نادری به حساب نمی‌آمد؛ چرا که انسان‌ها از زمانی که داد و ستد را شروع کردند، تقریباً همین فرایند ثبت داده را روی سنگ‌ها یا لوح‌های گلی نیز انجام می‌دادند. هر کس دفتر کل مخصوص به خود را داشت و حساب‌های روزانه، ماهانه و سالانه خود را در آن یادداشت می‌کرد و در نهایت می‌توانست میزان بدهکاری و بستانکاری خود را از این طریق تشخیص دهد. اما مشکل از جایی شروع شد که میان دفتر کل‌های گوناگون، مغایرتی پیدا می‌شد. به عنوان مثال دو فرد با یکدیگر تبادلات مالی انجام داده بودند و اطلاعات مربوط به این مبادلات را هر یک به طور جداگانه در دفتر کل‌های خود ثبت کرده بودند. گاهی پیش می‌آمد که به دلیل خطا و اشتباه، و یا تعمداً و به قصد کلاهبرداری، شخصی اطلاعات اشتباهی را در دفتر کل خود ثبت می‌کرد. مشکل اینجا بود که هیچ یک از طرفین نمی‌توانست حقانیت دفتر کل خود را به دیگران ثابت کند. بنابراین دفتر کل‌ها به افراد واسطه معتمد شهرها و جوامع سپرده شد تا آن‌ها وظیفه ثبت و نگهداری حساب‌ها را بر عهده گیرند. اما این روش نیز در طولانی مدت جوابگوی نیاز مردم نبود؛ چرا که همان واسطه معتمد نیز امکان خطا داشت و علاوه بر این امکان تبانی میان ذینفعان و واسطه‌ها نیز وجود داشت.

در حال حاضر همان ساختار سنتی دفتر کل ها به صورت تکامل یافته مورد استفاده قرار می‌گیرد. هر نهاد، سازمان یا شخص حقوقی برای کنترل حساب‌های خود از حسابداری مبتنی بر دفتر کل استفاده می‌کند و وظیفه نظارت بر این داده‌ها نیز بر عهده سازمان‌های حسابرسی (همان واسطه‌های معتمد) خواهد بود. شاید واضح ترین نمونه از دفتر کل هایی که امروزه مورد استفاده قرار می‌گیرند، همان دفتر کل موجود در بانک‌ها باشد. بانک‌ها برای کنترل حساب‌های سپرده گذاران، از دفتر کلی استفاده می‌کنند که تمامی مبادلات در آن ثبت شده و پس از انجام هر تراکنش، به روز رسانی می‌گردد.

تا به اینجا با مفهوم دفتر کل آشنا شدیم و اکنون قصد داریم مفهوم دفتر کل توزیع شده را مورد بررسی قرار دهیم.

 

دفتر کل توزیع شده (DLT)

در قرن اخیر با گسترش شبکه اینترنت و افزایش روز افزون کامپیوترها و دستگاه‌های الکترونیکی، دفتر کل های سنتی به تدریج وارد فضای دیجیتالی شدند. اندکی بعد پلتفرم‌ها شکل گرفتند که هر یک برای ذخیره و پردازش داده‌های کاربران خود، مجبور به راه‌اندازی پایگاه‌های داده (ِData Base) خود بودند.

پایگاه‌های داده در ابتدا بر روی کامپیوترها یا سرورهای متمرکز ذخیره می‌شدند؛ به این معنا که تأمین امنیت این اطلاعات و پردازش آن تنها توسط یک سازمان متمرکز صورت می‌پذیرفت. همچنین در صورت وقوع حادثه‌ای چون حملات سایبری یا هک به این پایگاه داده، امنیت داده‌های کل شبکه به خطر می‌افتاد.

با توسعه علم رمزنگاری و رشد قدرت پردازش و ذخیره سازی، رفته رفته مفهومی تحت عنوان «دفتر کل توزیع شده (DLT)» مطرح شد. دفتر کل توزیع شده پایگاه داده‌ای است که توسط تمامی مشارکت کنندگان یا نودها (Node) قابل به روزرسانی بوده و نسخه بروزرسانی شده آن تقریبا به طور لحظه‌ای در اختیار سایر اعضای شبکه قرار می‌گیرد. هیچ فرد یا سازمان بخصوصی توانایی ایجاد تغییر یا حذف داده‌های ثبت شده در این پایگاه داده توزیع شده را ندارد. دفترکل های توزیع شده را می‌توان فناوری مادر بلاک‌چین دانست. به بیان دقیقتر، همه بلاک چین ها از فناوری دفتر کل توزیع شده بهره می‌گیرند؛ اما هر دفترکل توزیع شده‌ای لزوماً یک بلاک چین نیست. این فناوری علاوه بر بلاک چین، در گونه‌های دیگری از پایگاه‌های داده رمزنگاری شده همچون دگ (DAG) و تمپو (Tempo) نیز مورد استفاده قرار می‌گیرد.

بلاک چین چیست
بلاک چین چیست

آنچه در اینجا ارزشمند و مورد توجه است، شفافیت اطلاعات و توزیع شدگی آن است. همین ویژگی دفتر کل توزیع شده است که امکان سانسور، دستکاری و تقلب را در آن کاهش می‌دهد. استفاده از دفترکل های توزیع شده، شاید در ابتدای امر، هزینه‌های بیشتری را به سازمان‌ها تحمیل کند؛ اما در بلند مدت هزینه‌های ناشی از هماهنگی، تأمین امنیت، بازرسی و … را کاهش خواهد داد. اما اگر اکثریت افراد حاضر در شبکه بر روی نسخه ای از دفتر کل که آن را به نفع خود دستکاری کرده‌اند توافق کنند چه می‌شود؟ اگر افرادی با هویت‌های ساختگی و جعلی در شبکه مشارکت کرده و اطلاعات جعلی و اشتباهی را در دفتر کل توزیع شده ثبت کنند چه؟ اصلاً آیا تضمینی هست که تمامی دفتر کل ها به طور همزمان مورد حمله‌ای مشابه قرار نگرفته و داده‌های موجود در آن‌ها حذف یا دستکاری نشود؟ اینجا دقیقاً همان جاییست که الگوریتم‌های اجماع شبکه (با بهره گیری از فناوری رمزنگاری) وارد بازی شده و این احتمال را به شدت کاهش می‌دهند. پیش از ورود به بحث رمزنگاری اجازه دهید شما را با مسأله‌ای تاریخی در زمینه ثبت داده آشنا کنیم؛ مسأله بیزانتین یا خطای بیزانس.

 

تحمل خطای بیزانس

در فضای سیستم های توزیع شده، مفهوم تحمل خطای بیزانس (Byzantine Fault Tolerance) به معنی توانایی یک شبکه کامپیوتری توزیع شده برای ارائه عملکرد مطلوب و صحیح است. هدف از این عملکرد صحیح، دفاع در برابر شکست های سیستمی از طریق کاهش تاثیرگذاری نودهای خرابکار بر روی عملکرد شبکه است که در نهایت سبب شکل گیری اجماع درستی میان نودهای درستکار در سیستم خواهد شد.

مسأله بیزانس در حقیقت نوعی آزمایش فکریست که سال‌های سال برای دانشمندان علوم کامپیوتر بی‌پاسخ باقی مانده بود. این مشکل با الهام از استراتژی فتح قلعه‌های نظامی در زمان امپراطوری روم شرقی طرح شده است.

تصور کنید گروهی از ژنرال‌های بیزانسی از جهات مختلف قلعه‌ای را محاصره کرده و در حال تدارک حمله‌ای برای فتح آن هستند. نکته‌ حائز اهمیت در این حمله، این است که ژنرال‌ها باید به توافق برسند تا همگی با هم حمله را آغاز کنند. زیرا در غیر این صورت حمله با شکست مواجه خواهد شد. بنابراین تنها کاری که باید انجام شود، این است که ژنرال ‌ارشد، نامه‌ای حاوی پیام حمله را از طریق پیک‌هایی برای دیگر ژنرال‌ها بفرستد و در صورت مثبت بودن پاسخ آن‌ها حمله را در زمان مقرر شده در پیام، آغاز کند. اما در اینجا دو مشکل کوچک وجود دارد: ژنرال‌های نفوذی، و پیک‌های خیانتکار. به عنوان مثال ممکن است یکی از ژنرال‌های نفوذی، با درخواست ژنرال‌های دیگر برای حمله موافقت کند، اما در عمل به نیروهایش فرمان عقب نشینی بدهد. یا اینکه یکی از پیک‌های خیانتکار، پیام را دستکاری کند و بجای پیام حمله، پیام عقب نشینی را به دیگر ژنرال‌ها مخابره کند. در هر دو صورت حمله با شکست مواجه خواهد شد. چاره کار چیست؟

بلاک چین چیست
بلاک چین چیست

پیش از صحبت درباره راه حل، اجازه دهید این مسأله ساده را قدری دقیقتر و شفافتر بیان کنیم. این ژنرال‌ها نمایانگر همان مراکز داده توزیع شده هستند و پیام حمله نیز نقش یک داده مهم و حساس را ایفا می‌کند. ژنرال‌های نفوذی نمایانگر نودهای خرابکار سیستم هستند و پیک های خیانتکار، نمایانگر سارقان، کلاهبرداران و مهاجمان سایبری. مشکلی که در ارتباط با ژنرال‌های نفوذی وجود دارد، بحث احراز هویت است. آن‌ها با یک هویت جعلی در میان نودهای درستکار ظاهر شده و داده‌های اشتباهی را به دیگران مخابره می‎کنند. مشکل وجود پیک‌های خیانتکار نیز دقیقاً به امنیت داده‌ها مربوط است. بنابراین به راه حلی نیاز داریم که هم مشکل احراز هویت نودهای شبکه را برطرف سازد، و هم امنیت داده‌ها را در برابر جعل، سانسور و یا حذف شدن تأمین کند. ما به دنبال دستیابی به روشی برای اجماع صحیح هستیم.

 

رمزنگاری و هش

اولین تجربه‌های عملی بکارگیری رمزنگاری برای ایمن سازی داده‌ها، در جنگ جهانی دوم و توسط آلمان‌های نازی اتفاق افتاد. دانشمندان آلمانی برای مخابره پیام‌های رمزنگاری شده، دستگاهی به نام انیگما اختراع کرده بودند که رمزگشایی از پیام ها را تنها برای نیرو‌های خودی (به وسیله کلید رمزگشایی مخصوص) ممکن می‌ساخت. اما در سوی دیگر جنگ، دانشمندی به نام الن تورینگ، رمزگشایی از این ماشین جادویی را با اختراع اولین نمونه عملی کامپیوتر ممکن ساخت.

رمزنگاری داده‌ها را می‌توان در سه بخش (یا روش) مجزا مورد بررسی قرار داد: رمزنگاری متقارن، رمزنگاری نامتقارن، و تابع هش یک طرفه. آنچه که به بحث فعلی ما مربوط است و نقش حلقه مفقوده فناوری بلاک چین را ایفا می کند، رمزنگاری نامتقارن، و توابع هش یک طرفه هستند اما برای تکمیل موضوعات طرح شده، در این مقاله هر سه روش را به طور خلاصه توضیح خواهیم داد:

  • تابع هش یک طرفه

در رمزنگاری یک طرفه داده‌های ورودی را به گونه‌ای رمزنگاری می‎کنیم که دیگر قابل رمزگشایی و دستیابی به داده اولیه نباشند. در این روش از توابع یک طرفه استفاده می‌کنیم. توابع یک طرفه توابعی هستند که در ازای یک ورودی خاص، یک خروجی درهم‌نگاری شده خاص تولید می‎کنند؛ اما با داشتن خروجی، هرگز نمی‎توان به داده ورودی دست یافت. در واقع در این روش، داده ورودی به شیوه‌ای خاص (بسته به نوع الگوریتم رمزنگاری) کد گذاری شده و در ازای هر داده ورودی، رشته کاراکترهایی شامل اعداد و حروف درهم ریخته با طولی ثابت (به طور مثال 64 کاراکتر) ایجاد می‌شود که اصطلاحاً ” هش” (Hash) نامیده شده و دارای شرایط زیر است:

  • در ازای هر ورودی یکتا، یک هش خروجی یکتا تولید می‌شود و این عمل تکرارپذیر است (یعنی هر چندبار که ورودی یکسانی را به تابع بدهید، هر بار خروجی یکسانی تولید خواهد کرد)
  • هیچ دو ورودی متفاوتی، خروجی یکسان نخواهند داشت.
  • سرعت تولید هش از داده ورودی زیاد و قابل قبول باشد (چرا که در صورت زمانبر بودن، استفاده عملی از آن را دشوار می‌کند).
  • با در اختیار داشتن هش خروجی و تابع هش، دستیابی به ورودی اولیه عملاً غیر ممکن است.
  • با ایجاد هرگونه تغییر کوچکی در ورودی اولیه، هش خروجی به طور کامل تغییر کرده و نمی‌توان آن را حدس زد.
بلاک چین چیست
بلاک چین چیست

الگوریتمی که دارای شرایط فوق باشد، یک الگوریتم مناسب و غیرقابل نفوذ برای رمزنگاری داده‌ها تلقی می‌گردد. از این روش رمزنگاری، برای غیر قابل تغییر کردن و ثبت دائمی داده‌ها در دفتر کل توزیع شده استفاده می‎کنیم. به عنوان مثال فرض کنید داده‌های موجود در هر صفحه از دفتر کل را یکبار در تابع هش قرار دهیم و هش خروجی را در صفحه بعدی ذخیره کنیم (در توضیحات مربوط به دفتر کل سنتی گفتیم که مانده حساب هر صفحه، در صفحه بعدی با عنوان «منقول از صفحه قبل» آورده می‌شود که در اینجا بجای این مانده حساب، هش داده‌های هر صفحه را قرار می‌دهیم). حال هش صفحه قبل نیز، یکی از داده‌های ورودی صفحه بعد به شمار می‌رود که به همراه داده‌های این صفحه در تابع هش قرار داده شده و هش خروجی، در صفحه بعدی ذخیره می‌شود. تکرار این فرایند در تمامی صفحات دفتر کل، عملاً دستکاری، حذف یا تغییر داده‌های موجود در صفحات قبلی را غیرممکن می‌سازد. چرا که با ایجاد هرگونه تغییری در داده‌های هر یک از صفحات، هش خروجی این صفحه تغییر یافته و بدین ترتیب هش صفحات بعدی نیز نامعتبر خواهد شد. این چیدمان هوشمندانه مکانیزمی را ایجاد می‎کند که با اتکا به آن می‌توان از غیرقابل تغییر بودن داده‌های ثبت شده اطمینان حاصل کرد.

بلاک چین چیست
بلاک چین چیست

حال مساله بیزانتین را به یاد آورید؛ تصور کنید پیام های رد و بدل شده توسط ژنرال ها با چنین مکانیزمی به صورت زنجیروار به یکدیگر متصل شوند. بدین ترتیب ژنرال‌های خرابکار دیگر قادر به تغییر پیام‌ها و داده‌های رد و بدل شده نخواهند بود؛ زیرا در صورت اعمال کوچکترین تغییری در داده‌های ثبت شده، هش خروجی به طور کلی تغییر یافته و هش پیام‌های بعدی را نیز بی‌اعتبار خواهد ساخت. پس تا زمانی که اکثریت ژنرال‌ها (یا نودهای شبکه) را افراد درستکار تشکیل دهند، بیشترین قدرت پردازشی برای محاسبه هش در دست این عده خواهد بود و ژنرال‌های خرابکار نخواهند توانست هش تمامی پیام‌ها را زودتر از آنان محاسبه و جایگزین کرده و پیام‌ها را جعل کنند. (توجه داشته باشید که در این مثال مفهومی از ذکر جزئیات صرف نظر کرده ایم. به عنوان مثال فرایند محاسبه هش، بسیار سریع بوده و نیازی به قدرت پردازشی چندانی ندارد؛ اما در روش‌های عملی همچون الگوریتم اثبات کار در بلاک چین بیت کوین، با وارد ساختن پارامتر دیگری به نام سختی شبکه، فرایند یافتن هش را تعمداً سخت خواهیم کرد تا قدرت اجماع در نهایت در اختیار اکثریت درستکار شبکه که صاحب بیشترین قدرت پردازشی هستند باقی بماند).

همچنین در پلتفرم‌ها و سایت‌هایی که به کاربران امکان ساخت حساب کاربری و تعیین گذرواژه می‎دهند نیز از توابع هش یک طرفه استفاده می‎شود. به عنوان مثال پایگاه داده شرکت فیسبوک هیچگاه گذرواژه حساب شما را ذخیره نمی‎کند؛ بلکه در هنگام ایجاد هر حساب کاربری و تعریف گذرواژه توسط کاربر، با استفاده از توابع رمزنگاری یک طرفه، گذرواژه کاربر هش شده و هش آن در پایگاه داده فیسبوک ذخیره می‌شود. فیسبوک با داشتن این هش نمی‌تواند به حساب شما دسترسی یابد، اما هرگاه که برای ورود به حساب خود، گذرواژه را در مرورگر رایانه خود وارد می‎کنید، این گذرواژه به صورت هش شده برای فیسبوک ارسال شده و با تطبیق آن با هشی که از قبل ذخیره شده، اجازه دسترسی به حساب شما صادر می‎گردد.

  • رمزنگاری متقارن

حال به سراغ روش‌هایی می‎رویم که تحت شرایط خاصی، رمزگشایی آسان هش را ممکن می‎سازند. به این صورت که برای هش کردن داده، از یک کد دیگر تحت عنوان “کلید” استفاده می‎گردد. یکی از روش‌های رایج رمزنگاری، “رمزنگاری متقارن”، یا “رمزنگاری کلید توافقی” است. رمزنگاری متقارن روشی‌ست که در آن کلید رمز کردن و باز کردن رمز یکی‌ست. این روش را می‌توانید به صورت صندوقی درنظر بگیرید که با همان کلیدی باز می‎شود که با آن قفل شده است (که مطابق تجربه روزمره ماست). یکی از نکاتی که استفاده از روش رمزنگاری متقارن را محدود می‌کند این است که همه طرف‌های درگیر در فرآیند، باید روی یک کلید توافق کرده و آن را در اختیار داشته باشند و هیچ فرد دیگری نیز نباید به این کلید دسترسی داشته باشد. استفاده از کلید توافقی در حین کار با طرف دوم قابل اعتماد رابطه ایرادی ندارد؛ از سوی دیگر اما، وقتی با گروه‌های بزرگ یا منابع ناشناس زیادی سر و کار داریم، به دلیل در معرض خطر قرار گرفتن کلید، باید روش امنی نیز برای جابجایی کلید پیدا کرد که خود مستلزم وجود یک کانال امن یا استفاده از رمزنگاری است که تشکیل یک دور باطل می‌دهد و به هر حال در ابتدا باید کلیدها رد و بدل شده باشند. علاوه بر این، برخی از کاربردهای ویژه رمزنگاری (همچون احراز هویت)، در این روش رمزنگاری ممکن نیستند.

بلاک چین چیست
بلاک چین چیست

 

  • رمزنگاری نامتقارن

الگوریتم رمزنگاری نامتقارن (یا رمزنگاری کلید عمومی-خصوصی) روشی بسیار جدید بوده و بر پایه توابع یک طرفه استوار است. نحوه کار الگوریتم رمزنگاری مبتنی بر کلید عمومی-خصوصی، به این صورت است که هر فرد برای ارتباط با سایر اشخاص، یک جفت کلید عمومی و خصوصی برای خود ایجاد می‎کند که کلید عمومی (public key) برای رمزگذاری، و کلید خصوصی برای رمزگشایی پیام مورد استفاده قرار می‌گیرد (قفلی را تصور کنید که یک کلید مخصوص قفل کردن و یک کلید مخصوص باز کردن دارد). کلیدهای عمومی و خصوصی تولید شده توسط این الگوریتم، به گونه‌ای هستند که هر پیام رمزنگاری شده با کلید عمومی، تنها با کلید خصوصی متناظر آن رمزگشایی می‎گردد. یکی از مزایای روش رمزنگاری نامتقارن نسبت به روش متقارن، این است که کلید عمومی را می‎توان بین عموم منتشر کرد تا رمزنگاری داده‌ها برای همه اعضای شبکه ممکن باشد (بدون اینکه امنیت پیام های ارسالی به خطر بیفتد)؛ اما کلید خصوصی را باید نزد خود مخفی نگه داشت.

بلاک چین چیست
بلاک چین چیست

عملکرد کلید خصوصی و عمومی را می‌توان به صندوقی تشبیه کرد که دارای دو کلید است. یکی از کلیدها تنها به صورت ساعتگرد کار می‌کند و دیگری فقط به صورت پادساعتگرد عمل خواهد کرد. فرض کنید کلید خصوصی در قفل این صندوق به صورت ساعتگرد می‌چرخد و کلید عمومی تنها به صورت پادساعتگرد قابل چرخاندن است. واضح است که کلیدی به جز این دو کلید نه به صورت ساعتگرد و نه به صورت پادساعتگرد نمی‌تواند در قفل حرکت کند. علاوه بر این قفل صندوق یک قفل سه حالته است. در چپ قفل، بالا باز و در سمت راست دوباره قفل می‌شود. احتمالاً موضوع کمی برایتان گنگ شد؛ یعنی پیامی که با کلید عمومی رمزنگاری شده را می‎توان با کلید خصوصی رمزگشایی کرد، و پیامی که با کلید خصوصی رمزگذاری شده را نیز می‌توان با کلید عمومی رمزگشایی کرد؟ پاسخ مثبت است. وقتی از کلید خصوصی و عمومی صحبت می‌کنیم، در حقیقت از یک جفت “کد رمزنگاری” صحبت می‎کنیم که فرقی نمی‎کند کدام را نزد خود نگه دارید و کدام را منتشر کنید. از هر کلیدی که برای رمزنگاری پیام استفاده کنید، کلید دیگر قادر به رمزگشایی آن پیام است.

بلاک چین چیست
بلاک چین چیست

حال دوباره به توضیحات بخش مربوط به مسأله بیزانتین رجوع کنید. خواهید دید که با بکارگیری رمزنگاری نامتقارن در ارسال پیام (یا تبادل داده)، هم مسأله هویت ژنرال‌های نفوذی و هم دستکاری پیام توسط پیک های خیانتکار به طور کامل برطرف خواهد شد. چرا که حالا پیام ارسالی برای هر یک از ژنرال‌ها، با کلید عمومی مربوط به او رمزگذاری شده و تنها با کلید خصوصی خود او قابل رمزگشاییست. پس دیگر پیک‌ها نخواهند توانست محتویات پیام را مشاهده کرده یا آن را تغییر دهند. همچنین هر ژنرالی مجبور است پیام را با کلید خصوصی خود امضا کرده و برای سایرین ارسال کند؛ این بدان معنیست که هویت کسی که پیام را می‌فرستد، به خود پیام پیوست شده و در این صورت اگر ژنرال خرابکاری در میان جمع باشد، دستش رو خواهد شد.

تمامی آنچه که در این روش توضیح دادیم، همان چیزی‌ست که در پروتکل های انتقال امن داده‌های فرامتنی (HTTPS)  به کار گرفته می‎شود و شما هر روز هنگام استفاده از مرورگر اینترنت خود و چک کردن سایت‌هایی که از این پروتکل پیروی می‎کنند، بدون اینکه دقت کنید، با آن تعامل دارید. بدین ترتیب اطلاعات ارسالی از سرور به شما و بلعکس، در میانه راه توسط سرویس دهندگان اینترنت یا افراد سوءاستفاده گر، قابل استفاده نخواهد بود؛ چرا که تمامی داده‌ها به صورت رمزنگاری شده انتقال می‎یابند و تنها در مقصد قابل رمزگشایی هستند (از این به بعد به قفل کوچک سبز رنگ در نوار آدرس مرورگر خود توجه بیشتری داشته باشید!). در دهه 90 میلادی نیز برنامه‌ای نرم افزاری تحت عنوان PGP (pretty good privacy) برای ارتباطات امن ایمیلی ابداع شد که می‌توان آن را اولین استفاده رسمی از الگوریتم رمزنگاری نامتقارن در فضای اینترنت دانست.

تا به اینجای کار تمامی مقدمات لازم برای فهم منطق شکل گیری و کارکرد بلاک چین را فرا گرفته‌ایم. در ادامه این مقاله قصد داریم ضمن ارائه تعریف دقیقی از واژه بلاک چین ، نحوه کارکرد دقیق آن را بیان کنیم.

4 تعریف برای بلاک چین

در این مرحله توجه شما را به تعریف دقیق اصطلاح بلاک چین و توضیح کاربردهای متفاوت آن جلب می کنیم. برای معرفی جنبه‌های مختلف بلاک چین ، می‌توان 4 تعریف زیر را برای آن ارائه داد:

  • بلاک چین به عنوان یک ساختمان داده
  • بلاک چین به عنوان یک الگوریتم
  • بلاک چین به عنوان مجموعه‌ای از چند فناوری
  • بلاک چین به عنوان عبارتی برای توصیف تمامی سیستم های همتا به همتای توزیع شده با حوزه کاربردی مشترک

بلاک چین به عنوان یک ساختمان داده

مفهوم ساختمان داده (data structure) در علوم کامپیوتر و مهندسی نرم افزار، روشی برای سازماندهی داده‌ها بدون در نظر گرفتن محتوای اطلاعاتی ذاتی آنهاست. ساختمان داده را می‌توان همچون نقشه معماری یک ساختمان درنظر گرفت. نقشه معماری یک ساختمان، نحوه جداسازی و ایجاد ارتباط میان فضاها از طریق دیوارها، طبقات و پله ها را بدون در نظر گرفتن کاربرد ذاتی آن‌ها مشخص می‌نماید. وقتی از بلاک چین برای معرفی یک ساختمان داده استفاده می کنیم، در حقیقت به داده‌هایی اشاره داریم که در کنار هم قرار گرفته و یک بلاک را تشکیل می‌دهند که این بلاک ها نیز با مکانیزم خاصی همچون زنجیر به یکدیگر متصل شده و بلاک چین (زنجیره بلوک) را تشکیل می‌دهند.

می‌توان این بلاک‌ها را بسیار شبیه به صفحات یک کتاب دانست. وقتی به کتاب بنگریم، می‌بینیم که واژه‌ها و جملات نقش همان اطلاعات و داده‌های ذخیره شده را دارند. این اطلاعات بجای درج شدن روی یک طومار بلند بالا، در صفحات مختلف کتاب چاپ شده‌اند. صفحات نیز از طریق موقعیت خاص خود در کتاب از طریق فصل‌ها، بخش‌ها و شماره صفحات، به یکدیگر متصل می‌شوند. اگر بخواهید اطمینان حاصل کنید که صفحه‌ای از کتاب حذف شده یا نه، می‌بایست توالی شماره صفحات را مورد بررسی قرار دهید. علاوه بر این، اطلاعات درج شده در صفحات نیز همچون خود صفحات کتاب، مرتب سازی شده‌اند. این مرتب سازی مهمترین بخش کار است که باید به طور کامل رعایت شود. دقت داشته باشید که مرتبط سازی بلاک‌های داده در یک ساختمان داده، با استفاده از یک سیستم شماره گذاری بسیار مخصوص حاصل می‌شود که با شماره گذاری کتاب‌های معمولی بسیار متفاوت است.

 

بلاک چین به عنوان یک الگوریتم

در مهندسی نرم افزار، اصلاح الگوریتم به مجموعه دستورالعمل‌های متوالی اجرا شونده توسط کامپیوتر اطلاق می‌گردد. این دستورالعمل‌ها اغلب دربردارنده ساختمان‌های داده هستند. وقتی از بلاک چین به عنوان یک الگوریتم صحبت می‌کنیم، به مجموعه‌ای از دستورالعمل‌های متوالی اشاره داریم که بر محتوای اطلاعاتی بسیاری از ساختمان‌های داده‌ی مرتب سازی شده و توزیع شده در یک سیستم همتا به همتا )همچون یک سیستم رای گیری دموکراتیک( تأثیر می‌گذارند.

 

بلاک چین به عنوان مجموعه‌ای از چند فناوری

وقتی از بلاک چین به عنوان مجموعه‌ای از فناوری‌ها صحبت می‌کنیم به ترکیبی از ساختمان داده بلاک چینی ، الگوریتم بلاک چینی ، و همچنین فناوری‌های رمزنگاری و امنیت اشاره داریم که این چنین ترکیبی ، یکپارچه سازی  سیستم‌های همتا به همتای کاملاً توزیع شده را (بدون توجه به هدف کاربردی این برنامه) ممکن خواهد ساخت.

 

بلاک چین به عنوان یک چتر مفهومی برای توصیف تمامی سیستم های همتا به همتای توزیع شده با حوزه کاربردی مشترک

می‌توان بلاک چین را به عنوان واژه‌ای مادر برای اشاره به تمامی سیستم‎های همتا به همتای توزیع شده از دفتر کل‌ها که از مجموعه فناوری‌های بلاک چینی استفاده می‌کنند نیز در نظر گرفت. توجه داشته باشید که در این تعریف، بلاک چین بجای اشاره به یک واحد نرم افزاری که بخشی از یک سیستم توزیع شده است، به کلیت مفهوم سیستم‌های کاملاً توزیع شده اشاره دارد.

بلاک چین چگونه کار می‌کند؟-تراکنش ها در بلاک چین

واژه بلاک چین ترکیبی از دو واژه بلاک (Block) و زنجیر (Chain) است؛ بلاک‌هایی برای ثبت و ذخیره داده‌ها (به عنوان مثال داده‌های مالی، سوابق علمی، سوابق پزشکی، حقوق مالکیت معنوی، بیمه و …) و زنجیرهایی که باعث حفظ ارتباط بلاک‌ها، و تغییرناپذیری این داده‌ها می‌گردد.

بلاک چین چیست

برای اینکه بدانیم بلاک چین دقیقا چگونه کار می کند، باید نگاهی به تک تک اجزاء مفهومی تشکیل دهنده آن بیندازیم. هر بلاک چین شامل اجزاء زیر است:

بلاک چین چیست
بلاک چین چیست

در اینجا ابتدا اجزاء مختلف بلاک چین را جداگانه بررسی کرده و سپس ارتباط آن‌ها با یکدیگر را بیان می‌نماییم.

تراکنش‌ها

وقتی از تراکنش‌های بلاک چینی صحبت می‌کنیم، منظورمان تراکنش‌هاییست که بدون نظارت و تایید یک نهاد واسطه مانند بانک، مستقیماً میان دو کاربر شبکه انجام شده و در عین حال از امنیت کافی برخوردار باشد.

در دنیای داده‌های اینترنتی و موجودیت‌های دیجیتالی، با حذف واسطه متمرکز، دو چالش اساسی به وجود خواهد آمد. اولین چالش، اثبات مالکیت کاربران بر دارایی‌های دیجیتالی و دومین چالش، جلوگیری از خرج مجدد دارایی (Double Spending) است. در ادامه با اشاره به بلاک چین عمومی بیت کوین، چگونگی حل این دو چالش را توضیح خواهیم داد.

  • اثبات مالکیت

ابتدا یک سیستم متمرکز سنتی همانند بانک را درنظر بگیرید. بانک در ازای احراز هویت افراد، برای آنها حسابی ایجاد کرده و آن‌ها را قادر می‌سازد تا با استفاده از کارت‌های بانکی (که رمز آن تنها در اختیار خود فرد است) از موجودی حساب خود استفاده کنند. به بیان دقیقتر هر شخص صاحب حساب، با در اختیار داشتن کارت بانکی و رمز آن، مالکیت خود را بر دارایی موجود در حساب اثبات می‌کند. همچنین بانک بعد از انجام هر تراکنش توسط شخص صاحب کارت، نقش واسطه ایفا کرده، مبلغ تراکنش را از حساب فرستنده کسر و به حساب گیرنده اضافه می‎کند. بدین ترتیب در سیستم بانکی افراد امکان خرج مجدد یک دارایی را نخواهند داشت. البته دقت داشته باشید که در سیستم‌های متمرکز، سرنوشت کل پول‌های در جریان، در دست نهاد واسط (بانک) بوده و صحت تراکنش‌ها در گرو اعتماد اولیه ما به این سیستم است.

اما در بلاک چین بیت کوین، دارایی‌های دیجیتالی (یا بیت کوین‌ها) خود، از جنس تراکنش بوده و تنها در کیف پول‌های دیجیتالی ذخیره می‌شوند و نمایانگر هیچ معادل فیزیکی در دنیای واقعی نیستند. در این سیستم مالکیت یک سکه یا پول دیجیتالی توسط یک امضای دیجیتالی مشخص می‌شود. انتقال پول (بیت کوین) در این سیستم اینگونه است که مالک اولیه، با امضای هش یک تراکنش قبلی (موجود در کیف پول خود) از طریق کلید خصوصی و اضافه کردن کلید عمومی صاحب جدید آن و الحاق این اطلاعات به یکدیگر، مقداری از موجودی حاصل از تراکنش های قبلی در کیف پول خود را به فرد دیگری انتقال می‌دهد (برای درک بهتر این فرایند پیشنهاد می‌کنیم بخش مربوط به رمزنگاری نامتقارن را از همین مقاله مجددا مطالعه کنید). فرد دریافت کننده نیز می‌تواند با بررسی امضای دیجیتال، سلسه مالکیت مبلغ انتقال یافته را بررسی کرده و با ارائه کلید خصوصی خود، موجودی انتقال یافته را خرج کند. بنابراین می‌توان گفت که مالکیت دارایی‌های دیجیتالی در بلاکچین، تنها با ارائه کلید خصوصی (و امضای تراکنش) اثبات می‎گردد.

بلاک چین چیست
بلاک چین چیست
  • خرج مجدد دارایی (Double Spending)

مسأله دیگر آن است که فرد دریافت کننده تراکنش، مطمئن باشد که فرستنده، تراکنش را دوبار یا چند بار خرج نکرده باشد. برای حل این مشکل نیازمند آنیم که از اطلاعات تمامی تراکنش‌ها از ابتدا تا آن تراکنش باخبر باشیم. بنابراین در بلاک چین بیت کوین، تمامی اطلاعات تراکنش‌ها از ابتدا تا به امروز، به صورت عمومی منتشر می‌شود.

علاوه بر این، نودهای شبکه برای تشخیص صحت تراکنش و جلوگیری از خرج مجدد دارایی، نیازمند نوعی اجماع هستند تا با اتکا بر آن بتوانند بر روی صحت اطلاعات یک زنجیره از تراکنش‌ها (به ترتیب رخداد و انتشار در شبکه) با یکدیگر توافق نمایند (در ادامه انواع روش‌های اجماع میان نودهای شبکه را توضیح خواهیم داد). بنابراین تا زمانی که اکثریت نودهای شبکه درستکار و صادق باشند، امکان خرج مجدد دارایی (به صورت سهوی یا عمدی) وجود نخواهد داشت.

تا به اینجای کار از اصول منطقی کارکرد تراکنش‌های بلاک چینی مطلع شدید؛ اما هنوز هم ماهیت تراکنش‌ها برایمان قدری مجهول است. با بررسی اجزای تشکیل دهنده تراکنش در شبکه بیت کوین، این موضوع را شفاف می‌کنیم.

پیشتر اشاره کردیم که در بلاک چین بیت کوین، دارایی‌های دیجیتالی (یا بیت کوین‌ها) از جنس تراکنش هستند. یعنی هر تراکنش، دقیقاً معادل پول نقدیست که از فرستنده به گیرنده منتقل می‌شود. برای درک بهتر، تراکنش‌های دیجیتالی شبکه بانکی سنتی را در نظر بگیرید: تراکنشی نزد بانک انجام می‌شود و موجودی از حساب فرستنده کسر و به حساب گیرنده افزوده می‌شود. اما در شبکه بیت کوین، تراکنش مستقیماً از فرستنده به گیرنده ارسال می‌شود؛ فرستنده آن را با کلید خصوصی خود امضا، و با کلید عمومی گیرنده، رمزنگاری می‌کند. گیرنده نیز تراکنش را دریافت کرده و با ارائه کلید خصوصی خود (امضای تراکنش) قادر است این تراکنش را همچون پول نقد، خرج کند. بنابراین تراکنش‌های بلاک چینی ماهیتی شبیه چک پول دارند و هر تراکنش، نمایانگر ارزشی بیرون از خود نیست؛ بلکه به خودی خود ارزشمند است.

به مثال زیر دقت کنید:

بلاک چین چیست
بلاک چین چیست

هر تراکنش شبکه بیت کوین از مجموعه‌ای ورودی و خروجی تشکیل شده است. ورودی ها (Input)، همان تراکنش‌های دریافتی هستند که هنوز خرج نشده اند (یعنی در هیچ تراکنش دیگری به عنوان ورودی استفاده نشده‌اند) که به آن‌ها اصطلاحاً UTXO)Unspent Transaction Output) یا «خروجی یک تراکنش قبلی خرج نشده» می‌گوییم. خروجی‌های تراکنش (Output) نیز در حقیقت شامل مجموعه آدرس‌های گیرنده یا گیرندگان تراکنش هستند. در مثال بالا، باب از یک تراکنش 50 بیت کوینی خرج نشده، به عنوان ورودی تراکنش A استفاده کرده و در قسمت خروجی‌ها، آدرسی از آلیس (گیرنده تراکنش) و آدرس دیگر متعلق به خود را قرار داده است تا بعد از انتقال 0.5 بیت کوین به آلیس، 49.5 بیت کوین باقیمانده به آدرس خودش بازگردد. لازم به ذکر است که اگر باب آدرس خود را به عنوان خروجی دوم در این تراکنش قرار نمی‌داد، باقیمانده 50 بیت کوین، به عنوان کارمزد، به آدرس ماینری که این تراکنش را تأیید و بلاک حاوی آن را استخراج کرده انتقال می‌یافت.

همچنین آلیس برای انجام تراکنش B و انتقال بیت کوین به یکی از کارمندانش، از 3 ورودی (شامل تراکنش خرج نشده‌ای که از باب دریافت کرده است) استفاده کرده و آدرس بیت کوین کارمندش را به عنوان تنها خروجی این تراکنش وارد کرده است. پس اکنون متوجه شدیم که هر تراکنش بیت کوین می‌تواند شامل چندین ورودی و خروجی باشد و مقادیر مختلف بیت کوین، می‌توانند با یکدیگر ترکیب شده و یا تقسیم شوند.

بلاک چین چگونه کار میکند؟ -کاربران بلاک چین

شبکه بیت کوین مبتنی بر حفظ حریم خصوصی کاربران خود است. اگر نگاهی به سیر فناوری‌های دیجیتال از آغاز پیدایش اینترنت تا کنون داشته باشیم، می‌دانیم که سیستم‌های مالی همواره با دو چالش اساسی از سوی کاربران و حکومت‌ها دست به گریبان بوده‌اند. از یک سو کاربران مایل به حفظ حریم خصوصی خود بوده و راضی به انتشار اطلاعات هویت و تراکنش‌های خود نزد بانک‌ها نیستند؛ و از سوی دیگر حکومت‌ها برای مبارزه با جرائم مالی و پولشویی، به رهگیری تراکنش‌های کاربران نیاز دارند.

روشی که بیت کوین برای حفظ حریم خصوصی کاربران خود استفاده می‌کند، انتشار عمومی اطلاعات تراکنش‌ها در عین ناشناس ماندن طرفین تراکنش است. در شبکه بیت کوین تراکنش‌ها به جای اینکه بین دو شخص با هویت‌های مشخص جابجا شود، بین کلیدهای عمومی و آدرس‌های بیت کوین جابجا می‌شوند. اطلاعات تراکنش ها در اختیار عموم قرار دارند ولی تنها چیزی که از آنها مشخص است، انتقال بیت کوین از یک آدرس به یک آدرس دیگر است. هویت طرفین تراکنش در این روش کاملاً مخفی است. این روش حفظ حریم خصوصی، تقریباً مشابه روش به کار گرفته شده در بازار های معاملاتی بورس است. بسیاری از آن‌ها، اطلاعات زمانی و مبالغ مبادله شده در بازار خود را به صورت عمومی منتشر می‌کنند، اما هیچ اطلاعاتی از هویت افراد شرکت کننده فاش نمی‎‌کنند.

بلاک چین چیست
بلاک چین چیست

بنابراین روش به کار رفته در شبکه بیت کوین را می‌توان پاسخی به چالش‌های حفظ حریم خصوصی در اینترنت دانست: عمومی بودن اطلاعات، در عین حفظ حریم خصوصی؛ شناسایی و رهگیری تراکنش‌ها در بلاک چین، در عین ناشناس ماندن.

مقامات قضایی و دولتی در صورت مشکوک بودن به تراکنش‌های یک یا چند آدرس، می‌توانند اطلاعات هویتی کاربر را از سرویس دهندگان کیف پول یا صرافی‌های رمز ارز دریافت کنند. ضمن اینکه کاربران نیز ضمن حفظ حریم خصوصی خود، در صورت متهم شدن به اعمال مجرمانه می‌توانند با افشای سابقه تراکنش‌های خود به صورت داوطلبانه، از خود رفع اتهام کنند.

بلاک چین چگونه کار میکند؟ -بلاک ها در بلاک چین

اجازه دهید همینجا قدری توقف کنیم و از خود بپرسیم لزوم وجود بلاک در بلاک چین چیست؟ مگر بلاکچین یک دیتابیس ایمن برای نگهداری و انتقال داده‌ها نیست؟ پس چه لزومی دارد که این داده ها در بلاک ها جمع آوری شده و سپس بلاک ها را به هم مرتبط سازیم؟ چرا این ارتباط میان تک تک داده ها برقرار نشود و اصطلاحاً دیتا چین (datachain) نداشته باشیم؟

پاسخ بسیار ساده است: فلسفه وجودی بلاک چین، حفظ ارتباط زمانی داده‌ها و تغییرناپذیری آن‌هاست که این امر تنها با بکارگیری ساختمان داده‌ای شامل داده‌ها و هش آن‌ها امکان پذیر است. این ساختمان داده همان بلاک نام دارد. می‌توانیم داده‌ها را یک به یک ذخیره کرده و روی هر یک از آن‌ها عملیات رمزنگاری و اجماع شبکه را اعمال کنیم. اما مهمترین مسأله، این است که این ساختار چقدر قابلیت استفاده دارد و اصطلاحاً مقیاس پذیری آن چقدر است؟ در حقیقت فرقی نمی کند که بلاک های بلاک چین شما حاوی یک تراکنش (یا یک داده) باشد، یا هزاران تراکنش؛ در هر دو حالت شما با بلاک چینی روبرو هستید که از مکانیزمی مشابه برای ایمن سازی داده‌ها استفاده کرده و فقط ساختمان داده آن با دیگری متفاوت است (هر بلاک ساختمان داده‌ای است که موقعیت زمانی تراکنش‌ها در بلاک چین و همچنین ارتباط آنها با یکدیگر را مشخص می‌سازد). اما برای مقیاس پذیری بیشتر و رقابت پذیری بلاک چین با سایر شبکه‌های سنتی انتقال ارزش (همچون پی پال یا ویزا)، نیازمند آنیم که به بلاک‌هایی با ظرفیت بیشتر اندیشیده و داده‌ها را به صورت بسته‌های چندتایی ذخیره کنیم.

پارامترهای مشترک در همه بلاک‌های یک بلاک چین، حجم بلاک (block size) و زمان بلاک (block time) هستند. حجم بلاک، نمایانگر میزان ظرفیت هر بلاک برای ذخیره سازی اطلاعات است. به عنوان مثال حجم بلاک ها در بلاک چین بیت کوین 1 مگابایت (البته پس از اجرای آپدیت سگویت، این میزان دچار تغییراتی شد که در مقاله‌‌ی مربوط به سگویت، به تشریح آن پرداخته‌ایم)، و در بلاک چین بیت کوین کش 8 مگابایت است. همچنین زمان بلاک از جمله پارامترهای ثابتی است که توسط کد اولیه بلاک چین تعیین گردیده و در هر بلاک چین ، بنا به کاربردها و ملاحظات گوناگون، متفاوت است. زمان بلاک مفهومیست که به فاصله زمانی متوسط میان ساخت دو بلاک متوالی در شبکه اطلاق می‌گردد. به عنوان مثال زمان ساخت بلاک در بلاک چین بیت کوین به طور میانگین 10 دقیقه است.

اصلی ترین اجزای تشکیل دهنده یک بلاک، همان داده‌ها هستند؛ به عنوان مثال داده‌های تراکنش‌های مالی شامل آدرس دیجیتالی طرفین تراکنش، مبلغ و زمان انجام تراکنش است. این اطلاعات، بدنه (Body) یک بلاک را تشکیل می‌دهند؛ اما هر بلاک شامل یک هدر (header) یا سربرگ نیز هست. به عنوان مثال در بلاک چین بیت کوین، هدر بلاک شامل هش بلاک قبلی (previous block hash)، هش ریشه درخت مرکل (Merkle root)، برچسب زمانی (timestamp)، نسخه بلاکچین مورد استفاده (version)، سختی شبکه در زمان ساخت بلاک (Difficulty) و عدد نانس (Nonce) می‌باشد. اگر این اصطلاحات برای شما نا آشناست، نگران نباشید؛ در ادامه آنها را به تفصیل شرح خواهیم داد.

اطلاعات موجود در هدر بلاک، در حقیقت همان اجزائی هستند که زنجیره (chain) را می‌سازند. اما آیا همه اعضای شبکه قادر به مشاهده و ثبت و تایید داده‌های موجود در بلاک چین هستند؟ برای پاسخ به این سوال ابتدا باید به توضیح مفهوم گره یا نود (node) در شبکه بپردازیم.

بلاک چین چیست
بلاک چین چیست

بلاک چین چگونه کار میکند؟ – نقش نودها در بلاک چین

هر یک از مشارکت کنندگان در حفظ شبکه بلاک چین، یک نود نام دارد. نودها کامپیوترها یا سرورهایی هستند که هر کدام یک نسخه از تمامی اطلاعات شبکه را در اختیار داشته و وظیفه اعتبار سنجی داده‌ها (این داده‌ها در شبکه بلاک چین بیت کوین شامل تراکنش‌های مالی هستند) و کسب اجماع مورد نظر برای محافظت از شبکه در برابر حمله‌ها و کلاهبرداری ها را بر عهده دارند. روش های اجماع در بلاک چین های گوناگون متفاوت است اما برای سادگی، در این قسمت نیز بلاک چین بیت کوین را مد نظر قرار می‌دهیم که الگوریتم اجماع آن «گواه اثبات کار» یا PoW  نام دارد. در این روش نودها با توان پردازشی که در اختیار دارند، برای تایید تراکنش‌ها و ساخت بلاک‌های جدید، با یکدیگر رقابت می‌کنند.

شاید بپرسید انگیزه نودها برای محافظت از شبکه چیست؟ این انگیزه از دو بخش تشکیل شده: پاداش شبکه و کارمزد تراکنش‌ها. طبق قراردادی از پیش تعیین شده در کد بیت کوین، اولین تراکنش در هر بلاک، یک تراکنش مخصوص (اصطلاحاً تراکنش coin base) است که در طی آن بیت کوین های جدیدی تولید شده و به استخراج کننده آن بلاک تعلق میگیرد. مبلغی که به عنوان جایزه و پاداش به استخراج کننده تعلق میگیرد، هم انگیزه ایست برای جذب نود ها و استخراج کننده های بیشتر (که طبیعتاً منجر به افزایش امنیت و پایداری شبکه می‌شود) و هم راهیست برای صدور بیت کوین های جدید و تزریق آنها به گردش مالی. از آنجا که هیچ  نهاد مرکزی ای در این شبکه وظیفه عرضه بیت کوین های جدید را برعهده ندارد، این روش بهترین راه حل است.

همانطور که استخراج طلا در دنیای واقعی، نیازمند صرف هزینه های بسیار و استفاده از ماشین آلات مخصوص است، استخراج بیت کوین نیز علاوه بر مصرف برق زیاد، به پردازنده‌های محاسباتی بسیار قوی نیاز دارد. در مورد استخراج طلا، این طلاهای استخراج شده هستند که به معدنچیان انگیزه تهیه ماشین آلات مخصوص و تحمل شرایط سخت کاری را می‌دهند؛ در مورد بیت کوین نیز صدور بیت کوین های جدید و اختصاص آن به استخراج کننده (به عنوان پاداش) است که باعث ایجاد انگیزه در استخراج کنندگان می‌شود. علاوه بر این، یک انگیزه بزرگ دیگر نیز کارمزد تراکنش‌های موجود در یک بلاک است که پس از استخراج، به استخراج کننده تعلق میگیرد. اگر در تراکنشی خروجی تراکنش از مقدار ورودی آن کمتر باشد، ما به التفاوت آن به عنوان کارمزد تراکنش در نظر گرفته می‌شود. به عبارت دیگر پاداش یک استخراج کننده علاوه بر بیت کوین های جدید تولید شده در هر بلاک، مجموع کارمزد تراکنش های موجود در آن بلاک نیز می‌باشد. مقدار کل بیت کوین های تولید شده و در گردش دارای سقف محدود ٢1 میلیون BTC (واحد یک بیت کوین) است. از آنجا که پس از رسیدن به این مقدار، بیت کوین جدید دیگری در هنگام استخراج بلاک‌ها تولید نمی‌شود، پاداش استخراج کنندگان تنها از طریق کارمزد تراکنش‌های موجود در آن بلاک پرداخت می‌گردد.

بلاک چین چیست
بلاک چین چیست

اما روش کار ماینرها به چه صورت است؟

پس از انجام هر تراکنش جدید در شبکه، اطلاعات تراکنش های جدید در میان تمام نودهای شبکه توزیع می‌شود. هر نود، تراکنش های جدید را در یک بلاک قرار داده و توان پردازشی خود را صرف یافتن پاسخ معمای ریاضی الگوریتم اثبات کار می‎کند (ماهیت این معمای ریاضی را در قسمت مربوط به اجماع توضیح خواهیم داد). در واقع همه نودهای شبکه برای یافتن پاسخ این مسأله ریاضی با یکدیگر رقابت می‌کنند و هر ماینری که توان پردازشی بیشتری در اختیار داشته باشد، شانس بیشتری برای برنده شدن دارد. در نهایت یک نود پاسخی برای بلاک خود یافته و اصطلاحاً بلاک جدید را استخراج (Mine) می کند. سپس این پاسخ را برای تمامی نودهای دیگر شبکه ارسال می‌کند. سایر نودها تراکنش های موجود در بلاک را بررسی کرده و در صورت اطمینان از صحت آنها و همچنین عدم وجود مشکل دابل اسپند (خرج مجدد دارایی)، این بلاک را تأیید (confirm) می‌کنند. سپس همه نودها آخرین بلاک استخراج شده را به زنجیره بلاک‌های قبلی ذخیره شده در سیستم خود اضافه کرده و برای استخراج بلاک بعدی (که دربرگیرنده هش بلاک قبلی است) اقدام می‌کنند.

احتمالاً ذهنتان گرفتار این سوال است که انجام این مسابقه ریاضی ظاهراً بیهوده و صرف انرژی (برق) هنگفت برای فراهم ساختن توان پردازشی، دقیقاً چه لزومی دارد؟ چرا بلاک های جدید با یک رای گیری ساده در میان تمام نودهای شبکه ساخته نمی‌شوند؟ پاسخ این سوالات در مکانیزم اجماع شبکه نهفته است که در قسمت بعدی به آن می‌پردازیم.

اجماع (Consensus)

پیش از اختراع بیت کوین، نیک زابو ایده پروژه‌ای به نام بیت گلد (BitGold) را مطرح کرد که شباهت‌های بسیار زیادی با بیت کوین کنونی داشت. اما پروژه بیت گلد یک نقطه آسیب پذیر داشت و آن، روش اجماع نودهای شبکه بود. زابو برای حل مسأله بیزانتین (که پیشتر آن را توضیح دادیم) در سیستم‌های توزیع شده و همتا به همتا، بر کثرت نودها (یا آدرس‌ها) تکیه داشت؛ یعنی مادامی که تعداد نودهای درستکار شبکه در اکثریت باشند (بیش از 50 درصد نودها درستکار باشند)، تراکنش‌ها به درستی ثبت شده و بلاک‌ها نیز به درستی تشکیل می‌شوند. اما این روش اجماع با مشکل بزرگی با نام حملات سیبیل (Sybil Attack) مواجه بود.

واژه Sybil از یک مورد مطالعاتی درباره زنی به نام Sybil Dorsett گرفته شده که به دلیل اختلال چند شخصیتی تحت درمان قرار داشت. در حمله سیبیل، مهاجمان با ایجاد آدرس‌های جعلی پرشمار، بدون صرف هزینه خاصی، اکثریت نودهای شبکه را در اختیار گرفته و به این ترتیب در هنگام اجماع، نودهای واقعی (و درستکار) را به حاشیه می‌رانند. آن‌ها با این کار می‌توانند از دریافت یا ارسال بلاک‌ها اجتناب ورزیده و از دسترسی سایر کاربران به شبکه جلوگیری کنند. آن‌ها همچنین قادرند با انجام حمله 51 درصدی، ترتیب تراکنش‌ها را تغییر داده، از تایید شدن برخی آن‌ها جلوگیری کنند. این اقدامات در نهایت راه را برای انجام تراکنش‌های دابل اسپند (خرج مجدد دارایی) هموار می‌سازد. پروژه بیت گلد به دلیل وجود همین نقایص کلیدی، هیچگاه به مرحله عمل نرسید؛ اما ساتوشی ناکاموتو مخترع بیت کوین، با استفاده از الگوریتم اجماع «گواه اثبات کار (PoW)»، این مشکل را مرتفع کرد. الگوریتم گواه اثبات کار را می‌توان بجای «هر IP یک رأی»، به عنوان «هر CPU یک رأی» تعبیر کرد. اتفاق نظر دسته جمعی در این روش، بر روی طولانی‌ترین زنجیره‌ (تراکنش‌ها) که بیشترین توان پردازشی صرف آن شده است متمرکز می‌شود.

روش‌های اجماع در بلاک چین های گوناگون، متفاوت است. الگوریتم اجماع مورد استفاده در بلاک چین بیت کوین (و همچنین رمز ارزهایی همچون لایت کوین، بیت کوین کش و اتریوم)، گواه اثبات کار (PoW) نام دارد. بلاک چین های مبتنی بر این روش، عمومی و بدون مجوز هستند؛ به این معنا که هر شخصی به اختیار خود می‌تواند با تأمین تجهیزات سخت افزاری و دانلود نسخه کامل بلاک چین، به داده‌های شبکه دسترسی یافته و در ثبت و اعتبارسنجی داده‌ها مشارکت داشته باشد؛ در این بلاک چین ها اطلاعات به صورت شفاف در اختیار همگان قرار داشته و هویت افراد معمولا به شکل نام مستعار (و در برخی موارد همچون بلاک چین های زی کش یا مونرو به صورت ناشناس) است. علاوه بر الگوریتم گواه اثبات کار، روش‌های اجماع دیگری همچون گواه اثبات سهام (Proof of Stake or PoW) و اثبات سهام محول شده (Delegated Proof of Stake or DPoS) نیز وجود دارند. الگوریتم اثبات سهام در رمز ارزهایی همچون نئو (NEO)، تزوس(Tezos)، ترون (Tron)، آنتولوژی (Ontology) و کیوتوم (QTUM) به کار رفته است. در این روش، نودها بدون نیاز به قدرت پردازشی، و تنها با اختصاص بخشی از سهام (رمز ارز) موجود در کیف پول‌های خود به شبکه، می‌توانند در اعتبارسنجی تراکنش‌ها و ساخت بلاک‌ها مشارکت کرده و در ازای هر تراکنش، کارمزد دریافت کنند. روش اثبات سهام محول شده (DPoS) نیز گونه خاصی از الگوریتم اثبات سهام است که با محدودسازی شمار نودهای اعتبارسنج شبکه، سطح بسیار بالاتری از مقیاس‌پذیری را فراهم می‌کند. در این روش، رای دهندگان برای اجماع در شبکه، می‌توانند حق استفاده از سهام خود را به دیگران منتقل کنند تا به صورت وکالتی از طرف آن‌ها در رای‌گیری شرکت نمایند. بلاک‌چین رمز ارزهایی همچون EOS، Lisk و Ark از این روش برای اجماع شبکه استفاده می‌کنند.

احتمالاً تا به اینجای کار پاسخ برخی از سوالات خود را گرفته‌اید. با مطالعه سرگذشت بیت گلد، حتماً حالا می‌دانید که چرا الگوریتم اجماع بیت کوین، تنها با یک رأی‌گیری ساده در میان نودها کار نمی‌کند و نیازمند توان پردازشی عظیم است.

لزوم به کارگیری الگوریتم گواه اثبات کار در بلاک چین بیت کوین، از آنجا نشأت می‌گیرد که ساتوشی ناکاموتو، در وایت پیپر معروف خود، برای حل مشکل دابل اسپند (خرج مجدد تراکنش ها) استفاده از سرور تایم استمپ (Timestamp) یا «برچسب زمانی» برای تراکنش ها را پیشنهاد کرد. عملکرد یک سرور تایم استمپ، اینگونه است که ابتدا هش یک بلاک (شامل تراکنش ها) را گرفته و جزئیات زمانی آنها را در یک رشته تایم استمپ ذخیره و به طور عمومی منتشر می‌کند. تایم استمپ ها وجود تراکنش ها و ترتیب زمانی رخداد آن ها را اثبات می‌کنند. لازم به ذکر است که هر تایم استمپ در هش خود، در بر دارنده تایم استمپ بلاک قبلی خود نیز هست. به این ترتیب زنجیره‌ای از هش های تایم استمپ های به هم وابسته تشکیل می‌شود که جزئیات زمانی تراکنش ها را ثبت کرده و عملاً خرج مجدد دارایی را غیرممکن می‌سازد. به بیان ساده‌تر نودهای اعتبارسنج، هر تراکنش را تنها یکبار به عنوان ورودی تراکنش‌های دیگر می‌پذیرند و تمامی تراکنش‌های بعدی که آن را به عنوان ورودی استفاده کنند، دابل اسپند شناخته شده و رد می‌شوند.

بلاک چین چیست
بلاک چین چیست

برای پیاده‌سازی یک سیستم ذخیره تایم استمپ غیرمتمرکز و توزیع شده در میان نودهای شبکه، از الگوریتم اجماع «گواه اثبات کار» استفاده می‌کنیم که طرح و ایده اولیه آن در الگوریتم هش کش (Hashcash) توسط آدام بک (Adam Back) معرفی شده و هدف آن مبارزه با حملات اسپم ایمیلی بود.

مبنای عملکرد روش گواه اثبات کار، رقابت برای حل یک مسأله ریاضی پیچیده، از طریق آزمون و خطای پی در پی است. به این صورت که هر نود (ماینر) شبکه، با استفاده از الگوریتم رمزنگاری واحدی (مانند الگوریتم SHA-256 در شبکه بیت کوین)، محتویات بلاک جدید (شامل اطلاعات تراکنش ها، برچسب زمانی و هش بلاک قبلی) را به همراه یک عدد متغیر تصادفی به نام نانس (nonce)، به دفعات هش می کند تا به یک جواب مشخص و از پیش تعیین شده برسد (به عنوان مثال مقادیر عددی کوچکتر یا مساوی

00000000000000000010e1ee222f0165a8374aaeaac73bea0adf964f3d4f298e).

اگر بخش مربوط به رمزنگاری یک طرفه را به دقت مطالعه کرده باشید، حتماً تا کنون نقش عدد نانس را حدس زده‌اید. طبق تعریفی که پیشتر ارائه دادیم، توابع هش یک طرفه، در ازای هر ورودی یکتا، یک هش خروجی یکتا تولید می‌کنند و این عمل تکرارپذیر است؛ یعنی هر چندبار که ورودی یکسانی را به تابع بدهید، هر بار خروجی یکسانی تولید خواهد شد. پس هش محتویات یک بلاک، همیشه مقدار ثابتی خواهد داشت؛ مگر اینکه یک متغیر آزاد (یعنی نانس) را به محتویات بلاک اضافه کنیم تا هر بار با تغییر مقدار آن، یک هش کاملاً متفاوت تولید شود. حتماً متوجه شده‌اید که افزودن نانس به عنوان یک پارامتر ورودی تابع هش، همان چیزیست که این مساله ریاضی را دشوار ساخته و حل آن را ارزشمند می‌سازد. در واقع می‌توان گفت، تمامی ماینرها با صرف قدرت پردازشی خود، در پی یافتن عدد نانس صحیحی هستند که اگر به ورودی‌های ثابت تابع هش افزوده شود، هش خروجی مقداری کوچکتر یا مساوی با جواب از پیش تعیین شده داشته باشد. این عدد از پیش تعیین شده «هش تارگت (target Hash)» نام دارد که مقدار آن از طریق مکانیزم سختی شبکه (Difficulty) تعیین می‌گردد.

سختی شبکه معیاریست که میزان پردازش مورد نیاز برای یافتن یک هش کوچکتر یا مساوی با هش تارگت را نشان می‌دهد. هرچقدر سختی شبکه افزایش یابد، تعداد صفرهای ابتدایی هش تارگت افزایش یافته (که منجر به کوچکتر شدن بازه مورد قبول برای هش صحیح می‎شود)، و طبیعتاً یافتن هش مورد نظر را دشوارتر می‌سازد. سختی شبکه تقریباً هر دو هفته یکبار (به بیان دقیقتر، بعد از هر 2016 بلاک جدید)، به صورت خودکار، به گونه‌ای تنظیم می‌شود که زمان میانگین ساخت بلاک (Block Time) ده دقیقه باشد. یعنی اگر زمان میانگین ساخت 2016 بلاک قبلی بیشتر از 10 دقیقه باشد، به معنای آن است که بخشی از قدرت پردازشی ماینرها، طی این مدت از شبکه خارج شده و بنابراین سختی شبکه در این مرحله کاهش می‌یابد. همچنین اگر اگر زمان میانگین ساخت 2016 بلاک قبلی کمتر از 10 دقیقه باشد، به معنای آن است که در این مدت، قدرت پردازشی موجود در شبکه افزایش یافته است (یا تعداد نودها بیشتر شده، یا نودها از دستگاه‌های ماینر بیشتری استفاده کرده‌اند، و یا تکنولوژی دستگاه‌ها ارتقا یافته و در زمان کمتر، پردازش بیشتری انجام می‌شود)؛ پس در این مرحله سختی شبکه تا جایی افزایش می‌یابد که زمان میانگین ساخت بلاک‌ها همان 10 دقیقه باقی بماند.

بلاک چین چیست
بلاک چین چیست

حال که مکانیزم اجماع «گواه اثبات کار» را به درستی درک کردید، احتمالاً هنوز چند سوال جدی برایتان باقیست: آیا همه این عملیات پیچیده، کاری بیهوده نیست؟ آیا طرح یک معمای هش برای ساخت بلاک و سعی و رقابت برای یافتن پاسخ آن، همچون کندن و پرکردن یک گودال در خاک نیست؟ آیا بهتر نبود، این محاسبات و پردازش‌های سنگین به هدفی معنادار (همچون محاسبه لایه‌های پروتئین برای پیشرفت‌های پزشکی، یا جستجوی حیات فرازمینی، یا درمان سرطان از طریق نگاشت دی.ان.اِی و ….) اختصاص می‌یافت؟ این همه پردازش و مصرف برق هنگفت تنها برای ساختن یک بلاک از تراکنش‌ها؟

پاسخ صریح ما به این سوال این است که خیر! هیچ کدام از این محاسبات بی‌معنا و بی‌هدف نیست. ذات محاسبات ماینرها در شبکه بیت کوین، به هیچ وجه شبیه به کندن و پرکردن گودال نیست. چرا که شما با کندن گودال پیشرفت می‌کنید. با هربار بیل زدن، گودال شما عمیق‌تر می‌شود و این موضوع را با چشم می‌بینید. این یک فرایند خطیست که نتایج آن با مقیاس‌ها، خط‌کش‌ها و ترازها قابل اندازه‌گیریست. اما در الگوریتم اثبات کار هیچ نشانه‌ای از پیشرفت در حل مسأله وجود ندارد. شما هرگز نمی‌توانید بگویید سی درصد این مساله را حل کرده ام و هفتاد درصد آن باقی مانده است؛ چرا که احتمال یافتن هش یک بلاک پس از 24 ساعت کار مداوم بر روی آن، با احتمال یافتن آن در همین لحظه برابر است (یا با احتمال یافتن آن در هر لحظه دیگری). شما برای یافتن هش صحیح، با تغییر عدد نانس، تک تک راه حل‌ها را آزمون و خطا می‌کنید. این کار درست مثل انداختن سکه شیر یا خط است؛ شما برای یافتن یک هش 256 بیتی، سعی می‌کنید سی و شش سکه را به هوا بیندازید و همه آن‌ها شیر بیایند. در هر بار تلاش، شانس شما یکسان است. جالب است بدانید که درست همین ماهیت تصادفی اثبات کار است که آن را ارزشمند می‌سازد. شما نمی‌توانید با مرتبط ساختن این محاسبات با اهداف ارزشمند دیگر (همچون محاسبه لایه‌های پروتئین برای پیشرفت‌های پزشکی) یک استاندارد ارزش ایجاد کنید. ماهیت بیت کوین مشابه پول و وظیفه آن، درجه بندی ارزش است؛ نه اینکه صرفاً چیزی بارزش فرضی ارائه دهد. ارزش ذاتی بیت کوین، به کارایی آن است؛ به انجام معاملات به صورت غیرمتمرکز و ایمن، در یک بستر مالی با عرضه محدود و کنترل شده. اما بیت کوین برای ارائه‌ی این ارزش، نیازمند قربانی کردن (یا صرف کردن) زمان و انرژیست. اگر قدری عمیقتر به این قضیه نگاه کنید، متوجه می‌شوید که الگوریتم اثبات کار، همچون پلی است که بیت‌های بی‌معنا (تراکنش‌های بیت کوین) را به ارزش‌های واقعی این دنیا (ماده، انرژی و زمان) گره می‌زند (موهبتی که طلا به طور طبیعی از آن برخوردار است) و به عنوان آخرین توضیح، بیت کوین برای داشتن استانداردی از ارزش، باید جایی خارج از تمام طرح‌های ارزشمند فعلی واقع شود؛ باید خودش به تنهایی بی‌ارزش باشد.

اما برای فهم بهتر این قسمت، سوال دیگری برایتان مطرح می‌کنیم: به نظر شما چرا باید چنین مکانیزمی برای افزایش سختی وجود داشته باشد؟ اصرار ساتوشی برای ثابت نگه‌داشتن زمان ساخت بلاک (بر روی 10 دقیقه) از کجا نشأت می‎گیرد؟ چرا ساتوشی ناکاموتو تمام نبوغ و خلاقیت خود را صرف دشوار نمودن فرایندها کرده است؟ قدری به این سوال فکر کنید؛ پاسخ آن را در قسمت بعدی (یعنی زنجیره) بررسی خواهیم کرد.

زنجیره در بلاک چین

فلسفه ارتباط زنجیروار بلاک‌ها به یکدیگر، ثبت همیشگی و تغییرناپذیری تراکنش‌هاست. در شبکه بلاک چین، هش محتویات هر بلاک، جزئی از داده‌های ورودی بلاک بعدیست؛ این بدان معنیست که هرگونه تغییر در اطلاعات بلاک‌هایی که پیشتر استخراج شده‌اند، تقریباً غیرممکن بوده و برای ایجاد کوچکترین تغییری در آن‌ها، باید با صرف توان پردازشی بسیار زیاد، دوباره به روش اثبات کار، آن بلاک و تمامی بلاک‌های بعد از آن را استخراج کنید.

برای درک بهتر این مکانیزم، لازم می‌دانیم در اینجا مفهومی تحت عنوان «زنجیره مرجع» یا «زنجیره اصلی» را به شما معرفی کنیم که در وایت پیپر بیت کوین نیز بارها به آن اشاره شده است. پیشتر گفتیم که تمامی تراکنش‌های تایید شده در بلاک چین بیت کوین، در بلاک‌‌های داده ذخیره شده و این بلاک‌ها به صورت زنجیروار به یکدیگر مرتبط می‌شوند. حال هرگاه ماینرها به طور تصادفی یا به عمد، دو یا چند بلاک را همزمان (یا با فاصله زمانی بسیار اندک) استخراج کنند، زنجیره تراکنش‌ها به چند انشعاب تقسیم می‌شود که شماتیک آن را در تصویر زیر مشاهده می‌کنید.

بلاک چین چیست
بلاک چین چیست

در صورت وقوع چنین رخدادی، نودهای شبکه موظفند اولین بلاکی که به آن‌ها اعلام شده را اعتبارسنجی کرده و عملیات ساخت بلاک جدید را بر روی این بلاک ادامه دهند (یعنی هش این بلاک را در محاسبات خود برای استخراج بلاک بعدی وارد کنند). در این میان، زنجیره‎ای که بیشترین توان پردازشی نودها را به خود اختصاص داده و عملیات ساخت بلاک‌های جدید بر روی آن دنبال شود، «زنجیره مرجع»، «زنجیره اصلی» یا اصطلاحاً «طولانی‌ترین زنجیره (longest chain) نام می‌گیرد و سایر انشعابات نیز اصطلاحاً فورک (Fork) نامیده می‌شوند. بلاک‌هایی که در این فورک‌های ناموفق ایجاد شده اند، بلاک‌های اورفان (Orphan blocks) نامیده می‌شوند.

بلاک چین چیست
بلاک چین چیست

علت پیدایش بلاک‌های اورفان معمولاً دو چیز است:

1-بلاک‌های ناصحیح: این بلاک‌ها حاوی تراکنشی با نیت خرابکارانه (خرج مجدد یک دارایی یا دابل اسپند) هستند و نود خرابکار به منظور جلوگیری از تایید تراکنش اولیه خود (یعنی تراکنش صحیح)، اقدام به استخراج و تایید بلاکی همزمان با بلاک صحیح می‌کند تا تراکنش صحیح (تراکنش اول) را مردود ساخته و تراکنش دابل اسپند را در زنجیره اصلی قرار دهد. اما همانطور که پیشتر گفته بودیم، امکان چنین اقدامی در شبکه بیت کوین بسیار کم است. چرا که همیشه تراکنش اولیه زودتر به دست اکثریت نودها رسیده و احتمال تایید آن بسیار بیشتر از تراکنش دابل اسپند است. در چنین حالتی، نود خرابکار برای تأیید تراکنش دوم خود و قرار دادن آن در زنجیره اصلی، باید از قدرت پردازشی بسیار زیادی برخوردار باشد تا هم این بلاک و هم بلاک‌های بعدی را با سرعتی بیشتر از سرعت سایر نودهای شبکه استخراج کرده و زنجیره اصلی را با بلاک‌های خود تشکیل دهد. با توجه به توضیحاتی که تا کنون داده‌ایم، اکنون می‌دانیم که چنین کاری عملاً غیر ممکن است؛ زیرا مادامی که بیشترین قدرت پردازشی در اختیار اکثریت درستکار شبکه باشد، احتمال چنین کاری بسیار اندک بوده و اجرای آن بسیار پرهزینه است.

2-بلاک‌های تاخیریافته: این بلاک‌ها معمولاً به طور تصادفی، همزمان (یا با فاصله زمانی اندکی) از بلاک دیگری استخراج می‌شوند؛ اما نکته آنجاست که این دو بلاک، حاوی تراکنش‌های صحیح اما مشترکی هستند و از آنجا که می‌دانیم هر تراکنش باید تنها یکبار در زنجیره ثبت شود، در اینجا یک فورک ایجاد شده و بلاکی که به هر دلیلی دیرتر به اکثریت نودهای شبکه برسد، اورفان خواهد شد.

بلاک چین چیست
بلاک چین چیست

در هر دو مورد، برای این که ترتیب تراکنش‌ها در زنجیره به درستی حفظ شود، پس از مشخص شدن و قطعی شدن زنجیره صحیح، شبکه به طور خودکار مجدداً سازماندهی شده (re-Org) و تراکنش‌های غیرمشترک بلاک‌های اورفان را مجدداً به استخر تراکنش‌های تأیید نشده و در صف انتظار، بازمی‌گرداند.

اگر به تصویر بالا بیشتر دقت کنید، در پایین تصویر، محور زمان را مشاهده خواهید کرد. می‌توان زمان را عاملی کلیدی در امنیت شبکه دانست. در روش “گواه اثبات کار” اگر گروهی از هکرها بخواهند بلاکی که در گذشته ساخته شده است را تغییر دهند، باید آن بلاک و تمام بلاک‌های پس از آن را مجدداً استخراج کنند (چرا که در صورت ایجاد هرگونه تغییر کوچکی در محتویات یک بلاک، هش آن نامعتبر گردیده و باید مجدداً استخراج شود. همچنین از آنجا که هش هر بلاک جزئی از محتوای بلاک بعدی خود است، پس هش بلاک‌های بعدی نیز تا انتها نامعتبر شده و تمامی بلاک‌ها باید مجدداً استخراج شوند). در چنین شرایطی اگر هکری مایل به دستکاری، تغییر یا سانسور در بلاک‌های گذشته باشد، باید عملیات استخراج مجدد را به قدری سریع انجام دهد که به زنجیره طولانی‌تر ساخته شده توسط اعضای درستکار شبکه رسیده و حتی از آن سبقت بگیرد تا به عنوان زنجیره مرجع کل شبکه انتخاب شود. اما چنین شانسی عملاً نزدیک به صفر بوده و با اضافه شدن هر بلاک جدید به زنجیره، این شانس به طور تصاعدی کاهش می‌یابد.

وقتی از امنیت در شبکه بلاک چین صحبت می‎کنیم، باید بدانیم که این امنیت توسط هیچ نهاد، شخص، یا گروهی تأمین نمی‌شود؛ بلکه این مکانیزم‌های هوشمندانه شبکه (یعنی هزینه‌ها و مشوق‌ها) هستند که اعضای شبکه را به رفتار درستکارانه و پرهیز از خطا و اشتباه سوق می‌دهند. اگر شخصی مایل به تغییر تراکنش ارزشمندی (به نفع خود) در گذشته باشد، مجبور است هزینه بسیار هنگفتی (شاید حتی بیشتر از ارزش آن تراکنش) را بابت تأمین توان پردازشی بپردازد و این در حالیست که با تأمین چنین توان پردازشی عظیمی، استخراج بلاک‌های جدید و دریافت پاداش شبکه به ازای هر بلاک، برای او سود بسیار بیشتری خواهد داشت و در عین حال به حفظ امنیت شبکه نیز کمک خواهد کرد.

با این حال، برای انجام هرگونه تغییر، تقلب و سانسور در شبکه بلاک چین، تنها یک حالت متصور است: حمله 51 درصدی. حمله 51 درصدی (یا به طور دقیق‌تر 50%+1) زمانی اتفاق می‌افتد که فرد خرابکار موفق شود اکثریت توان پردازشی شبکه را با خود همراه کرده و آن‌ها را قانع کند تا زنجیره خرابکارانه او را به عنوان زنجیره مرجع ادامه دهند. چنین امری نیز بسیار بعید به نظر می‌رسد؛ چرا که خرد جمعی همواره به حرکت در مسیر صحیح تمایل داشته و برای جلب رضایت اکثریت شبکه به همکاری در اقدام خرابکارانه نیز، به انگیزه‌ای بسیار بیشتر از مشوق‌های طبیعی شبکه نیاز است. ضمن اینکه انجام حمله 51 درصدی، با ریسک از دست رفتن اعتبار کل شبکه و بی ارزش شدن تمامی دارایی‌ها همراه است. علاوه بر این، تعداد نودهای شبکه هر روز در حال افزایش بوده و توزیع توان پردازشی در استخرهای استخراج نیز، همواره قابل تغییر است که همه این موارد به امنیت بیشتر شبکه منجر خواهد شد.

 

بلاک چین چیست
بلاک چین چیست

 

در نهایت، مادامی که بیشتر توان پردازشی موجود در شبکه در اختیار استخراج کنندگان خوش‌نیت و درستکار باشد، زنجیره‌ای که توسط آن‌ها تولید می‌شود طولانی‌تر و خدشه‌ناپذیرتر شده و در نتیجه در رقابت با زنجیره‌هایی که توسط افراد خرابکار ایجاد می‌شود، پیروز شده و به عنوان زنجیره مرجع انتخاب می‌شود. حال می‌توان با اطمینان گفت که طولانی ترین زنجیره، واقعی ترین روایت را از تاریخچه تراکنش ها ارائه می‌دهد.

اکنون با درک تمامی اجزای بلاک چین و نحوه کارکرد آن‌ها، می‌توان به آخرین سوال مطرح شده نیز پاسخ داد؛ اینکه چرا ساتوشی ناکاموتو، انقدر بر پارامتر سختی شبکه تاکید داشت و اساساً اصرار او برای برای ثابت نگه‌داشتن زمان ساخت بلاک (بر روی 10 دقیقه) از کجا نشأت می‎گیرد؟

پاسخ ساده است؛ ساتوشی، همزمانی تصادفی ساخت بلاک‌ها را از قبل پیش‌بینی کرده و برای کاهش هدررفت توان پردازشی شبکه، این فاصله ده دقیقه‌ای میان ساخت بلاک‌ها را تعیین کرده بود. به عنوان مثال، اگر فرضاً میانگین فاصله زمانی ساخت بلاک‌ها 1 دقیقه بود، میزان استخراج بلاک‌های همزمان، به طور نمایی رشد می‎کرد و چنین اقدامی باعث اختلال بیشتر (re_Orgهای پی در پی) در شبکه می‌شد. ضمن اینکه ساتوشی می‌دانست که طبق قانون مور، پیشرفت‌های سخت‌افزاری هیچگاه متوقف نشده و توان پردازشی کامپیوترها روز به روز افزایش خواهد یافت که در این صورت، لزوم به کارگیری پارامتر سختی شبکه، بیش از پیش احساس می‌شد.

البته حق دارید اگر بگویید، این فاصله زمانی 10 دقیقه‌ای، باعث کاهش مقیاس‌پذیری بیت کوین، و مانعی برای پذیرش عمومی آن شده است. اما طبق پست‌هایی که ساتوشی ناکاموتو در زمان حضورش در فاروم بیت کوین تاک (Bitcoin talk) منتشر می‌کرد، می‌توان فهمید که معماری مورد نظر او برای آینده بیت‌کوین، شامل بلاک‌هایی به مراتب بزرگتر (حتی با ظرفیتی از مرتبه گیگا بایت) بوده است. یعنی مادامی که میزان تراکنش‌های شبکه رو به افزایش است، سایز بلاک‌ها نیز افزایش یافته و در صورت لزوم نامحدود (بسته به تعداد تراکنش‌ها) باشد. در چنین شرایطی (با درنظر داشتن پهنای باند اینترنت در زمان اختراع بیت کوین)، زمان لازم برای انتقال داده‌ها به تمامی نودهای شبکه، ساتوشی را برا آن داشت که حفظ این فاصله زمانی 10 دقیقه‌ای را جدی شمرده و مکانیزم تغییر سختی شبکه را برای کنترل آن تعبیه کند.

آنچه که در اینجا توضیح دادیم، نحوه کارکرد یک بلاک چین عمومی، با تمرکز بر روی شبکه بیت کوین بود. البته انواع دیگری از بلاک چین، همچون بلاک چین‌های خصوصی (سازمانی) و بلاک چین های کنسرسیومی (فدرال) نیز وجود دارند که هدف و رویکرد متفاوتی را دنبال می‌کنند.

جمع بندی

در این مقاله، ابتدا با ماهیت وجودی بلاک چین آشنا شده و دریافتیم که بلاک چین، ابزاری برای یکپارچه سازی و هماهنگی سیستم های توزیع شده و همتا به همتاست. سپس به مرور سیر تاریخی فناوری اطلاعات و پیشرفت‌های عصر دیجیتال پرداختیم تا نقایص سیستم‌های سنتی متمرکز و لزوم استفاده از بلاک چین در ذخیره‌سازی و مدیریت داده‌ها را درک نماییم. سپس به مرور مفاهیم پایه‌ای همچون تمرکزگرایی و تمرکززدایی، توزیع شدگی، دفترکل توزیع شده، رمزنگاری و هش پرداختیم تا با تسلط بر ادبیات مفهومی بلاک چین، بتوانیم تعاریف دقیق‌تری را برای توصیف آن ارائه دهیم. در نهایت، با تمرکز بر روی شبکه بیت کوین، به عنوان اولین پیاده سازی موفق بلاک چین در حوزه مالی و اقتصادی، تلاش کردیم تا تمامی اجزاء و نحوه کارکرد هریک از بخش‌های این سیستم را در تعامل با سایر بخش‌ها توضیح دهیم.

 

:منابع

Pelzl, J., & Paar, C. (2009). Understanding Cryptography, A Textbook for Students and Practitioners. Springer.

Gilder, G. (2018). Life After Google: The Fall of Big Data and the Rise of the Blockchain Economy. Gateway Editions.

Drescher, D. (2017). Blockchain Basics: A Non-Technical Introduction in 25 Steps. Apress

Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.

https://b2n.ir/022541

https://b2n.ir/394579

https://b2n.ir/801642

https://b2n.ir/809918

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.

1 نظر
  1. mrkazeeem

    سلام..
    ممنون بسیار مفید و همه فهم بود
    واقعا بهره بردم
    بازم مطالب اینچنینی شیر کنید…