بیت کوین (Bitcoin) بعد از گذشت 12 سال از مطرح شدن، هنوز هم با ارزش ترین ارز دیجیتال شناخته میشود. بیت کوین به عنوان اولین ارز رمزنگاری شده نقطه عطفی در اقتصاد دنیا بود که راه را برای دیگر ارزهای دیجیتال هموار کرد. در نوامبر 2008 زمانی که وایت پیپر ارز رمزگزاری شده بیت کوین منتشر و ساختار اصلی آن معرفی شد، شاید کمتر کسی قدرت احتمالی آنرا پیش بینی میکرد. ساتوشی ناکاموتو (Satoshi Nakamoto) فردی ناشناس، 12 سال پیش وایت پیپر بیت کوین را منتشر کرد که در آن از نیاز جایگزین کردن نحوه انتقال توسط بانک ها و مراکز دولتی گفت. در ادامه مقاله ناکاموتو را برای بهتر درک کردن این ارز دیجیتال قدرتمند میخوانیم.
مقدمه
تجارت در اینترنت تا به امروز برای پردازش پرداختهای الکترونیکی تا حد زیادی منحصرا به موسسات مالی، به عنوان یک واسط، وابسته بوده است. اگرچه این سیستم تا کنون به همه نیازهای مربوط پاسخ داده است اما مانند خیلی از داد و ستد هایی که برپایه اعتماد بنا شده اند دچار نقصهایی است. تراکنشهای کاملا غیر قابل برگشت در این مدل امکان پذیر نیست؛ هزینه این واسطه گری هزینه تراکنش را بیشتر میکند و همچنین هزینه بیشتری پرداختهای غیر قابل برگشت خواهد داشت. عدم انجام تراکنشهای غیرقابل بازگشت در ازای خدمات غیرقابل بازگشت، بهای سنگینتری است که پرداخت میشود چراکه با امکان بازگشت، نیاز به اعتماد افزایش مییابد. این هزینهها و نگرانیها در پرداختهای حضوری با استفاده از پولهای فیزیکی قابل پیشگیری است؛ اما هنوز روش پرداختی بدون وجود واسطه وجود ندارد. آنچه امروزه مورد نیاز است، یک سیستم پرداخت الکترونیک مبتنی بر تکنولوژی رمزنگاری است که جایگزین اعتمادی شود که در دیگر روش ها کامل نبود و به هر دو طرف اجازه دهد که مستقیما بدون حضور واسطه با همدیگر تراکنش داشته باشند ؛ تراکنشهایی که برگشت آنها از لحاظ محاسباتی غیرعملی است، از فروشندگان در برابر تقلب محافظت میکنند.
تراکنش ها (Transactions)
ما یک ارز دیجیتال را به عنوان زنجیره ای از امضاهای دیجیتال تعریف میکنیم. هر مالک با استفاده از امضای دیجیتال هش بلاک قبلی، بیت کوین و کلید عمومی فرد بعدی را انتقال میدهد و این موارد به انتهای تراکنش جدید اضافه میشود. گیرنده وجه میتواند امضا ها را تایید کند و زنجیره مالکیت تایید شود.
البته مشکل این است که دریافت کننده نمیتواند خرج نشدن دوباره پول توسط مالکین قبلی را تصدیق کند. راه حل معمول برای این مشکل در نظر گرفتن یک واسط معتمد، ضرابخانه، است که هر تراکنش را بررسی میکند. پس از انجام هر تراکنش، کوین بایستی به ضرابخانه بازگردد تا یک کوین جدید تولید شود؛ و تنها کوینهایی که مستقیما از ضرابخانه منتشر شدهاند مطمئن هستند.
اما به روشی نیاز داریم که دریافت کننده بداند که مالکین قبلی، قبل از این هیچ تراکنشی را انجام نداده اند. در اینجا منظور از اولین تراکنش، آن تراکنشی است که شمرده میشود و بنابراین تلاشهای بعدی برای خرج کردن دوباره اهمیتی ندارد. آگاهی از تمامی تراکنشها، تنها راه تصدیق عدم حضور یک تراکنش است. در روشی که ضرابخانه اساس قرار داده میشود، این مرکز با آگاهی از تمامی تراکنشها، ترتیب آنها را تشخیص میدهد. به منظور پیادهسازی چنین مدلی بدون نیاز به یک واسط معتمد، لازم است تراکنشها به صورت عمومی مخابره شوند و همچنین نیاز به سیستمی است که اعضای آن بر سر یک تاریخچهی واحد از ترتیبی که تراکنشها دریافت شده است، توافق کنند.
سرور برچسب زمانی (Timestamp Server)
راه حل پیشنهاد شده در بالا با یک سرور برچسب زمانی شروع میشود و این سرور با برداشتن هش یک بلاک برای برچسب زمانی زدن و انتشار گسترده هش کار میکند. برچسب زمانی ثابت میکند که دادهها در آن زمان به منظور کنترل هش وجود داشتهاند.
گواه اثبات کار (Proof of Work)
برای پیاده سازی یک سرور برچسب زمانی توزیع شده در یک مبنای همتا به همتا (peer-to-peer) ، لازم است که از یک سیستم گواه اثبات کار مشابه Hashcash که توسط Adam Back اختراع شده، استفاده کرد. گواه اثبات کار (POW) شامل جستجوی ارزش در زمانی است که هش صورت میگیرد؛ متوسط کار مورد نیاز در تعداد صفر بیتیهای مورد نیاز نمایانگر است و میتواند با اجرای یک هش مجزا تایید شود. برای شبکه برچسب زمانی، گواه اثبات کار با افزایش یک عدد اختیاری در بلاک پیاده سازی میشود و این تا زمانی که ارزشی پیدا شود که به هش بلاک، صفر بیت مورد نیاز را بدهد، ادامه مییابد. زمانی که تلاش CPU برای راضی کردن گواه اثبات کار گسترش یافت، بلاک بدون انجام دوباره کار، قابل تغییر نخواهد بود. از آنجا که بلاکهای بعدی در زنجیره دنبال آن قرار می گیرند، کار تغییر بلاک شامل تغییر دوباره همه بلاکهای بعد از آن است.
همچنین سیستم گواه اثبات کار، مشکل تشخیص نظر غالب یا نماینده را در تصمیمگیریهای جمعی حل میکند. اگر اکثریت بر اساس یک رای برای یک IP آدرس باشد، کسی که میتوانست به بیش از یک IP آدرس دسترسی داشته باشد، قادر بود که در این تصمیمگیری اخلال ایجاد کند. در سیستم PoW هر CPU در نهایت حق دادن یک رای را دارد و تصمیم اکثریت توسط بلندترین زنجیره مشخص میشود. چنانچه غالب قدرت CPU توسط نودهای معتبر کنترل شود، زنجیره موفق سریعتر رشد کرده و از زنجیرههای رقیب پیشی میگیرد. در ادامه نشان خواهیم داد که احتمال اینکه یک مهاجم به این نقطه برسد با اضافه شدن بلوکهای بعدی کاهش مییابد. به منظور جبران افزایش سرعت سختافزار و تعداد نودهای فعال در بازههای زمانی متفاوت، سختی PoW با متوسط متغیری غیرثابت معین میشود که متوسط تعداد بلوکها به ازای یک ساعت را مدنظر قرار میدهد.
شبکه
مراحل راه اندازی شبکه:
- تراکنشهای جدید بیت کوین به همه نودها فرستاده میشود.
- هر نود تراکنش جدید بیت کوین را در یک بلاک قرار میدهد.
- هر نود برای پیدا کردن صحت تراکنش بیت کوین با الگوریتم گواه اثبات کار شروع به فعالیت میکند.
- وقتی که نودی به پاسخ درست رسید، بلاک را برای همه نودها انتشار میدهد.
- نودهای دیگر تنها زمانی بلاک را میپذیرند که صحت تراکنشهای آن را بپذیرند و قبلا خرج نشده باشد.
- نودها پذیرش بلاک را با کار کردن روی ایجاد بلاک بعدی در زنجیره ابراز میکنند؛ در این حالت از هش بلاک پذیرفته شده، به عنوان هش قبلی استفاده میشود.
معمولا اولین تراکنش در یک بلاک، تراکنش خاصی است که ارز جدیدی را شروع میکند و خالق بلاک، مالک آن خواهد شد.
بازیابی فضای دیسک
به محض اینکه آخرین تراکنش در یک ارز زیر بلوکهای کافی قرار گرفت، تراکنشهای خرج شده قبل از آن میتوانند نادیده گرفته شوند تا فضای دیسک محفوظ باشد. به منظور انجام این کار بدون نیاز به شکستن هش بلوک، تراکنشها در یک درخت مرکل هش میشوند که تنها ریشه در هش بلوک دخیل است. در این حالت دیگر نیازی به ذخیره هشهای داخلی نیست.
تایید پرداخت تسهیل شده
تایید پرداختیها بدون راه اندازی یک نود کامل نیز ممکن است. یک کاربر تنها نیاز است که یک کپی از هدر بلاکهای بلندترین زنجیره گواه اثبات کار را نگه دارد (کاربر میتواند با بررسی نودهای شبکه به این کپی دست یابد). این کاربر باید شاخه مرکل که تراکنش را به بلاکی که در آن برچسب زمانی شده مرتبط میکند، حفظ کند. اما این روش میتواند توسط یک مهاجم مورد سوءاستفاده قرار بگیرد و تا زمانی که بر شبکه سیطره دارد، قادر به ایجاد تراکنشهای جعلی خواهد بود. یک استراتژی برای محافظت در برابر این تهدید، پذیرفتن هشدار از جانب نودهای شبکه است که این هشدارها در زمانی داده میشود که نودها بلاک نامعتبری را شناسایی میکنند. این بلاکهای نامعتبر نرم افزار کاربر را به فعالیت وا می دارند تا کل بلاک و تراکنشهای هشدار داده شده را دانلود کند و این ناسازگاری را تایید کند. روش سنتی بانکداری، دسترسی به اطلاعات را به گروههای دخیل و گروههای واسطه معتمد محدود میکند و بدین طریق به سطحی از حریم خصوصی دست مییابد. ضرورت مخابرهی تمامی تراکنشها به صورت عمومی مانع این روال میشود؛ اما حریم خصوصی همچنان میتواند با جلوگیری از جریان اطلاعات در مکانی دیگر رعایت شود: بدین صورت که کلیدهای خصوصی به شکل ناشناس نگهداری شوند.
نتیجه گیری
ما سیستمی برای تراکنشهای الکترونیکی پیشنهاد کردیم که به اعتماد متکی نیست. ما با چهارچوب معمولی که از امضاهای دیجیتالی کوینها ساخته میشوند و کنترل بسیاری برای مالک مهیا میکنند، شروع کردیم؛ اما این شیوه بدون روشی برای جلوگیری از خرج دوباره پول کامل نبود. برای حل این مشکل یک شبکه همتا به همتا پیشنهاد شد که از گواه اثبات کار برای ثبت تاریخچه عمومی تراکنشها استفاده میکرد. تغییر این تراکنشها سریعا از لحاظ محاسباتی برای مهاجم غیر عملی میشود؛ به شرطی که نودهای صادق اکثریت قدرت CPU را کنترل کنند. نودها همگی به شکل همزمان و با حداقل نیاز به هماهنگی کار میکنند. آنها نیاز به شناسایی ندارند چرا که پیغامها به یک مکان مشخصی هدایت نمیشوند و تنها نیاز است تا بر اساس توافق به مقصد برسند. نودها میتوانند شبکه را در حالی که با زنجیرهی PoW به عنوان اثباتی از وقایع رخداده زمانی که از شبکه رفتهاند، ترک کنند و یا به آن بپیوندند. آنها با قدرت پردازشی خود رای میدهند و پذیرش بلاکهای معتبر را با کار بر روی توسعه آنها نشان میدهند. هر گونه قانون و انگیزه مورد نیاز را میتوان با استفاده از الگوریتم اجماع اعمال کرد.