من دانیال فقیهی هستم.
دانش آموخته مهندسی کامپیوتر دانشگاه گیلان. قصد دارم در این مقاله در مورد تکنولوژی بلاک چین که این روز ها صحبت زیادی پیرامونش مطرح شده بنویسم.
مقدمه- بلاک چین
مدتی هست که حرف های زیادی در مورد بلاک چین میشنویم . همچنین همه ما احتمالا تا کنون کلمه “بیت کوین” یا به طور کلی تر “ارز های دیجیتال” رو شنیده ایم. ممکن است برای خیلی از ما این پرسش به وجود آید که بیت کوین چیست ؟! یک وسیله برای پولشویی و کار های خلاف ؟! نوعی پول مافیایی و مخفی ؟! اصلا فرضا که بدانیم بیت کوین چیست آن وقت مفهوم بلاک چین چیست و چه ارتباطی با هم دارند؟!
باید به این نکته توجه کرد که تا مفهوم بلاک چین را ندانیم قاعدتا فهمیدن بیت کوین و ارز دیجیتال بی معنی است! اگر خیلی ساده بخواهیم ارتباط این دو را متوجه شویم بیت کوین زیر مجموعه ای از بلاک چین است .به این مثال خوب فکر کنید : ” اگر بلاک چین یک شهر باشد . آنگاه بیت کوین و به طور کلی ارز های دیجیتال تنها یک خانه در آن شهر است” .
بلاک چین خود به کلید واژه های بسیاری مرتبط است. مانند گراف ,شبکه , اینترنت , انتقال داده , “ارتباط کلاینت – سرور” و …
بیت کوین و ارز های دیجیتال تنها یک کاربرد از “شبکه بلاک چین” هستند. به این منظور برای دانستن پیشنیاز ها باید متوجه شویم که “شبکه” دقیقا چیست و سپس به سراغ این موضوع برویم که اساسا شماتیک شبکه بلاک چین چه تفاوتی با شبکه های فعلی در اینترنت جهانی دارد!
شبکه چیست
برای اینکه ساده متوجه شویم شبکه مجموعه ای از عضو های مختلف در یک گروه است که به نوعی میخواهند با هم در ارتباط باشند .در اصطلاح ریاضی این عضو ها و ارتباطشان یک “گراف” را به وجود می آورند که از راس و یال تشکیل شده یعنی عضو ها راس ها و نقاط مختلف این مجموعه , و یال ها خطوطی هستند که آن را به هم وصل می کنند و نوعی ارتباط را نشان می دهند.
شبکه می تواند هر مجموعه مرتبطی با هدفی خاص باشد. مثل شبکه بانکی که اعضای آن در شبکه اش تراکنش مالی انجام می دهند .یا شبکه های اجتماعی که افراد در آن محتوا مختلف را با هم به اشتراک می گذارند یا حتی هر شبکه غیر اینترنتی و کامپیوتری دیگر. ما اینجا به بررسی شبکه های اینترنتی میپردازیم تا پس از آن مفهوم بلاک چین و هر کاربرد دیگر آن مثل بیت کوین به سادگی دریافت شود.
شبکه های کامپیوتری
اگر به گذشته برگردیم روزی محققان تلاش کردند که دو و در ادامه چند کامپیوتر با هم در ارتباط باشند. این ارتباط یعنی انتقال داده در قالب صفر و یک کامپیوتری به هم که این صفر و یک ها دوباره در کامپیوتر مقصد
به محتوای قابل درک برای انسان مثل عکس و متن و … تبدیل می شود . پس در واقع برای ارتباط چند کامپیوتر کافی است آن ها با سیم و کابل (الکترسیته ), یا امواج الکترو مغناطیس (مثل اینترنت موبایل یا وای -فای ) و … به هم مرتبط شوند تا ولتاژ ها و یا امواج را در قالب صفر و یک را به هم منتقل کنند و دوباره در خودشان به داده تبدیل کنند.
پس در شبکه کامپیوتری از هر نوعی(چه شبکه جهانی اینترنت و چه شبکه های محلی مث LAN” “ ) هدف از ارتباط “انتقال داده” است. یعنی جا به جایی یک سری داده که میتواند انتقال یک عکس از کامپیوتر من به شما, پاسخ از یک سرور ( کامپیوتری که به شما خدمات ارایه میدهد مثلا سرور گوگل برای ارسال ایمیل شما) ،
ارسال یک پیام در یک پیام رسان برای دوستانتان , ایجاد یک تراکنش مالی اینترنتی (انتقال پول به عنوان داده در شبکه های بانکی ) و یا هر نوع انتقال داده ای که فکرش را می کنید باشد. هر انتقال از کامپیوتر به کامپیوتری که فکرش را بکنید حتی یک پیام ساده ، در واقع صفر و یک هایی در قالب خاص هستند که به صورت ولتاژ ها یا امواج به کامپیوتر ها می رسند. حالا چه در شبکه اینترنت و از کامپیوتری در هزاران کیلومتر آنطرف تر و چه برای دو کامپیوتر که با کابل یا هر شکلی به هم اتصال دارند.
تمام مثال های بالا انتقال داده بین کامپیوتر ها بود .این کامپیوتر ها میتواند کامپیوتر های معمولی مثل کامپیوتر های ما باشد . یا کامپیوتر های مخصوص و سرور ها مثلا سرور های بانکی که برنامه مخصوصی جهت نگهداری داده ها و پاسخ به اجرای انتقال های مالی دارند یا سرور های پیام رسان ها که برنامه ای دارند تا پیام های ما را از مبدا به مقصد منتقل کند و درخواست های ما را مبنی بر این انتقال داده ها اجرا کنند.
گراف و ارتباط اعضا (راس ها) یک شبکه از افراد
شبکه جهانی اینترنت
حالا بهتر مفهوم اینترنت را میشناسیم .اینترنت یک شبکه جهانی برای ارتباط و انتقال داده بین همه کامپیوتر های دنیاست و شبکه فعلی آن بیشتر بر اساس ارتباط کلاینت-سرور استوار است .کلید واژه اینجاست یک شبکه متمکز است! این ارتباط یعنی یک یا چند کامپیوتر در مرکز قرار دارند(سرور ها) و برنامه های خاصی روی خودشان دارند تا به درخواست های کاربر ها (کلاینت ها ) پاسخ دهند.این مفهوم ارتباط کلاینت-سرور است. یعنی شما به سرور در مرکز شبکه ای که در آن هستید درخواست میدهید و آن سرور به درخواست شما پاسخ میدهد . یعنی فرض کنید اگر از یک پیام رسان استفاده می کنید و می خواهید یک پیام از سمت خودتان به دوستتان بفرستید شما درواقع به سرور این پیام رسان می گویید که این کار را انجام دهد. و پیام شما ابتدا به کامپیوتر مرکزی پیام رسان(سرور آن) ارسال میشود و شما در واقع از آن می خواهید که پیامتان را منتقل کند و در پاسخ به شما سرور های آن پیام رسان پیام شما را منتقل می کند و اصطلاحا به درخواست کلاینت که شما باشید پاسخ می دهد .
یا وقتی شما یک تراکنش بانکی اینترنتی انجام می دهید شما به سرور های خدمات بانکی (مثلا سیستم شاپرک در تراکنش مالی ایران) در خواست می دهید تا پولی از حساب شما به حساب نفر دوم منتقل شود.و در پاسخ به شما سرور های آن ها هستند که این انتقال و درخواست شما را اجرا می کنند .
تمام این شبکه ها از جمله شبکه ای به عنوان یک پیام رسان خاص, شبکه اینترنتی بانکی فعلی, ارتباط با وبسایت ها داخل اینترنت و … زیر مجموعه ای از شبکه جهانی اینترنت است و در بستر آن است.تمام این شبکه ها متمرکز هستند و در واقع یک پایگاه داده و برنامه پاسخ به کاربر در مرکز شبکه وجود دارند که به درخواست کاربر ها پاسخ می دهد. و این ساختمان اکثر شبکه های در بستر اینترنت فعلی است.در این نوع شبکه های متمرکز اگر ارتباط با مرکز قطع شود شما به پایگاه داده ها ارتباط ندارید و عملا دیگر با دیگر اعضا شبکه نیز در ارتباط نخواهید بود. قطع ارتباط شما می تواند ناشی از تحریم, فیلتر , یا هر گونه نقص فنی در مرکز شبکه باشد. علاوه بر آن حجم نگهداری داده و پاسخ به کاربر در سیستم مرکز محور محدود به قدرت فیزیکی سرور است. در مورد امنیت هم دستکاری داده های یک مرکز راحت تر از دستکاری داده های غیر متمرکز است .
بلاک چین و شبکه های غیر متمرکز
لازم بود این پیشنیاز ها را بدانیم و حالا برگردیم سر موضوع اصلی خودمان بلاک چین. تا اینجا فهمیدیم که شبکه متمرکز چیست و چه ویژگی هایی دارد. و دریافتیم که شبکه های فعلی بر اساس مفهوم کلاینت سرور استوار هستند. شبکه بلاک چین اما یک شبکه غیر متمرکز است. یعنی تمام اعضای شبکه های تحت آن بدون اتصال به یک مرکز با هم در ارتباط هستند. شاید تمام افراد دقیقا دو به دو با هم مرتبط نباشند و مثلا در گراف این شبکه راس یک از طریق راس دو به راس سومی مرتبط باشد اما به هر حال از هر راس به راس دیگر در این شبکه راهی وجود دارد و به اصطلاح ریاضی گرافی همبند است.حالا دیگر یک مرکز وجود ندارد که در صورت قطع ارتباط به هر نوعی با آن شما عملا از شبکه بیرون باشید و خود اعضای شبکه هستند که انتقال داده ها را درون این شبکه انجام می دهند.و همه رونوشتی از داده ها (هر چند شاید رمزگذاری شده و نیازمند به مجوز) را در اختیار دارند. البته شبکه غیر متمرکز مفهومی کلی تر از بلاک چین است و در قدیم هم نمونه هایی از آن مانند “شبکه تورنت ” را دیده بودیم. اما بلاک چین ویژگی های خاصی دارد که در ادامه به آن خواهیم پرداخت.
سمت راست شماتیکی از شبکه غیر متمکز در مقایسه با شبکه متمرکز سمت چپ
ساختمان بلاک چین
هم ارز پارسی بلاک چین “بلوک زنجیره ای” است . اما چرا ؟! گفتیم در شبکه جهانی اینترنت تمام اتفاقی که می افتد انتقال داده از پایگاه داده ها و کامپیوتر های مختلف به هم دیگر است. شما هر کاربردی در اینترنت را در نظر بگیرید شامل این انتقال داده است . بلاک چین یک سبک خاص برای نگهداری انتقال داده ها داخل یک شبکه غیر متمکز است.یعنی هر انتقال داده (چه مالی مانند انتقال در شبکه بیت کوین و چه غیر مالی ) یک شماره مخصوص به خود یا اصطلاحا Hashدارد و هر چند انتقال داده (Transaction) در یک بلوک جای میگیرند و هر بلوک خود شماره (Hash) منحصر به فرد خودش را دارد. در ادامه هر بلوک شامل یک شماره دیگر هم هست که شماره بلاک قبل از خود را مشخص می کند. این بلوک ها عملا به هم زنجیر شده اند و این یعنی ما لیستی از تمام تراکنش ها (چه در بحث مالی مثل بیت کوین چه در هر انتقال داده دیگری در شبکه ) را داریم.این زنجیر بودن یعنی شما نمیتوانید هیچ تراکنش(انتقال داده) جدیدی به بلوک ها یا هیچ بلوکی در بین بلوک ها اضافه کنید چون هم حجم بلوک ها مشخص است هم شماره بلوک قبلی که در هر بلوک فعلی به آن اشاره میشود.
اگر با بحث ساختمان داده ها در کامپیوتر آشنا باشید پیاده سازی بلاک چین چیزی شبیه به لینک لیست است.
ویژگی های شبکه های تحت بلاک چین
همانطور که قبل تر اشاره شد این شبکه غیر متمرکز است .یعنی نیاز به سرور و فرد سوم تایید کننده در شبکه را از بین بردیم. اما چه ویژگی هایی دارد ؟!
چهار ویژگی اصلی شبکه های تحت بلاک چین را با هم مرور می کنیم.
یک ) Shared Ledger یا سند مشترک
با توجه به حذف سرور یا تایید کننده سوم در شبکه همه اعضای شبکه میتوانند در سند مشترکی که حاوی انتقال داده ها است (مثلا تغییرات بر روی یک داده ) تغییر ایجاد کنند و همزمان همه هم میتوانند با تغییرات انجام شده به روز شوند و نسخه جدید این سند را داشته باشند . فرض کنید ۴ نفر از ما عضو یک شبکه باشند و بخواهند تغییراتی روی یک متن انجام دهند . همه ما آخرین نسخه تغییرات را داشته باشیم و به محض اینکه کسی چیز جدیدی به دفتر اضافه کرد همه هم دفتر های خود را به روز کنند تا آخرین تغییرات را داشته باشند. بلاک چین ما که حاوی انتقال داده هاست همان دفتر مشترک است.و عملا همه یک نسخه از آن را دارند . تفاوت با شبکه های معمولی در این است که برای این مثال با شبکه های کلاسیک و بدون این ویژگی مجبور بودیم یک فرد سوم داشته باشیم که همه اعضا شبکه به او بگوییم تغییراتی در دفتر خودش ایجاد کند و دفتر هم فقط نزد خودش بود . مثل بانک در انتقال داده ها و تراکنش های مالی. در انتقال های بانکی با شبکه های فعلی که اگر در این شبکه بانکی فرد یک بخواهد به فرد دو مبلغی را منتقل کند در واقع به بانک درخواست می دهد که این کار را کند. و تمام حساب ها و تراکنش ها نیز نزد بانک است.
حالا اما در شبکه بیت کوین که در واقع زیر مجوعه بلاک چین است شخص سومی وجود ندارد و همه افراد ارتباط Peer to Peer دارند . اگر بخواهیم ساده بگویم یعنی تمام اعضا شبکه بدون اینکه به یک مرکز متصل باشند به هم وصل هستند و اگر شما مبلغی را به شخص دومی منتقل کنید در سند مشترک که نزد همه هست
و در واقع همان ساختار بلاک چین ماست ثبت می شود. و این یعنی دیگر بانکی در مرکز برای تایید و نگهداری تراکنش شما نیست! این یعنی یک شبکه غیر متمرکز .حال ممکن است بپرسید که اگر همه دارای این سند مشترک باشند پس امنیت و حریم خصوصی چه گونه تامین می شود ؟! ویژگی دوم بلاک چین پاسخ شما را می دهد !
دو –مجوز
در شبکه متصل غیر متمرکز همه اعضا به سند مشترک که حاوی انتقال داده هاست دسترسی دارند و در واقع چون مرکزی برای انتقال داده ها نیست تمام اعضا میتوانند در مسیر انتقال باشند. اما بخش هایی از این سند میتواند مجوز دار تعریف شود در واقع شما شاید در یک شبکه خاص بلاک چین فقط بتوانید محتویات خاصی از یک انتقال داده را ببینید حتی اگر خودتان در مسیر انتقال باشید! این اسناد رمز گذاری شده می باشند و مثل این است که برای باز کردن یک در همه ۱۰۰ کلید مختلف لازم باشد و فقط افراد دارای مجوز همه ۱۰۰ کلید لازم برای دیدن محتوای نیازمند به مجوز را داشته باشند. بیش از این وارد جزییات فنی نمیشویم اما بدانید که مثلا مانند شکل زیر شخص A می خواهد به شخص B مبلغی را منتقل کند و این تراکنش حاوی جزییات دیگری (مثلا دلیل پرداخت ، اسم فرد یا هر چیزی است) با اینکه فرد C در مسیر انتقال قرار دارد اما فقط قادر به دیدن مبدا و مقصد خواهد بود و نمی تواتند جز انتقال محتویات دیگر را ببیند.
سه-وفاق
با توجه به حذف شاهد سوم در شبکه های بلاک چین و غیر متمرکز بودن تایید انتقال ها دیگر توسط شخص یا کامپیوتر سومی (مثلا سرور های بانک) در مرکز انجام نمی شود.پس باید مکانیزمی برای این مهم وجود داشته باشد و این مکانیسم می تواند در شبکه های بلاک چینی مختلف متفاوت باشد.
چهار-قرار داد های هوشمند
این مورد بسیار جذاب و گسترده است. به زودی تغییرات گسترده ای در کسب و کار های دیجیتال ایجاد خواهد کرد. اگر بخواهید خیلی ساده متوجه شوید قرارداد هوشمند یعنی قراردادی که طرفین شرایط آن را که توسط برنامه نویسان تایین شده قبول کرده اند و در صورت ایجاد شرایط داده ای منتقل میشود !
اگر داده را پول در نظر بگیرید هزاران کاربرد فقط برای همین نوع داده خواهیم داشت.
یک مثال :
احتملا می دانید که شرکت های هواپیمایی در صورت تاخیر بیش از یک زمان معین موظف به بازگشت وجهی به عنوان جریمه به مسافران خود هستند و احتمالا این را نیز شنیده اید که بار ها شده که شرکت ها از این کار سر باز میزنند یا بسیار دیر این کار را انجام میدهند .
در این مورد فرض کنید قرارداد هوشمندی بین حساب شرکت هواپیمایی و حساب مسافران تنظیم شده باشد که به محض ایجاد شرط تاخیر بیش از بازه زمانی مشخص و مورد قبول طرفین به شکل خودکار و اجتناب نا پذیر پول به حساب شما باز میگردد!
این قرارداد ها باعث کاهش بار مشکلات حقوقی و تاخیر ها و همچنین حذف واسطه ها میشوند.
نتیجه گیری
به طور کلی شبکه های غیر متمرکز باعث افزایش امنیت و سرعت و کاهش هزینه ها و مهم ترین مورد حذف مرکزیت و تایید کننده سوم می شوند و همان طور که اینترنت اشیا و هوش مصنوعی انقلاب هایی در تکنولوژی ایجاد خواهند کرد ؛ بلاک چین و شبکه های غیر متمکز انقلابی در شبکه اینترنتی و سبک انتقال داده خواهد بود که موارد مهمی از جمله کسب و کار ها , انتقال مالی و … را دستخوش تغییر خواهد کرد .
بیت کوین و ارز های دیجیتال نیز در بستر شبکه ها غیر متمرکز و با سبک انتقال داده بلاک چین فعالیت می کنند که در شماره های بعدی در مورد آن ها بیشتر خواهم نوشت.اما این را باید مورد توجه قرار داد که مبحث بلاک چین بسیار وسع تر از ارز های دیجیتال و بیت کوین است و بیت کوین یک کاربرد کوچک از بلاک چین است. همان طور که در “TON” یا Telegram Open Network نیز از بلاک چین استفاده خواهد شد که در آینده بیشتر به آن ها خواهیم پرداخت.
لینک کوتاه:
مقاله خوبی بود ولی ساده تر مینوشتتد قابل فهمتر بود