شاید شما هم در مورد فناوری بلاکچین چیزهایی شنیده باشید اما اغلب افرادی که در مورد این فناوری صحبت می‎کنند، آشنایی کافی با آن ندارند. در این مقاله به مفاهیم پایه بلاکچین خواهیم پرداخت و توضیح خواهیم داد که این فناوری چیست و ساز و کار آن چگونه است.

تصورات رایج اما نادرست در مورد بلاکچین:

قبل از اینکه به معرفی بلاکچین بپردازیم ابتدا باید بدانیم که بلاکچین چه چیز نیست:

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



 

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

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

اگرچه این فناوری نوظهور است اما ایده بلاکچین، اولین بار در سال ۱۹۹۱ در مقاله ای تحت عنوان “چگونگی اعمال برچسب‌های زمانی روی اسناد دیجیتال” در ژورنال کریوپتوگرافی، مطرح شد. اما محبوبیت این فناوری بیشتر مدیون بیتکوین و رمزارزها است.

 

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

کارایی فناوری بلاکچین مدیون امنیت غیرمتمرکز این سیستم است. این بدین معنی است که هیچ بخشی از بلاکچین، در یک نود (Node) یا مرکز داده ذخیره نشده است و برای نفوذ و دستکاری در آن، باید به تمامی اجزا این شبکه دسترسی پیدا کرد که، امر محالی به نظر می‎رسد. اساس این فناوری بر پایه ۵ مشخصه زیر است:

  • کد هش مبتنی بر کریپتوگرافی (Cryptographic Hash)
  • لجر یا دفتر غیر قابل تغییر (Immutable Ledger)
  • شبکه نظیر به نظیر (P2P Network)
  • پروتکل اجماع (Consensus Protocol)
  • سیستم راستی آزمایی بلوک یا استخراج (Block Validation or Mining)

 

کد هش مبتنی بر کریپتوگرافی:

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

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

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

 

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

لجر یا دفتر غیر قابل تغییر (Immutable Ledger):

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

فرض کنید زنجیره ای از بلوک‎ ها با کد هش‎های مربوط به خود و بلوک قبلی به صورت زیر موجود باشد:

اگر کسی اطلاعات بلوک اول را تغییر دهد کد هش آن هم تغییر خواهد‎ کرد:

 

کد هش اولین بلوک (HASH#1)، جزیی از بلوک دوم است و کد هش بلوک دوم هم جزیی از بلوک سوم و الی آخر. بنابراین با ایجاد هر تغییری در بلوک اول، تمامی کد هش ‎های بلوک‏‎های موجود در زنجیره تغییر خواهند کرد و این باعث نامعتبر شدن کل زنجیره بلوک ها می‎شود.


شبکه نظیر به نظیر (P2P Network):

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

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

 

پروتکل اجماع (Consensus Protocol):

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

هر زمانی که یک نود (Node)، بلوک جدیدی را به شبکه اضافه می‎کند تمامی کاربران، باید صحت بلوک افزوده شده را با پروتکلی تایید کنند. معمولاً نودها، در مورد درستی این بلوک به یک اتفاق نظر یا اجماع می‎رسند که این، از طریق یکی از متدهای POW یا POS امکان‎پذیر می ‎شود.

نودها، بلوک جدید اضافه شده را با متد راستی آزمایی تست می‎کنند که شامل تایید تمامی کد هش‎‏های موجود در بلوک است. اگر بلوک معتبر باشد، تمامی نودها بلوک را به عنوان بخشی از زنجیره و شبکه در نظر خواهند گرفت.

در صورتیکه که کاربران مختلف، نسخه‎های بلاکچین مختلف داشته باشند، نسخه بلاکچین کوچکتر را حذف و نسخه بزرگتر را مبنا قرار خواهند داد. بر مبنای قانون تحمل خطای بیزانس (Byzantine Fault Tolerance)، نودهای شبکه زمانی به اجماع در مورد درستی شبکه بلاکچین می‎رسند که حداقل ۲/۳ کل نودهای موجود در شبکه، معتبر باشند.

 

سیستم راستی آزمایی بلوک‏‎ها یا استخراج (Block Validation or Mining):

به فرایند افزودن یک بلوک جدید در شبکه بلاکچین، که الزامات متد PoW را برآورده کند، استخراج می‎گویند. متدهای مختلفی برای استخراج وجود دارد که ممکن است برای هر شبکه بلاکچین متفاوت باشد.

  ‎‌‎‎‏  متد PoW، کاربر را ملزم به اعمال محدودیت‏‏‏‎هایی بر روی کد هش می‎ کند. یکی از این محدودیت‎ها، ملزم کردن کاربر (ماینر) به تست تمامی حالات ممکن کد هش است. این الزام، میزان سختی شبکه را تعیین می‎کند.

زمانی که نود ماینر، الزامات PoW را برآورده کرد، ماینر، بلوک جدید را به شبکه می ‎افزاید و نودهای دیگر، درستی PoW را برمبنای پروتکل اجماع چک می‎کنند. اگر بلوک جدید، معتبر باشد تمامی نودها، بلوک جدید را در نسخه بلاکچین خود اضافه می‎کنند.


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