بسیاری بیت کوین را آغازی برای دموکراتیک کردن دنیای مالی میدانند، به همین دلیل همگی باید بدانیم ساتوشی ناکاموتو بهعنوان خالق بیت کوین، در وایت پیپر این ارز دیجیتال به چه مباحثی پرداخته است. در دنیای دیجیتالی که بهسرعت در حال تحول است، جایی که ارزهای دیجیتال توجه جهان را به خود جلب کردهاند، مطالعه وایت پیپر بیت کوین فقط مختص علاقهمندان به فناوری و سرمایهگذاران ارزهای دیجیتال نیست، بلکه همه باید آن را مطالعه کنیم. در این سند دیجیتال به انگیزه اصلی از ایجاد بیت کوین، نحوه کار آن، برطرف کردن مشکل دوباره خرج شدن پول در پرداختهای الکترونیکی و موارد دیگر پرداخته شده است.
در ادامه به ترجمه کامل وایت پیپر بیت کوین به فارسی که توسط ساتوشی ناکاموتو منتشر شده میپردازیم، توجه داشته باشید که برخی از اصطلاحات و فرمولها که در انتهای این مطلب آمده، تخصصی بوده و نیازمند دانش تخصصی در این زمینه است.
برای دانلود نسخه لاتین سپیدنامه یا وایت پیپر بیت کوین میتوانید از لینک زیر استفاده کنید:
دانلود وایت پیپر بیت کوین
ترجمه فارسی وایت پیپر بیت کوین
اولین چیزی که در وایت پیپر بیت کوین میخوانیم این جمله است:
بیت کوین: یک سیستم نقدی الکترونیکی همتا به همتا
در خلاصه وایت پیپر بیت کوین درباره هدف ایجاد این ارز دیجیتال اینطور میخوانیم:
یک نسخه کاملاً همتا به همتا از پول نقد الکترونیکی که امکان پرداختهای آنلاین را فراهم میکند که بهطور مستقیم ازیکطرف به طرف دیگر ارسال میشود بدون اینکه به یک واسطه مانند نهادهای مالی نیاز داشته باشد. بخشی از راهحل برای انتقال همتا به همتا پول از طریق امضای دیجیتال قابلارائه است، اما اگر برای جلوگیری از دوباره خرج شدن پول به یک شخص ثالث قابلاعتماد نیاز باشد، اصلیترین مزایای این روش از بین میرود.
ما راهکاری برای حل مشکل دوباره خرج کردن با استفاده از شبکه همتا به همتا ارائه میکنیم که روی تراکنشها برچسب زمانی (TimeStamp) قرار میدهد. این کار با هش کردن تراکنشها روی زنجیره فعال گواه اثبات کار قابل انجام است و رکوردهایی ایجاد میکند که فقط در صورت انجام مجدد گواه اثبات کار قابلتغییر خواهد بود. طولانیترین زنجیره علاوه بر اینکه بهعنوان گواهی بر توالی رویدادها عمل میکند، بهعنوان گواه اثبات از جانب بزرگترین مخزن CPU (بزرگترین قدرت محاسباتی) نیز محسوب میشود. تا زمانی که کنترل بخش عمدهای از توان CPU در دست نودهایی باشد که در حمله به شبکه شرکت نمیکنند، این نودها هستند که طولانیترین زنجیره را در شبکه ایجاد میکنند و میتوانند از مهاجمان پیشی بگیرند. این شبکه همتا به همتا نیازمند یک ساختار یکنواخت است. پیامها در شبکه بر اساس توافقات منتشر میشوند و نودها میتوانند شبکه را به میل خود ترک کنند درحالیکه طولانیترین زنجیره گواه اثبات کار را بهعنوان گواه اثبات اتفاقاتی میدانند که در غیاب آنها اتفاق افتاده است.
در ادامه این مطلب به طور کامل به ترجمه مطالب نوشته شده در وایت پیپر بیت کوین میپردازیم:
معرفی
تجارت بر بستر اینترنت تقریباً به شکلی انحصاری به موسسههای مالی بهعنوان اشخاص ثالث قابلاعتماد برای پردازش پرداختهای الکترونیکی متکی است. بااینکه در اکثر تراکنشها این سیستم بهاندازه کافی کاربردی است، اما به دلیل اینکه مبتنیبر وجود شخص ثالث برای ایجاد اعتماد است، از ضعفهای ذاتی برخوردار است.
به دلیل اینکه در زمان بروز اختلاف باید مؤسسات مالی میانجیگری کنند، در این سیستم تراکنشهایی که کاملاً غیرقابلبرگشت باشند، امکانپذیر نیست. همچنین هزینه میانجیگری باعث افزایش هزینههای تراکنش، ایجاد محدودیت در میزان تراکنشهای کوچک و عدم امکان انجام تراکنشهای غیرقابلبرگشت میشود. به دلیل اینکه تراکنشها در این سیستم برگشتپذیر هستند، نیاز به اعتماد نیز افزایش پیدا میکند. به همین خاطر نیاز است که فروشندگان نسبت به مشتریان خود احتیاط بیشتری کنند و اطلاعاتی را از آنها درخواست کنند که در شرایط دیگر نیازی به ارائه چنین اطلاعاتی از سمت مشتریان وجود ندارد. امکان وجود کلاهبرداری نیز در چنین شرایطی وجود دارد. میتوان با استفاده از پول فیزیکی از این هزینهها و شرایط ناامن در پرداختها و تراکنشها جلوگیری کرد اما هیچ راه مشخصی برای اینکه در یک کانال ارتباطی بتوان بدون نهاد معتبر و مورد اطمینان طرفین به مبادله پرداخت، وجود ندارد.
برای اینکه طرفین تراکنش بتوانند بدون نیاز بهواسطه به انجام تراکنشها بپردازند به یک سیستم پرداخت الکترونیکی مبتنیبر رمزنگاری نیاز است. غیرقابلبرگشت بودن این نوع تراکنش ازلحاظ محاسباتی و پردازشی، از فروشندگان در مقابل جعل و کلاهبرداری محافظت میکند و مکانیسمهای معمول امانی را میتوان بهراحتی برای محافظت از خریداران پیادهسازی کرد.
در این مقاله راهکاری مبتنیبر استفاده از برچسب زمانی توزیعشده و همتا به همتا برای حل مشکل دوباره خرج کردن، ارائهشده که با استفاده از آن گواه محاسباتی از ترتیب زمانی تراکنشها ایجاد میشود (یعنی تراکنشها به ترتیب ثبت میشوند). این سیستم تا زمانی امن خواهد بود که نسبت توان CPU تحت کنترل نودهای درستکار بیشتر از CPU تحت سلطه نودهای خرابکار باشد.
تراکنشها
در این سیستم کوین الکترونیکی بهعنوان زنجیرهای از امضاهای دیجیتال تعریف شده است. به این شکل که هر دارنده باید کوین خود را همراه با امضای دیجیتال هش تراکنش قبلی و کلید عمومی دارنده کوین بعدی را به فرد بعدی منتقل کند. دریافتکننده قادر است امضاها را بررسی کند و زنجیره مالکیت را تأیید کند.
در این بخش مشکل این است که دریافتکننده نمیتواند امکان دوباره خرج شدن کوین توسط دارندگان قبلی را تشخیص دهد.
بهطورمعمول راهکاری که برای برطرف کردن این مشکل مورد استفاده قرار میگیرد، ایجاد یک مسئول مرکزی مورد اعتماد است که در شبکه بیت کوین به آن مینت (Mint) گفته میشود که وظیفه بررسی تمام تراکنشها و احتمال دوباره خرج کردن کوینها را دارد. در این سیستم پس از هر تراکنش کوین موردنظر باید به ضرابخانه یا مینت برگشت داده شود تا کوین جدیدی ایجاد شود و صرفاً میتوان به کوینهایی که بهطور مستقیم از ضرابخانه صادر شده است از بُعد دوباره خرج نشدن، اعتماد کرد. در این روش کنترل سیستم پولی در دست ادارهکنندگان مینت است، چراکه تمام تراکنشها از طریق این بخش انجام میشود. به این شکل شاهد شرایطی کاملاً مشابه با بانکها خواهیم بود.
در این بخش به روشی نیاز است که بهواسطه آن دریافتکننده بتواند اطمینان حاصل کند که دارندگان قبلی هیچکدام از تراکنشهای قبلی را امضا نکردهاند. به همین دلیل باید تراکنشی را بپذیریم که اولین تراکنش ثبت شده است، به همین دلیل به اقدامات دیگر برای دوباره خرج کردن توجهی نمیکنیم. آگاهی از تمام تراکنشها بهترین روش برای تأیید عدم امضای تراکنشها است. اگر بخواهیم از شخص ثالث برای ایجاد اطمینان استفاده نکنیم، باید تمام تراکنشها بهطور عمومی اعلام شود. علاوهبر این سیستمی موردنیاز است که اعضای آن بر سر یک تاریخچه واحد از ترتیب تراکنشها باهم توافق داشته باشند. همچنین دریافتکننده به گواه یا اثباتی نیاز دارد که مطمئن شود اکثر نودها یکی از تراکنشها را بهعنوان اولین تراکنش تأیید میکنند.
سرور برچسب زمانی (Timestamp Server)
راهکاری که اینجا ارائهشده است با استفاده از یک برچسب زمانی شروع به کار میکند. به این شکل که برچسب زمانی هش بلاکی که شامل آیتمهایی است که دارای برچسب زمانی هستند را انتخاب میکند و آن هش را برای عموم منتشر میکند. استفاده از تایم استمپ یا برچسب زمانی باعث میشود این موضوع اثبات شود که دادههایی که وارد هش میشوند باید در زمان انجام تراکنش وجود داشته باشند. همچنین هر تایم استمپ شامل تایم استمپهای قبلی در هش خود است. به همین دلیل زنجیرهای از تراکنشها شکل میگیرد که در آن هر تایم استمپ از تایم استمپهای قبل از خود حمایت میکند.
اثبات انجام کار یا PoW
برای اجرای یک سرور برچسب زمانی توزیعشده به شکل همتا به همتا، بهجای استفاده از یوزنت (Usenet) نیازمند یک سیستم گواه اثبات کار مشابه با هش کش (Hashcash) هستیم که آدام بک (Adam Back) از آن استفاده میکرد. اثبات کار شامل اسکن کردن مقداری است که مانند SHA-256 هش موردنظر با تعدادی از بیتهای صفر شروع میشود. میانگین انرژی یا کار موردنیاز بستگی به تعداد بیتهای صفر، تصاعدی خواهد داشت و با اجرای یک هش میتوان آن را بررسی و تأیید کرد.
در شبکه برچسب زمانی، با افزودن عدد نانس (Nounce) به بلاک، گواه اثبات کار را اجرا میکنیم و این کار تا زمانی ادامه پیدا میکند که عددی که شامل بیتهای صفر لازم برای هش بلاک است، تولید شود. درصورتیکه توان CPU تا حد موردنیاز گواه اثبات کار افزایش پیدا کند، بلاک موردنظر غیر قابلتغییر میشود، مگر درصورتیکه تمام فرایند مجدداً اجرا شود. اگر بخواهیم یکی از بلاکها را تغییر دهیم باید تمام بلاکهای قبلی را نیز تغییر دهیم، چراکه بلاکها به هم متصل هستند.
علاوهبر این گواه اثبات کار مشکل تصمیمگیری مبتنیبر رأی اکثریت را از بین میبرد. اگر بخواهیم اکثریت را بر اساس مدل «هر آدرس IP دارای یک حق رأی» تعریف کنیم، هر فرد میتواند با در اختیار داشتن چند IP، این موضوع را به نفع خود تمام کند. در گواه اثبات کار از اصل «هر CPU یک حق رأی» استفاده میکنیم. در این روش طولانیترین زنجیرهای که بیشترین اثبات کار را به خود اختصاص داده، تصمیم اکثریت را میگیرد. در این حالت اگر نودهای درستکار و سالم اکثریت توان CPU را در اختیار داشته باشند، زنجیره سالم سریعتر رشد میکند و از زنجیرههای خرابکار پیشی خواهد گرفت. برای اینکه یک نود مهاجم بتواند بلاک قبلی را دستکاری کند یا تغییر دهد باید گواه اثبات کار بلاک موردنظر و تمام بلاکهایی که بعد از آن ثبت شدهاند را تغییر دهد و همچنین از نودهای درستکار نیز پیشی بگیرد. در ادامه مشاهده خواهید کرد که چطور با اضافه شدن بلاکهای جدید به شبکه، احتمال حمله مهاجم به شکلی تصاعدی کاهش پیدا میکند.
سختی گواه اثبات کار با هدف ایجاد هماهنگی و افزایش سرعت سختافزارها در طول زمان، توسط میانگین متحرکی کنترل میشود که درواقع میانگین تولید تعداد بلاک در هر ساعت است. بهاینترتیب هرچه سرعت تولید بلاکهای جدید افزایش پیدا کند، سختی شبکه گواه اثبات کار نیز افزایش پیدا میکند.
شبکه
شبکه همتا به همتا برای اجرا به مراحل زیر نیاز دارد:
1- ابتدا تراکنشهای جدید به تمام نودهای موجود در شبکه ارسال میشوند.
2- هر نود تراکنشهای جدید را در یک بلاک جدید قرار میدهد.
3- هر نود برای پیدا کردن اثبات کار سخت روی بلاک خود کار میکند.
4- زمانی که نود گواه اثبات کار موردنظر خود را پیدا کرد، آن را برای تمام نودهای موجود ارسال میکند.
5- درصورتیکه تراکنشهای موجود در بلاک آن نود معتبر باشد و از قبل خرج نشده باشد، نودها بلاک موردنظر را تأیید میکنند.
6- نودها موافقت خود را برای ایجاد بلاک موردنظر اعلام میکنند و هش آن را بهعنوان هش بلاک قبلی میپذیرند تا بتوانند تلاش خود را برای ایجاد بلاک بعدی در زنجیره آغاز کنند.
همواره طولانیترین زنجیره توسط نودهای شبکه بهعنوان زنجیره درست و تأیید شده در نظر گرفته میشوند و نودها روی توسعه آن کار میکنند. اگر بهطور همزمان دو نود بتوانند دو بلاک بعدی با اطلاعات متفاوت را منتشر کنند، احتمال این وجود دارد که برخی از نودها یکی از بلاکها را انتخاب کنند و نودهای دیگر بلاک دوم را بهعنوان بلاک درست در نظر بگیرند. در چنین شرایطی نودها بلاکی را توسعه خواهد داد که زودتر دریافت کردهاند و بلاک دوم را بهعنوان زنجیره ذخیره در نظر میگیرند تا اگر زنجیره طولانیتری بود، از آن استفاده کنند. زمانی این شرایط برطرف میشود که گواه اثبات کار بلاک بعدی ایجاد شود و یکی از دو زنجیره طولانیتر شود. در چنین شرایطی نودهایی که روی توسعه زنجیره دیگر فعالیت میکردند، به زنجیره طولانیتر منتقل میشوند.
زمانیکه تراکنشهای جدید در اختیار اکثریت نودهای شبکه قرار بگیرد، میتوان آنها را در بلاک ثبت کرد و برای انجام این کار نیاز نیست که تراکنشهای جدید در دست تمام نودها قرار بگیرد. بلاکهایی که منتشر میشوند میتوانند حاوی پیام هم باشند. زمانی که یک نود یکی از بلاکها را ثبت نکرده باشد، هنگام ثبت بلاک بعدی متوجه خواهد شد که یکی از بلاکها را از دست داده و به این شکل میتواند بلاک قبلی را نیز درخواست دهد.
مشوق
اولین تراکنشی که در یک بلاک ثبت میشود، یک تراکنش ویژه است که باعث ایجاد کوین جدیدی میشود که به سازنده بلاک تعلق میگیرد. این موضوع، نودها را تشویق میکند تا از شبکه حمایت کنند و باعث توزیع کوینها و افزایش عرضه در گردش میشود، چراکه هیچ نهاد مرکزی برای صادر کردن کوینها وجود ندارد.
به دلیل اینکه مقدار کوینهای جدید عدد ثابت و مستمری است، فرایند ایجاد کوینها مانند استخراج طلا است، همانطور که استخراجکنندگان طلا در تلاش برای گسترش منابع و معادن جدید هستند تا میزان طلای در گردش را افزایش دهند، ماینرهای بیت کوین نیز از برق و CPU خود بهعنوان منابعی برای گسترش کوینها استفاده میکنند.
کارمزد تراکنشها نیز نوعی مشوق هستند، زمانیکه خروجی تراکنش کمتر از ورودی باشد، اختلاف آن کارمزد تراکنش است که به پاداش بلاک شامل تراکنش افزوده میشود. زمانی که تعداد از پیش تعیین شده از کوینها کاملاً استخراج شوند و وارد عرضه در گردش شوند، پاداش بلاکها صرفاً بهصورت کارمزد انجام تراکنشها خواهد بود که بدون تورم اعمال میشود.
زمانیکه ایجاد کوینهای جدید به پایان رسید، این پاداش مشوقی برای نودها خواهد بود تا بهعنوان نود درستکار به فعالیت خود ادامه دهند.
حملهکننده در صورتی میتواند از توان خود برای کلاهبرداری از طریق سرقت و بازگرداندن پرداخت خود یا تولید کوینهای جدید استفاده کند که توان پردازشی بیشتری نسبت به تمام نودهای درستکار داشته باشد. سیستم پاداش به شکلی است که فرد خرابکار درنهایت متوجه خواهد شد که اگر مطابق با قوانین عمل کند، سود بیشتری کسب میکند چراکه در این حالت میتواند کوینهای بیشتری نسبت به مجموع کوینهای نودهای دیگر کسب کند.
اختصاص فضای ذخیرهسازی
زمانی که آخرین تراکنشهای داخل یک کوین به تعداد کافی تأییدیه از بلاکها دریافت کردند، تراکنشهای قبلی این امکان را دارند که در هارددیسک ذخیره شوند. برای انجام این کار، بهجای اینکه هش بلاکها شکسته شود، تراکنشها در درخت مرکل (Merkle Tree) هش میشوند. در این حالت فقط ریشه درخت مرکل در بلاک هش میشود. با انجام این کار و درواقع حذف شاخههای درخت مرکل میتوان بلاکهای قبلی را فشردهتر کرد. در این روش نیازی به ذخیرهسازی هشهای داخلی نیست.
حجم بلاکها قبل از اینکه تراکنشی در آنها ثبت شود، تقریباً 80 بایت است. اگر هر 10 دقیقه یک بلاک جدید ایجاد شود، در طول یک سال به فضای ذخیرهسازی معادل با 4.2 مگابایت نیاز است.
۸۰ بایت * ۶ * ۲۴ * ۳۶۵ = ۴.۲ مگابایت
در سال 2008 سیستمهای رایانهای به طول معمول دارای 2 گیگابایت رم هستند و طبق قانون مور انتظار رشد 1.2 گیگابایت در سال پیشبینی میشود که طبق این قانون نباید مشکلی برای فضای ذخیرهسازی بلاکها وجود داشته باشد.
تأییدیه سادهسازی شده تراکنشها
پرداختها و تراکنشها را میتوان بدون اجرای یک نود کامل نیز تأیید کرد، در این حالت کافی است که کاربر هدرهای مربوط به بلاک طولانیترین زنجیره گواه اثبات کار را داشته باشد. این کاربر میتواند با کسب اطلاعات از نودهای شبکه، از اینکه طولانیترین زنجیره را در اختیار دارد، مطمئن شود و شاخه مرکلی را نگهداری کند که تراکنش را به بلاک دارای تایم استمپ متصل میکند. این کاربر توانایی بررسی تراکنشها را ندارد و صرفاً میتواند با برقراری ارتباط بین تراکنشها با جایگاهی در زنجیره و درنهایت دریافت تأیید یا عدمتأیید نود شبکه، تراکنش موردنظر را بررسی و تأیید کند.
با استفاده از این شیوه تراکنشها تا زمانی که نودهای درستکار شبکه را تحت کنترل خود داشته باشند، معتبر است. اما اگر نودهای خرابکار بتوانند شبکه را تحت کنترل خود درآورند، تراکنشها بهشدت آسیبپذیر خواهند شد. بااینکه نودهای شبکه توانایی تأیید تراکنشها را دارند، اما این روش سادهسازی شده ممکن است با استفاده از تراکنشهای ساختگی توسط نودهای خرابکار، فریب بخورند. برای محافظت از شبکه در مقابل این مسئله یکی از استراتژیها، پذیرش هشدار از طرف نودهای شبکه در زمان شناسایی بلاکهای نامعتبر است، که در این شرایط از نرمافزار کاربر میخواهد تا بلاک کامل را دانلود کند و تراکنشهای هشدار داده شده را تأیید کند.
ترکیب و جداسازی مقادیر
بااینکه امکان مدیریت کوینها بهصورت تفکیک شده امکانپذیر است اما ایجاد تراکنشهای جداگانه برای انتقال واحدهای کوچک منطقی نیست. برای اینکه ترکیب و جداسازی مقادیر امکانپذیر شود، تراکنشها دارای ورودیها و خروجیهای متفاوت هستند، بهطورمعمول یک ورودی از تراکنش بزرگتر قبلی یا ترکیبی از چند ورودی از چند مقدار کوچک و حداکثر دو خروجی وجود دارد، یکی از خروجیها برای پرداخت است و دیگری برای برگرداندن باقیمانده تراکنش به ارسال کننده، البته در حالتی که باقیماندهای وجود داشته باشد.
نکته مهم دیگر این است که اگر یک تراکنش به چند تراکنش دیگر وابسته باشد و آن تراکنشها نیز هرکدام به تعداد زیادی تراکنش دیگر مرتبط باشند، مشکلی به وجود نخواهد آمد و نیازی به نسخهای مجزا از سابقه تراکنشها نخواهد بود.
حریم خصوصی
در مدل بانکداری سنتی با توجه به اینکه دسترسی به اطلاعات محدود به طرفین تراکنش و اشخاص ثالث بود، میزانی از حریم خصوصی امکانپذیر بود. بااینکه اعلام عمومی تراکنشها در اینجا ضروری است، نمیتوان این محدودیت را اعمال کرد اما همچنان با شکستن اطلاعات با استفاده از روشهای دیگر میتوان حریم خصوصی کاربران را حفظ کرد. راهکار اصلی، ناشناس نگهداشتن کلیدهای عمومی است. بااینکه همه کاربران قادر به مشاهده تراکنشهای ثبت شده توسط افراد دیگر هستند، اما دادهای که تراکنشها را به افراد مرتبط کند، وجود ندارد. این موضوع مشابه با میزان اطلاعات منتشر شده در بازار بورس است که در آن زمان و حجم معاملات در هر معامله در اختیار عموم قرار میگیرد، اما هویت طرفین معامله مشخص نیست.
برای اینکه ارتباط بین تراکنش و ارسال کننده فاش نشود و بهعنوان یک لایه امنیتی اضافی عمل کند، باید جفت کلید جدیدی برای هر تراکنش استفاده شود. نمیتوان از فاش شدن ارتباطات بین برخی تراکنشها اجتناب کرد، در این تراکنشها باید مشخص شود که ورودیها متعلق به دارنده یکسانی هستند. خطری که در چنین شرایطی وجود دارد این است که اگر هویت دارنده کلید فاش شود، ارتباط سایر تراکنشهای متعلق به آن نیز افشا خواهد شد.
محاسبات
شرایطی را فرض میکنیم که در آن مهاجم تلاش میکند یک زنجیره جایگزین ایجاد کند که سرعت آن از زنجیره سالم اصلی بیشتر باشد. حتی اگر چنین شرایطی امکانپذیر باشد، ایجاد تغییرات دلخواه در سیستم امکانپذیر نخواهد بود، این تغییرات ممکن است شامل ایجاد ارزش از هیچ، یا برداشت کوینی باشد که حملهکننده صاحب اصلی آن نیست. نودها تراکنشهای مرتبط با پرداختهای نامعتبر را تأیید نمیکنند و همچنین بلاکهای شامل این تراکنشها را نمیپذیرند. تنها کاری که مهاجم میتواند انجام دهد تغییر یکی از تراکنشهای خود است که بتواند از این طریق تراکنشی که اخیراً ثبت کرده را برگرداند.
رقابت زنجیره سالم و زنجیره مربوط به حملهکننده را بهعنوان گام تصادفی دو جملهای (Binomial Random Walk) در نظر میگیریم (گام تصادفی یک اصطلاح ریاضی است که به فرایندی گفته میشود که مسیری متشکل از مراحل متوالی تصادفی را توصیف میکند). اگر زنجیره سالم توسط یک بلاک گسترش پیدا کند، موفقیت اتفاق میافتد و فاصله زنجیره درستکار و خرابکار باید بیش از یک بلاک باشد. حملهکننده زمانی موفق میشود که فاصله بلاک آن یک بلاک بیشتر از زنجیره درستکار باشد.
احتمال پیشی گرفتن حملهکننده از زنجیره درستکار مانند مشکل «پاکباختگی قمارباز» (Gambler’s Ruin) است. قماربازی با اعتبار نامحدود را در نظر بگیرید که از چند دست عقبتر بازی را شروع میکند و تعداد نامحدودی دست بازی میکند تا به شرایط برابر برسد. ما میتوانیم احتمال رسیدن به شرایط برابر را محاسبه کنیم، که همان احتمال رسیدن حملهکننده به زنجیره سالم است. فرمول محاسبه این احتمال به شکل زیر است:
احتمال یافتن بلاک بعدی توسط نود سالم برابر است با p
احتمال یافتن بلاک بعدی توسط حملهکننده برابر است با q
احتمال رسیدن مهاجم به نود درستکار از z بلاک قبل، برابر است با qz
فرمول احتمال یافتن بلاک توسط نود درستکار و مهاجم
اگر فرض کنیم که p>q است، درحالیکه تعداد بلاکهای ایجاد شده توسط حملهکننده در حال افزایش است (تا بتواند به بلاکهای موجود در زنجیره سالم برسد)، احتمال حمله همزمان بهصورت تصاعدی در حال کاهش است. در چنین شرایطی که شرایط به ضرر حمله کننده است، اگر نتواند با سرعت اقدام کند، شانس او برای رسیدن به نودهای سالم کم میشود و فاصله زیادی (درنتیجه ایجاد بلاکهای جدید) بین آنها ایجاد میشود.
حال این شرایط را تصور میکنیم که دریافتکننده تراکنش جدید چه مدتزمانی باید منتظر بماند تا مطمئن شود ارسال کننده قادر به تغییر تراکنش نیست. فرض بر این است که ارسال کننده حملهکنندهای باشد که قصد دارد کاری کند که دریافتکننده باور کند مدتی است که به او پرداخت انجام شده و پسازآن شرایط را طوری تغییر دهد که پرداختهای انجام شده به ارسال کننده بازپرداخت شود. پس از رخ دادن چنین موضوعی به دریافتکننده هشدار داده میشود اما ارسال کننده امیدوار است که برای هشدار دادن دیر شده باشد.
دریافتکننده جفت کلید جدیدی ایجاد میکند و کلید عمومی را کمی قبل از امضا کردن، به ارسال کننده میدهد. این موضوع باعث میشود که ارسال کننده نتواند زودتر آمادهسازی زنجیره بلاکها را انجام دهد و از جلو افتادن او جلوگیری میکند.
ارسال کننده ناسالم تراکنش پس از ارسال تراکنش میتواند بهطور مخفیانه روی زنجیره موازی که نسخه جایگزین تراکنش خود اوست، کار کند.
در چنین شرایطی دریافتکننده نمیداند که مهاجم تا چه حد پیشروی کرده است، بنابراین صبر میکند تا تراکنش به بلاک اضافه شود و به تعداد z بلاک پسازآن متصل شود. دریافتکننده فرض میکند که باید به میزان میانگین زمان موردنیاز برای ایجاد بلاکهای سالم طول بکشد.
پیشروی حملهکننده برابر با توزیع پواسون (Poisson distribution) با مقدار مورد انتظار است (در فرضیه آمار و احتمالات، توزیع پواسون یک توزیع احتمال گسسته است که احتمال وقوع تعداد معینی از رویدادها را در بازه زمانی یا مکانی ثابت بیان میکند).
فرمول محاسبه میزان پیشروی مهاجم
برای محاسبه احتمال اینکه مهاجم هنوز میتواند به نود سالم دست پیدا کند یا نه، تراکم پواسون برای هر مقدار از پیشروی مهاجم را در احتمال رسیدن به نود درستکار از همان نقطه ضرب میکنیم:
پواسون
برای اینکه از مجموع دنباله بینهایت توزیع اجتناب شود، فرمول را تغییر میدهیم:
تغییر فرمول تراکم پواسون
سپس به کد C تبدیل میکنیم:
میتوان مشاهده کرد که با اجرای چند مورد از نتایج، احتمال رخ دادن z بهطور تصاعدی کاهش پیدا میکند.
کاهش تصاعدی احتمال حمله مهاجم به شبکه بیت کوین
برای مقادیر P کمتر از ۰.۱٪ محاسبه میکنیم.
محاسبه مقادیر p
نتیجهگیری وایت پیپر بیت کوین
ما یک سیستم بدون نیاز به اعتماد برای انجام تراکنشهای الکترونیکی معرفی کردیم. در ابتدا به معرفی چارچوب معمول برای ایجاد کوین با استفاده از امضاهای دیجیتال پرداختیم که کنترل مالکیت خوبی را فراهم میکند، اما اگر روشی برای جلوگیری از دوباره خرج کردن نداشته باشد، ناقص به نظر میرسد. برای حل این مشکل، شبکه همتا به همتا متشکل از گواه اثبات کار را برای ثبت سوابق عمومی تراکنشها، معرفی میکنیم که اگر در آن بخش عمدهای از توان پردازشی در اختیار نودهای درستکار باشد، تغییر سابقه تراکنشها برای مهاجم غیرممکن است.
این شبکه در عین سادگی خود، قدرتمند است، نودها بهصورت همزمان و البته با هماهنگی بسیار کم باهم تعامل دارند. با توجه به اینکه پیامها به مکان مشخصی ارسال نمیشوند و فقط بر اساس «انجام بیشترین کار» کار میکنند نیازی به شناخت نودها نخواهد بود. نودها میتوانند در صورت تمایل از شبکه خارج شوند و مجدداً به آن متصل شوند و زنجیره گواه اثبات کار را بهعنوان اثباتی از اتفاقاتی که در غیاب آنها رخداده است، بپذیرند. رأی دادن توسط نودها با استفاده از توان پردازشی آنها قابل انجام است و با تلاش برای گسترش بلاکها، پذیرش بلاکهای معتبر را اعلام میکنند و با عدم کار روی بلاکهای نامعتبر، این نوع بلاکها را رد میکنند؛ با این مکانیزم اجماع، میتوان هرگونه مشوق یا قانون ضروری را اعمال کرد.
منابعی که ساتوشی ناکاموتو در وایت پیپر بیت کوین به آنها اشاره کرده را میتوانید در انتهای همین مطلب مشاهده کنید.
سؤالات متداول وایت پیپر بیت کوین
وایت پیپر بیت کوین چیست؟
وایت پیپر بیت کوین سندی با عنوان «بیت کوین: سیستم نقدی الکترونیکی همتا به همتا» است که در سال 2008 توسط فرد یا گروهی از افراد با نام مستعار ساتوشی ناکاموتو منتشر شد. این نوشته اصول اساسی و طراحی ارز دیجیتال بیت کوین را تشریح میکند.
وایت پیپر بهعنوان سند اساسی برای بیت کوین عمل میکند و مفهوم یک ارز دیجیتال غیرمتمرکز و فناوری زیربنایی به نام بلاک چین را معرفی میکند. بیت کوین یک راهحل برای مشکل طولانی مدت ایجاد یک ارز دیجیتالی است که امن و غیرمتمرکز است و میتواند بدون نیاز به یک مرجع مرکزی مانند یک بانک عمل کند.
چه کسی وایت پیپر بیت کوین را نوشته است؟
یک فرد یا گروهی ناشناس به نام ساتوشی ناکاموتو این وایت پیپر را منتشر کردند.
پی دی اف وایت پیپر بیتکوین را از کجا دانلود کنیم؟
شما میتوانید در این وبسایت بیت کوین فایل pdf وایت پیپر را دانلود کنید.
وایت پیپر فارسی بیت کوین را کجا مطالعه کنیم؟
شما میتوانید در همین صفحه از ایران بروکر وایت پیپر بیت کوین را به فارسی مشاهده کنید.
سخن پایانی درباره وایت پیپر بیتکوین
در این مطلب از ایران بروکر به ترجمه وایت پیپر بیت کوین پرداختیم که از روی نسخه اصلی این وایت پیپر ترجمه شده است. در این وایت پیپر به بررسی مشکلات دوباره خرج شدن پول در پرداختهای الکترونیکی، راهکاری که بیت کوین برای آن ایجاد میکند، معرفی شبکه همتا به همتا در بیتکوین و نحوه ایجاد اعتماد در آن، نحوه انجام تراکنشها، برچسبهای زمانی یا تایم استمپ، گواهی اثبات کار، درخت مرکل، نحوه عملکرد نودها و نحوه ایجاد حریم خصوصی و موارد مهم دیگر بهطور کامل پرداخته شده است.
منابع وایت پیپر بیت کوین
[1] W. Dai, “b-money,” http://www.weidai.com/bmoney.txt, 1998.
[2] H. Massias, X.S. Avila, and J.-J. Quisquater, “Design of a secure timestamping service with minimal
trust requirements,” In 20th Symposium on Information Theory in the Benelux, May 1999.
[3] S. Haber, W.S. Stornetta, “How to time-stamp a digital document,” In Journal of Cryptology, vol 3, no
2, pages 99-111, 1991.
[4] D. Bayer, S. Haber, W.S. Stornetta, “Improving the efficiency and reliability of digital time-stamping,”
In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993.
[5] S. Haber, W.S. Stornetta, “Secure names for bit-strings,” In Proceedings of the 4th ACM Conference
on Computer and Communications Security, pages 28-35, April 1997.
[6] A. Back, “Hashcash – a denial of service counter-measure,”
http://www.hashcash.org/papers/hashcash.pdf, 2002.
[7] R.C. Merkle, “Protocols for public key cryptosystems,” In Proc. 1980 Symposium on Security and
Privacy, IEEE Computer Society, pages 122-133, April 1980.
[8] W. Feller, “An introduction to probability theory and its applications,” 1957.
بسیار عالی بود