
دسترسی سریع به عناوین این مقاله
بلاک چین زیربنای موفقترین پروژههای رمز ارزها و یک فناوری با آینده کاملا روشن است. ارزهای دیجیتال نوین نظیر بیت کوین و اتریوم، که روز به روز توجه بسیاری را به سرمایهگذاری جلب میکنند، ویژگیهای منحصربهفردشان را مدیون تکنولوژی Blockchain هستند. پروژهها و ایدههای بسیار خلاقانهای بر بستر آن شکل گرفته و روز به روز کاربرد بلاک چین در عرصهها و صنایع مختلف افزایش پیدا میکند. اما بلاک چین چیست و چطور کار میکند؟
اگر میخواهی یک رزومه موفق داشته باشی اینجا کلیک کن
آشنایی با بلاک چین
قبل از بررسی نحوه کار و کاربردها، ابتدا بهتر است با فناوری نام برده آشنایی پیدا کنیم. منظور از زنجیره بلاکها چیست و اتصال بین آنها چه خاصیتهای ویژهای به Blockchain بخشیده است؟
بلاک چین چیست؟
بلاک چین را باید نوع خاصی از پایگاه داده (دیتابیس) دانست. ممکن است در بررسی تخصصی رمز ارزها نظیر بیت کوین عبارت دفتر کل توزیع شده (DLT –> Distributed Ledger Technology) را نیز در کنار Blockchain شنیده باشید. هر دو، به مفهوم یکسانی اشاره میکنند.

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

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

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

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

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