این روزا هرجا رو نگاه میکنی، از مطبوعات تا تلویزیون تا شبکههای مجازی، محاله حداقل با یک تیتر در رابطه با Blockchain (یا نامهای دیگهی اون یعنی: بلاکچین، زنجیره بلوک، زنجیره بلاک) مواجه نشی. یه عده میگن بلاکچین مساوی با همون بیتکوین(!) و متحول کنندهی دنیای اقتصاد و مبادلاتش هست. یه عده میگن زنجیره بلاک آیندهای محقق شده از نسل نوی اینترنت هست. یه عده میگن زنجیرهبلوک بَده و منحرفکنندهی بشریت از راه راست و باید کلاً از چرخهی هستی محو بشه و … امّا از اونجایی که ذهن جستجوگر من همیشه سرش درد میکنه برای موضوعاتی که این همه حاشیه دور و برش هست و دوست داره از حقیقتشون سر دربیاره، تصمیم گرفتم برم دنبالش و ببینم این بلاکچین نهایتاً چیه. اولین جواب رو به سؤال سادهی من در رابطه با این که “بلاکچین چیه؟“، ویکیپدیا داد:
برداشت آزادی از تعریف بلاکچین (Blockchain) در ویکیپدیا:
“بلاکچین، دفترحساب توزیعشده و غیرمتمرکزی عمومی (Public) است که از آن به منظور ثبت معاملات میان چندین کامپیوتر، در ساختاری peer-to-peer استفاده میشود.”
نکته: در این مطلب شما بارها و بارها با کلمهی بلاکچین یا معادلهای اون که در پاراگراف اول، داخل پرانتز ذکر شدن، و همینطور بلاک یا همون بلوک، روبهرو میشید که دلیلش اینه که تمام این کلمات یکسان هستن و معادل همدیگه و در متون و گفتارهای فارسی از همهی این کلمات استفاده میشه، بنابراین هدف این شد که با استفاده از تمام این کلمات معادل، مخاطبی که این مطلب رو میخونه اگر بعدها چشمش به هرکدوم از این کلمات افتاد بدونه که منظور از همهی این واژهها، همون Blockchain هست.
نگاهی به گذشته: از زیرساختهای Server Base تا ایدهی شبکههای تورنت (Torrent)
بیشتر ارتباطات در دنیای اینترنت از گذشته تا به الان بر مبنای ساختاری Client/Serverای هست. به این صورت که معمولاً دیتابیسها که محل نگهداری اطلاعات هستن، به صورت متمرکز در یک سرور (یا سیستم) ذخیره و نگهداری میشن و هرکس قصد دسترسی به اطلاعات رو داشته باشه باید به سرور متصل بشه و درخواست دریافت دادههای موردنظرش رو بده. پس به عبارتی ما در دنیای اینترنت با ساختار سلسله مراتبی از ارتباطات روبهرو هستیم.
ذخیرهسازی دیتابیسها در یک سیستم باعث میشه که متناسب با افزایش حجم اطلاعات دیتابیس، هزینهای که در قبال اجاره یا خرید فضای ذخیرهی این اطلاعات پرداخت میشه هم، افزایش پیدا کنه. از طرف دیگه، مشخصهی اصلی این دیتابیسها که در دنیای امروز دارن تبدیل میشن به دیتابیسهای قدیمی و سنّتی، این هست که این دیتابیسها تحت نظر یک مدیریت واحد هستن. یعنی چی؟
فرض کنین قراره در یک سازمان، دیتابیسی برای ذخیره اطلاعات کارکنان راهاندازی بشه؛ مسئول انفورماتیک اون سازمان به عنوان مدیر این دیتابیس تصمیم میگیره که چه نوع دادههایی در دیتابیس ذخیره بشن، چه کسانی بتونن دادهای رو در دیتابیس ذخیره کنن یا تغییر بدن، چه کسانی فقط مجوز خوندن اطلاعات از دیتابیس رو داشته باشن، چه کسانی اصلاً اجازهی دسترسی به دیتابیس رو نداشته باشن و …
خب پس دو تا مشکل دیگه که در رابطه با دیتابیسهای سنّتی وجود داره عبارتاند از: اول این که فقط یک مرجع قدرت وجود داره (به عبارتی یک مدیر/ یک مکان فیزیکی برای دیتابیس اصلی)، و از طرف دیگه همین تک مرجعی بودن قدرت باعث میشه که فقط یک نقطهی شکست وجود داشته باشه (معروف به SPoF یا Single Point of Failure). اگر مرجع اصلی قدرت بنا به هر دلیلی از دست بره، دسترسی و مدیریت دیتابیس هم به گونهای از بین میره یا حداقل بازگردانیش پیچیده و هزینهبر خواهد بود.
امّا همزمان با حضور قدرتمند زیرساختهای کلاینت/سروری در دنیای اینترنت، ساختاری خلق شد به اسم تورنت (Torrent). احتمالاً حداقل یک بار با torrent سر و کار داشتین و باهاش کار کردین. امّا بهجهت یادآوریِ تعریف تورنت و پاسخ سادهای به سوال «تورنت چیست؟»:
“در ساختار تورنت با مجموعه ای از کلاینتهای peer-to-peer (کلاینتهایی که مستقیم به هم متصل و با هم در ارتباط اند) سر و کار داریم که این کلاینتها از طریق پروتکلی که مشهورترینش BitTorrent نام داره، قادرند تا فایلهایی رو در بستر اینترنت توزیع کنند.”
پس اگر مثلاً من در سیستم خودم فیلم ارباب حلقهها رو دارم و از طرف دیگه یکی تو یک کشور دیگه (البته کشوری که قوانین سختگیرانهای برای حق کپیرایت و استفاده از تورنت و اینا نداره، اصلاً همین ایران خودمون) هم میخواد این فیلم رو حالا به هردلیلی رایگان بگیره و هر دومون هم روی سیستمهامون نرمافزاری مثل … (ترجیحاً یک سرچ بزنین تو گوگل هزارتا نرمافزار میاره) نصب کردیم، اون بندهخدا میتونه مستقیماً از سیستم من این فیلم رو دانلود کنه، بدون هیچ واسطهای یا نیاز به اتصال به یک سرور دیگه.
در واقع ما در ساختار تورنت، دیتابیسی از فایلها رو داریم که برعکس ساختار دیتابیسهای سنّتی که در بالا شرح دادیم، این دفعه ما نخواستیم یا اصلاً هزینش رو نداشتیم که یک سرور برای ذخیرهی دیتابیسمون تهیه کنیم. پس، محل ذخیرهی دیتابیس تو این ساختار، سیستم کاربرانی هست که به ساختار تورنت متصل میشن.
حالا ما به جای یک دیتابیس متمرکز در یک سیستم (سرور)، یک دیتابیس توزیعشده (distributed database) داریم که هر کاربری توی این ساختار با استفاده از برنامهای که از پروتکل BitTorrent پشتیبانی میکنه، میتونه به این دیتابیس توزیع شدهی عظیم در حد گسترهی جهانی متصل بشه و فایلهایی رو که میخواد برای خودش کپی کنه.
امّا ساختار تورنت، یک نقص بزرگ داره:
در این ساختار امکان رهگیری فایلها وجود نداره. همین موضوع هم عاملی هست برای این که از یک فایل میلیونها کپی در سراسر دنیا منتشر شده و این ساختار به نوعی غیرقانونی قلمداد بشه (تصور کنین یک فایل یک بار خریداری بشه و بارها و بارها به رایگان در اینترنت توزیع بشه. قطعاً این امر میتونه به خیلی از صنایع مثل: فیلم، موسیقی، نشر و … آسیبهای جبرانناپذیری وارد کنه).
حالا چی میشه اگر بتونیم به این نظام بی قانون، اندکی نظم و قانون بدیم؟ یعنی بتونیم ساختاری رو ایجاد بکنیم که بر مبنای مزیتهای زیرساختی ارتباطات peer-to-peer که به نوعی زیرساخت بهتری نسبت به ساختارهای سنّتی ذخیرهسازی دیتابیسها محسوب میشن، این امکان رو هم داشته باشه که فایلها رو در اون رهگیری کنیم و از طرف دیگه به گونهای فایلها رو امن کنیم که مطمئن باشیم هر فایلی که در این ساختار ردوبدل میشه نسخهی اصل هست و نه نسخهای کپی یا جعلی و تزریق شده به ساختار از جانب یک هکر. در واقع اینها سؤالاتی بود که در هنگام تولد ایدهی بلاکچین مطرح شدند.
بلاکچین: مفاهیم پایه
بلاک چین از ساختار ارتباطات peer-to-peer بهره میگیره امّا با این تفاوت که در اینجا، تمام اقداماتی که در بستر این ساختار انجام بشن، قابل رهگیری هستن. برای رهگیری دقیق فایلها باید این امکان رو داشته باشیم که مطمئن بشیم الان اون تنها نسخه از اون فایل هست که دست من هست و همزمان به فرد دیگهای تعلّق نداره. پس در هنگامی که من فایل رو از کاربر دیگهای دریافت میکنم، باید تاریخچهای از این که اون فایل کجاها بوده و دست کیا بوده و این که الان دست من هست رو هم دریافت کنم و از طرفی مطمئن باشم که این تاریخچه از مبادلات فایل، توسط کسی دستکاری نشده. ادامه خواندن “بلاکچین یا زنجیره بلوک – ققنوسی برخاسته از خاکستر تورنت”