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