فرض کنید یک فایل اکسل را با دوستانتان به اشتراک گذاشتهاید که هر یک از شما را به یک عدد مرتبط میکند. در واقع این عدد همان دارایی شما است. بگذارید این عدد را «TestCoin» بنامیم. هر یک از شما باید یک کپی از فایل اکسل را داشته و باید آن را به روز نگه دارد. شما فقط میتوانید «TestCoin» های خود را در فایل اکسل خود به شخص دیگری منتقل کنید. وقتی این کار را انجام میدهید، باید به دیگران اطلاع دهید تا آنها هم بتوانند نسخه اکسل خود را به روزرسانی کنند. هر زمان که تغییری در فایل به شما اطلاع داده میشود، شما نیز باید آن را به بقیه منتقل کنید. این مثال مشابه کاری است که باید در یک دفتر کل انجام شود. حال بیایید وضعیت بدتری را تصور کنیم. شرایط زیر را در نظر بگیرید:
1) آرش به همه دروغ میگوید که شایان تمام «TestCoin» های خود را به او منتقل کرده است. (معاملات متقلبانه)
2) آرش به علی میگوید که میخواهد تمام «TestCoin» های خود را به سارا منتقل کند، اما به بقیه میگوید که میخواهد همه آنها را به شایان منتقل کند. (Double Spending یا دو بار خرج کردن یک پول)
3) آرش و شایان با هم دعوا میکنند. دوستان شایان از بهروزرسانی فایل اکسل خود با هر گونه تراکنشی که به آرش مربوط میشود خودداری میکنند. بقیه هم فکر میکنند این کار غیرمنصفانه بوده و همچنان به آرش اجازه میدهند تا تراکنشها را دریافت کند (سانسور).
سناریوهای مختلفی وجود دارد که این فایلهای اکسل میتوانند از هماهنگی خارج شوند. راهحلهای اجتماعی مختلفی برای این مشکلات وجود دارد. مانند رای گیری برای حل اختلافات یا انتخاب یک فرد از بین گروه به عنوان مدیر به صورت هفتگی. این روشها شاید بتواند بین شما و دوستانتان جوابگو باشد اما دفتر کلی را در نظر بگیرید که حاوی میلیونها یا میلیاردها نفر است که یکدیگر را نمیشناسند و یا نمیتوانند به یکدیگر اعتماد کنند. در این صورت دیگر روشهای بالا نمیتوانند مشکلات گفته شده را رفع کنند. میبینید که توزیع و به روز نگه داشتن یک دفتر کل بدون هیچ مرجع مرکزی چه قدر میتواند دشوار باشد.
برای مشکل تراکنش متقلبانه، در سال ۱۹۷۸ مقاله RSA انتشار یافت که در آن راهکار رمزگذاری کلید عمومی و امضاهای رمزنگاری شده ارائه گردید. جایی که آرش تراکنشی را از جانب شخص دیگری ایجاد میکند. با راه حل مطرح شده میتوان به جای ذخیره نام یک شخص در دفتر کل، کلید عمومی آنها را ذخیره کنیم. به این ترتیب، هر کسی که میخواهد انتقالی انجام دهد باید درخواست خود را با کلید خصوصی خود امضا کند.
بیت کوین
برای سایر مشکلات راه حلی مطرح نشد تا زمانی که ساتوشی ناکاموتو به طور ناشناس مقاله خود را در مورد بیت کوین را در سال 2008 منتشر کرد. این مقاله هم مشکل سانسور و هم مشکل double spending را حل میکرد. راه حل به طور خلاصه به شرح زیر بود:
1) دفتر کل با اضافه کردن بلاکها (مجموعهای از تراکنشها) به روزرسانی میشود. در زمان اضافه کردن بلاک جدید، فقط یک نفر (یک نفر در اینجا میتواند گروهی از افراد باشند که با یکدیگر همکاری میکنند) میتواند بلاک جدید را ایجاد و به دفتر کل اضافه کند. او در مورد اینکه چه تراکنشهایی در بلاک گنجانده میشود، اختیار کامل دارد.
2) هر بلاک علاوه بر هش خود، مقدار هش بلاک قبلی را نیز نگهداری میکند. این روش، بلاکها را به یک لیست پیوندی یا یک "بلاکچین" تبدیل میکند.
3) با اجرای یک بازی، انتخاب میشود که چه کسی سازنده بلاک بعدی باشد: هر کسی که زودتر یک هش با تعداد صفرهای معین در ابتدای هش پیدا کند، میتواند بلاک خود را به دفتر کل اضافه کند. این کار سخت محاسباتی، اثبات کار (POW) و افرادی که این محاسبات را انجام میدهند ماینر نامیده میشوند.
4) هر زمان که یک ماینر با دو زنجیره معتبر و در عین حال متضاد مواجه شود، ماینر طولانیترین زنجیره را برای انجام کار بر روی آن انتخاب میکند.
5) افراد برای انجام این بازی تشویق میشوند: برنده بازی، به عنوان پاداش مقداری ارز تعیین شده برای آن دفتر کل را (برای مثال بیت کوین) دریافت میکند.
این یک خلاصه نسبتا ساده از راه حل ساتوشی ناکاموتو بود که دید خوبی از اصول کلیدی راه حل به ما میدهد. ما میتوانیم با در نظر گرفتن دنبالهای از بلاکهای تراکنش، به دفتر کل توزیع شده دست پیدا کنیم. بلاکها تنها چیزی هستند که وضعیت دفتر را تغییر میدهند. سازندگان بلاک با توجه به قدرت هش، به صورت احتمالی انتخاب میشوند. تا زمانی که بخش بزرگی از قدرت هش در اختیار یک گروه نباشد، سانسور وdouble spending را تحت فرضیات معقول غیرممکن میکند. شما نمیتوانید تراکنشها را سانسور کنید. فقط میتوانید آنها را به تأخیر بیندازید. زیرا حتی اگر تلاش کنید، به زودی شخص دیگری بلاکی را به دفتر کل اضافه میکند که شامل آن میشود. شما نمیتوانید یک پول را دو یا چند بار خرج کنید. زیرا تنها یکی از تراکنشهای شما تایید و به بلاکچین اضافه میشود.
مشکلات بیت کوین
بیتکوین از نظر قیمت و محبوبیت در سالهای اخیر موفقیتهای چشمگیری داشته است. این موضوع جایزه بازی POW را بسیار ارزشمند کرده است. ماینرها در این مسابقه برای برنده شدن از قدرت هش محاسباتی بالا و برق ارزان استفاده میکنند. به گفته Digiconomist، استخراج کنندگان بیتکوین سالانه دو میلیارد دلار برق مصرف میکنند. همه اینها برای پردازش حدود هفت تراکنش در ثانیه. شبکه بیت کوین تقریباً به اندازه نیوزلند برای پردازش هفت تراکنش در ثانیه برق مصرف میکند.
با در نظر گرفتن این موضوع، به یاد داشته باشید که این بازی صرفا یک بازی حاصل جمع صفر (Zero-Sum Game ) است که فقط برای تصمیم گیری در مورد انتخاب تولیدکننده بلاک بعدی ابداع شده است. افزودن قدرت هش بیشتر به شبکه به هیچ وجه باعث بهبود عملکرد آن نمیشود. این سیستم فقط به منظور ارائه راهی برای انتخاب سازندگان بلاک طراحی شده است تا در نهایت تضمین کند که یک گروه خاص نتواند برای همیشه کنترل شبکه را دراختیار داشته باشد.
اوضاع از این هم میتواند بدتر باشد: در واقع اکنون POW کار خود را به درستی انجام نمیدهد. هزینههای بالای ماین کردن، بازیکنان کوچکتر را از این مسابقه خارج کرده است و باعث شده قدرت هش، متمرکز شده و در اختیار عدهای خاص قرار بگیرد. تا آنجا که ما میدانیم هیچ یک از آنها از مزیت هش خود به طور مخرب استفاده نمیکنند اما کل فرض بیتکوین این است که ما فقط باید به رمزنگاری اعتماد کنیم، نه به افراد. شما به کدام اعتماد میکنید؟