سپید نامه بیت کوین
یک نسخه ی کاملا فرد به فرد از پول الکترونیکی، ارسال مستقیم پرداختهای آنلاین از یک شخص به شخص دیگر را بدون نیاز به گذر از موسسه مالی مقدور میسازد. امضاهای دیجیتالی بخشی از راه حل هستند، اما اگر همچنان به وجود یک واسطه معتمد برای جلوگیری از خرج دوباره پول نیاز باشد، مزایای اصلی آن از بین میرود. ما در سپید نامه بیت کوین یک راه حل برای مشکل خرج دوباره پول با استفاده از شبکه ای فرد به فرد، ارائه میدهیم.
این شبکه تراکنش ها را با استفاده از هش کردنشان در قالب یک زنجیره ی پیوسته براساس اثبات انجام کار بر پایه ی هش، برچسب زماندار میکند که بدون انجام دوباره ی کاری که انجام شده، قابل تغییر نخواهد بود. بلندترین زنجیره نه تنها به عنوان اثباتی از ترتیب وقایع محسوب میشود، بلکه اثبات خروج آن از بزرگترین مجموعه قدرت CPU است. تا زمانی که غالب قدرت CPU شبکه توسط نودهایی که در حمله به شبکه مشارکت نمیکنند، کنترل میشود، بلندترین زنجیره توسط آنها ایجاد شده و از مهاجمان پیشی میگیرند. خود شبکه به حداقل شکل ساختاری نیازمند است. همچنین پیامها بر پایه ی توافقات در شبکه مخابره میشوند و نودها میتوانند به تصمیم خود شبکه را در حالی که با بلندترین زنجیره PoW،به عنوان تایید چیزی که به هنگام رفتن آنها رخ داده، ترک کرده و یا به آن بپیوندند.
همچنین بخوانید : بررسی قیمت بیت کوین
۱. مقدمه
تجارت در اینترنت تا به امروز برای پردازش پرداخت های الکترونیکی تا حد زیادی منحصرا به موسسات مالی، به عنوان یک واسط معتمد، وابسته بوده است. اگرچه این سیستم نسبتا به خوبی پاسخگوی بیشتر تراکنش هاست، اما همانند سایر روش هایی که بر پایه ی اعتماد هستند، ذاتا دارای نقاط ضعف است. انجام تراکنش های قطعی و غیرقابل بازگشت مقدور نیست؛ چراکه موسسات مالی باید درهنگام اختلاف، وساطت کنند.
این واسطه گری هزینه های تراکنش را افزایش میدهد، اندازه حداقلی قابل استفاده تراکنش را محدود میکند و انجام تراکنش های کوچک مرسوم را نامقدور میسازد. عدم امکان انجام تراکنش های غیر قابل بازگشت در ازای خدمات غیر قابل بازگشت بهای سنگین تریست که پرداخت میشود چراکه با امکان بازگشت، نیاز به اعتماد افزایش مییابد. فروشندگان باید نسبت به مشتریان خود محتاطانه عمل کرده و از آنها اطلاعات بیش از حد مورد نیاز دریافت کنند. به علاوه، همواره درصد مشخصی از خطا به عنوان عاملی اجتنابناپذیر پذیرفته شده است. این هزینه ها و نگرانی ها در پرداخت های حضوری با استفاده از ارزهای مادی قابل پیشگیری است؛ اما در حال حاضر مکانیسمی برای
پرداخت با استفاده از راه ارتباطی بدون واسطه موجود نیست. جایگزینی که برای اعتماد مورد نیازست، یک سیستم پرداخت الکترونیکی بر پایهی اثبات رمزنگاریست؛ تا طرفین بدون نیاز به اعتماد به واسطه بتوانند به صورت مستقیم تراکنش انجام دهند. تراکنش هایی که از لحاظ محاسباتی غیر قابل بازگشت هستند از فروشندگان در برابر جعل و تقلب محافظت میکنند و مکانیسم پرداخت تضمینی میتواند به راحتی اعمال شده و خریدار را در برابر موارد مشابه مصون دارد. در این مقاله ما راه حلی برای مشکل خرج دوباره ی پول با استفاده از یک سرور برچسب زماندار توزیع شده ی فرد به فرد پیشنهاد میکنیم که این سرور اثبات کامپیوتری از ترتیب زمان قرارگیری تراکنشها ایجاد میکند. سیستم مذکور تا زمانی که نودهای معتبر جمعا قدرت CPU بیشتری را نسبت به نودهای مهاجم کنترل میکنند، امن است.
۲. تراکنش
ما یک سکه ی الکترونیکی را به عنوان زنجیرهای از امضاهای دیجیتالی توصیف میکنیم. هر مالک، به منظور انتقال سکه به فرد دیگری، هش 3 تراکنش قبلی به علاوه ی کلید عمومی مالک بعدی را به صورت دیجیتالی امضا کرده و به انتهای سکه ی مذکور ضمیمه میکند. مالک جدید میتواند از طریق تصدیق این امضاها زنجیره ی مالیکت را تایید کند.
البته مشکل اینست که دریافت کننده نمیتواند خرج نشدن دوباره پول توسط مالکین قبلی سکه را تصدیق کند. راه حل معمول برای این مشکل در نظر گرفتن یک واسط معتمد، یا ضرابخانه، است که هر تراکنش را بررسی میکند. پس ازهر تراکنش، سکه بایستی به ضرابخانه بازگردد تا یک سکه جدید تولید شود؛ و تنها سکه هایی که مستقیما از ضرابخانه منتشر شده اند مصون از خرج دوباره محسوب میشوند. مشکل این راه حل اینست که با اجبار گذر تراکنش ها از ضرابخانه، سرنوشت کل سیستم پولی به گروهی که آن را اداره میکنند وابسته است؛ درست مثل سیستم بانکی. ما نیازمند روشی هستیم که دریافت کننده بتواند از امضا نشدن تراکنش های پیشین توسط صاحبان قبلی آگاه شود. برای دستیابی به هدفمان، ما آخرین تراکنش را تراکنش موثق تلقی میکنیم و برای ما تلاش های بعدی برای خرج دوباره پول حائز اهمیت نیست. آگاهی از تمامی تراکنش ها، تنها راه تصدیق عدم حضور یک تراکنش است. در روشی که ضرابخانه اساس قرار داده میشود، این مرکز با آگاهی از تمامی تراکنش ها، ترتیب آنها را تشخیص میدهد. به منظور پیاده سازی چنین مدلی بدون نیاز به یک واسط معتمد، لازم است تراکنش ها به صورت عمومی مخابره شوند [1] و همچنین نیاز به سیستمی است که اعضای آن بر سر یک تاریخچه ی واحد از ترتیبی که تراکنشها دریافت شده است، توافق کنند. از طرفی دریافت کننده به اثباتی نیاز دارد تا ثابت کند در زمان هر تراکنش، اکثریت نودها بر سر دریافت تراکنش مذکور پیش از سایرین اتفاق نظر داشته اند.
۳. سرور برچسب زماندار
راه حلی که ما ارائه میدهیم با سرور برچسب زماندار آغاز میشود. یک سرور برچسب زماندار هش بلوکی از داده ها را گرفته و به آنها برچسب زمانی الحاق میکند؛ سپس هش بدست آمده را به طور گسترده منتشر میکند؛ چیزی شبیه به انتشار یادداشت در روزنامه و یا یوزنت [2-5]. بدیهیست که به منظور محاسبه هش نیاز به داده است، پس وجود این برچسب زمانی در هر لحظه وجود داده را اثبات میکند. هر برچسب زمانی، هش برچسب زمانی قبلی خود را نیز در بر میگیرد که در مجموع یک زنجیره را شکل میدهند و هر برچسب زمانی جدید، برچسب های زمانی قبل از خود را تقویت میکند.
۴. اثبات انجام کار
به منظور اعمال یک سرور برچسب زماندار توزیع شده در سطح فرد به فرد، به جای استفاده از یادداشت های روزنامه و یا یوزنتی، ما نیاز به یک سیستم اثبات انجام کار همانند سیستم هشکش Adam Back داریم [6]. سیستم اثبات انجام کار شامل وارسی برای مقداری است که اگر هش آن (برای مثال با استفاده از 256-SHA ) محاسبه گردد، این عدد هش شده با تعدادی از بیتهای صفری آغاز شود. متوسط کار مورد نیاز برای دستیابی به این مقدار از لحاظ بیتهای صفری مورد نظر به صورت نمایی است و با انجام یک هش قابل تصدیق میباشد. برای اعمال PoW در شبکه ی برچسب زماندار، ما از افزودن یک نانس در بلوک استفاده میکنیم تا مقداری یافت شود که به هش بلوک، بیت های صفری مورد نیازش را بدهد. زمانی که تلاش CPU برای یافت مقدار مورد نظر PoW نتیجه دهد، بلوک مذکور بدون بازگردانی کار انجام شده، قابل تغییر نیست. همین طور که بلوکه ای بعدی به صورت زنجیره وار به آن متصل میشوند، برای تغییر بلوک مذکور باید کار انجام شده روی تمامی بلوک ها مجدد انجام گیرد.
همچنین سیستم اثبات انجام کار، مشکل تشخیص نظر غالب در تصمیم گیری های جمعی را حل میکند. اگر اکثریت بر اساس یک آدرس IP – یک رای بود، کسی که میتوانست به بیش از یک IP دسترسی داشته باشد، میتوانست در این تصمیمگیری اخلال ایجاد کند.
در سیستم PoW هر CPU در نهایت یک رای دارد. تصمیم اکثریت توسط بلندترین زنجیره مشخص میشود که این زنجیره دارای بیشترین اثبات انجام کار صرف شده است. چنانچه غالب قدرت CPU توسط نودهای معتبر کنترل شود، زنجیره موثق سریعتر رشد کرده و از زنجیره های رقیب پیشی میگیرد. به منظور تغییر یک بلوک قدیمی، فرد مهاجم باید علاوه بر انجام دوباره PoW بلوک، اثبات انجام کار تمامی بلوکهای پس از آن را نیز دوباره انجام دهد و سپس به نودهای معتبر رسیده و از آنها سبقت بگیرد.
در ادامه نشان خواهیم داد که احتمال اینکه یک مهاجم به این نقطه برسد با اضافه شدن بلوکهای بعدی به صورت نمایی کاهش مییابد. به منظور جبران افزایش سرعت سخت افزار و تعداد نودهای فعال در بازه های زمانی متفاوت، سختی PoW با متوسط متغیری غیرثابت معین میشود که متوسط تعداد بلوکها به ازای یک ساعت را مدنظر قرار میدهد. اگر بلوکها با سرعت زیادی ایجاد شوند، سختی افزایش مییابد.
۵. شبکه
شبکه را میتوان طبق مراحل زیر اجرا کرد:
1. تراکنشهای جدید به تمامی نودها مخابره میشوند.
2. هر نود تراکنشهای جدید را در یک بلوک ذخیره میکند.
3. هر نود سعی میکند تا جواب یک PoW سخت را برای بلوک خود بیابد.
4. زمانی که یک نود جواب PoW را مییابد، بلوک خود را به تمامی نودها مخابره میکند.
5. سایر نودها بلوک مذکور را تنها در شرایطی میپذیرند که کل تراکنشهای آن صحیح با شند و قبلا خرج نشده باشند.
6. سایر نودها موافقت خود را با بلوک مورد نظر با ایجاد بلوک بعدی در زنجیره اعلام میدارند و به این منظور از هش بلوک پذیرفتهشده به عنوان هش قبلی استفاده میکنند.
نودها همواره بلندترین زنجیره را به عنوان زنجیره صحیح در نظر میگیرند و برای گسترش آن تلاش میکنند. اگر دو نود دو نسخهی متفاوت از بلوک بعدی را به صورت همزمان مخابره کنند، ممکن است برخی نودها یک نسخه و برخی نودها نسخهی دیگر را دریافت کنند. در این شرایط آنها بر روی اولین نسخهای که دریافت کردهاند کار میکنند؛ اما نوع دیگر را در شاخهای متفاوت ذخیره خواهند کرد تا اگر آن شاخه بلندتر شد، آن را ادامه دهند. این اتصال زمانی که جواب PoW بعدی یافت شود قطع شده و تنها یک شاخه طویلتر خواهد بود؛ در این حالت سایر نودهایی که بر روی نسخهی دیگر بلوک کار انجام
داده بودند به شاخه بلندتر تغییر مسیر میدهند. نیازی نیست که تراکنشهای جدید منتشرشده الزاما به همهی نودها برسند. تا زمانی که به تعدادی از نودها برسد، به زودی در یک بلوک قرار خواهند گرفت. همچنین بلوکهای منتشرشده نسبت به پیامهای ازقلمافتاده مصوناند؛ به این معنی که اگر یک نود بلوکی را دریافت نکند،هر زمان که در حال دریافت بلوک بعدی باشد متوجه عدم حضور بلوک خواهد شد و درخواست دریافت آن را نیز میکند.
۶. انگیزه
به صورت قراردادی، اولین تراکنش در یک بلوک، تراکنش خاصی محسوب میشود که سکه ی جدیدی را ایجاد کرده و مالک آن تولیدکننده ی آن بلوک است. این مساله یک انگیزه برای نودها ایجاد میکند تا از شبکه پشتیبانی کنند و روشی برای توزیع سکه ها به منظور به گردش درآوردن آنها مهیا کنند؛ چراکه هیچ مرکزیتی برای چاپ آنها موجود نیست. میتوانیم این رویهی متدوام تولید مقداری از سکه های جدید را به استخراج کنندگان طلا تشبیه کنیم که با صرف منابع، طلا را به گردش درمیآورند.
در مقوله ی ما، این منابع زمان CPU و برق مصرفی است. همچنین این انگیزه میتواند با کارمزد تراکنش ها نیز تامین گردد. اگر مقدار خروجی یک تراکنش از مقدار ورودی آن کمتر باشد، مابه تفاوت یک کارمزد تراکنش است که به میزان انگیزه بلوک حاوی تراکنش میافزاید. زمانی که تعداد از پیش تعیین شدهی سکه ها به گردش درآمد، انگیزه تنها میتواند متمرکز کارمزد تراکنشها شود و کاملا عاری از تورم باشد. این انگیزه میتواند نودها را تشویق به درستکاری کند. اگر یک مهاجم آزمند بتواند قدرت CPU بیشتری از تمامی نودهای درستکار جمع کند، باید بین استفادهی این قدرت در جهت سرقت پرداخت های مردم و کلاهبرداری از آنها و یا در جهت تولید سکه های جدید، انتخاب کند. برای این شخص پیروی از قوانین باید سودمندتر باشد؛ قوانینی که به او از مجموع سایرین، سکه های جدید بیشتری بدهد تا او نخواهد سیستم و ارزش سرمایه خود را زیر پا بگذارد.
۷. بازیابی فضای دیسک
به محض اینکه آخرین تراکنش در یک سکه زیر بلوکهای کافی قرار گرفت، تراکنش های خرج شدهی قبل از آن میتوانند نادیده گرفته شوند تا فضای دیسک محفوظ باشد.به منظور انجام این کار بدون نیاز به شکستن هش بلوک، تراکنش ها در یک درخت مرکل هش میشوند [7][2][5] که تنها ریشه در هش بلوک دخیل است. بلوک های قدیمی متعاقبا به این روش میتوانند با استفاده از کوتاه کردن شاخه های درخت فشرده شوند. نیازی به ذخیره ی هش های داخلی نیست.
حجم سربرگ بلوکی که حاوی تراکنش نیست تقریبا حدود 80 بایت خواهد بود. چنانچه زمان تولید بلوک ها را هر 10 دقیقه در نظر بگیریم، 80 بایت *6*24*365= 4.2 مگابایت بر سال خواهد بود. سیستم های کامپیوتری که در سال 2008 به فروش میرسند عموما دارای RAM دو گیگابایتی هستند و قانون مور رشد فعلی را سالانه 1.2 گیگابایت تخمین میزند؛ درنتیجه فضای ذخیرهای حتی درصورت لزوم به نگهداری سربرگ های بلوک در حافظه، نباید مشکل ساز باشد.
۸. تایید تسهیل شده ی پرداخت
تایید پرداخت ها بدون اجرای یک نود شبکه ی کامل امکانپذیرست. کاربر تنها باید یک کپی از سربرگ های بلوک از طویل ترین زنجیرهی PoW داشته باشد؛ که میتواند این اطلاعات را از نودهای شبکه درخواست کند تا زمانی که از داشتن بلندترین زنجیره و شاخه مرکلی که تراکنش را به بلوکی که در آن برچسب زماندار شده است متصل میکند، اطمینان حاصل کند. او به خودی خود، نمیتواند تراکنش را بررسی کند؛ اما با اتصال آن به مکانی در زنجیره، میتواند پذیرفته شدن آن را توسط یک نود شبکه مشاهده کند و بلوکهای افزوده شده ی پس از آن تصدیقی بر اینست که شبکه آن را پذیرفته است.
به این ترتیب تا زمانی که نودهای معتبر شبکه را کنترل میکنند، تاییدها قابل اعتماد است؛ اما اگر غالب قدرت شبکه به دست مهاجم باشد، آسیب پذیرتر خواهد بود. ضمن اینکه نودهای شبکه میتوانند تراکنش ها را تایید کنند، چنانچه مهاجم بتواند غالب قدرت خود در شبکه را حفظ کند، روش تسهیل شده توسط تراکنش های ساختگی مهاجم قابل دستکاری خواهد بود. یک روش برای جلوگیری از این مساله اینست که امکان پذیرفتن اخطار از نودهای شبکه زمانی که بلوک نامعتبری را مشاهده میکنند، موجود باشد. به این صورت که دانلود کل بلوک و تراکنش های مشکوک برای تصدیق ناهماهنگی به نرم افزار کاربر القا شود. کسب وکارهایی که پرداخت های مکرر دارند بهترست نودهای خود را اجرا کنند تا امنیت خودگردان بیشتر و تایید سریعتر داشته باشند.
۹. مقدار ترکیبی و تفکیکی
اگرچه مدیریت سکه ها به صورت جداگانه ممکن است؛ اما ایجاد یک تراکنش جدا برای انتقال هر ِسنت ناکارآمد به نظر میرسد. برای اینکه تفکیک و ترکیب هر مقدار ممکن باشد، تراکنش ها دارای چندین ورودی و خروجی هستند. معمولا یا یک ورودی از یک تراکنش بزرگتر قبلی خواهد بود و یا چندین ورودی، مقادیر اندک را تلفیق خواهند کرد؛ و در بسیاری از موارد دو خروجی خواهیم داشت: یکی برای پرداخت و دیگری برای بازگشت باقی مانده. اگر باقیمانده موجود باشد، به فرستنده بازمیگردد.
لازم به ذکرست که ظرفیت خروجی، جایی که تراکنش به تراکنش های متعددی و آن تراکنش ها به تراکنش های بیشتری وابسته است، در این جا مشکل ساز نیست. هیچ گاه نیازی به استخراج یک کپی مستقل کامل از تاریخچه ی تراکنش ها نخواهد بود.
۱۰. حریم خصوصی
روش سنتی بانکداری دسترسی به اطلاعات را به گروه های دخیل و گروه های واسطه معتمد محدود میکند و به این روش به سطحی از حریم خصوصی دست مییابد. ضرورت مخابرهی تمامی تراکنش ها به صورت عمومی مانع این روال میشود؛ اما حریم خصوصی همچنان میتواند با استفاده از جلوگیری از جریان اطلاعات به مکانی دیگر رعایت شود: بدین صورت که کلیدهای خصوصی به شکل ناشناس نگهداری شوند. عموم میتوانند ارسال مقداری از یک شخص به شخص دیگر را بدون اطلاعاتی که تراکنش را به فردی مرتبط کند، ببینند. این سطح از اطلاعات منتشرشده مشابه صرافی های بورس است؛
جایی که زمان و اندازهی معاملات فردی، یا همان tape، بدون افشای هویت افراد، عمومی است.
به عنوان یک لایه محافظتی (دیوارآتش) مازاد، برای هر تراکنش بایستی یک جفت کلید جدید استفاده شود تا قابل ربط به صاحب همیشگی آن نباشد. البته اندازهای از قابلیت ارتباط با وجود تراکنش هایی که چند ورودی دارند، اجتناب ناپذیر است؛ چراکه واضح است ورودی آنها الزاما یک مالک دارد. احتمال خطر این مساله اینست که اگر صاحب کلید مشخص شود، ارتباط او با سایر تراکنش هایش نمایان خواهد شد.
۱۱. محاسبات
ما سناریویی را متصور میشویم که در آن مهاجم سعی میکند زنجیره ی جایگزینی سریعتر از زنجیره ی معتبر تولید کند. حتی اگر این سناریو قابل دستیابی باشد، سیستم را به سمت تغییرات دلخواه مانند تولید ارزش از هیچ و یا دریافت پولی که متعلق به مهاجم نبوده است، سوق نمیدهد. نودها تراکنش های نامعتبر را برای پرداخت نمیپذیرند و نودهای معتبر بلوک های حاوی این تراکنش ها را قبول نخواهند کرد. یک مهاجم تنها میتواند سعی بر تغییر یکی از تراکنش های خود کند تا پولی که اخیرا خرج کرده است را پس بگیرد. رقابت بین زنجیره ی معتبر و زنجیره ی مهاجم را میتوان به عنوان گشت تصادفی دوجملهای توصیف کرد. پیروزی، طویلتر شدن زنجیره ی معتبر به اندازه ی یک بلوک، با افزایش 1+ و شکست، طویل تر شدن زنجیرهی مهاجم به اندازهی یک بلوک، با کاهش 1-. احتمال اینکه مهاجم بتواند با این کسری به زنجیره معتبر برسد، مشابه مساله پاکباختگی قمارباز است. تصور کنید یک قمارباز با موجودی نامحدود شروع به زیان میکند و با تعداد ذاتا محدودی از آزمایش برای رسیدن به نقطه سربه سر بازی میکند. ما میتوانیم احتمال اینکه آیا هیچگاه به نقطه سربه سر میرسد و یا اینکه یک مهاجم میتواند به زنجیره معتبر برسد را به شکل زیر محاسبه کنیم[8]:
p = احتمال پیدا کردن بلوک بعدی توسط یک نود معتبر
q = احتمال پیدا کردن بلوک بعدی توسط مهاجم
qz = احتمال اینکه مهاجم از z بلوک عقبتر بتواند به زنجیره معتبر برسد
با توجه به فرض اولیه ی ما که p > q است، با افزایش تعداد بلوک هایی که مهاجم باید بگذراند تا به زنجیره معتبر برسد، احتمال آن به صورت نمایی کاهش پیدا میکند. اگر شرایط وفق مراد مهاجم نباشد و نتواند به سرعت پیش برود، هر چه از زنجیره عقب تر بیفتد، شانس او بسیار کم و ناچیز خواهد شد. حالا بررسی میکنیم که دریافت کننده ی یک تراکنش جدید چه مدت باید صبر کند تا بتواند به قدر کافی از عدم امکان تغییر تراکنش توسط فرستنده اطمینان حاصل کند. ما فرض میکنیم که فرستنده یک مهاجم است که قصد دارد دریافت کننده را در رابطه با پرداخت برای مدتی فریب دهد؛ سپس بعد از گذشت مدتی پرداخت را برای خود بازگشت بزند. در این حالت به گیرنده اخطار داده خواهد شد اما فرستنده امیدوارست که کار از کار گذشته باشد. گیرنده یک جفت کلید جدید تولید میکند و کلید عمومی را قبل از امضای آن در اختیار فرستنده قرار میدهد. این کار از آماده سازی زنجیرهای از بلوکها پیش از زمان مقرر توسط فرستنده جلوگیری میکند.
و او باید برای این کار به طور مداوم تلاش کند تا زمانی که به اندازه کافی خوش شانس بوده و به اندازه مورد نیاز جلو بیفتد؛ سپس در آن زمان تراکنش را اعمال کند. وقتی که تراکنش ارسال شد، فرستندهی متقلب مخفیانه شروع به تلاش در زنجیرهی موازی که حاوی نسخه ی جایگزین تراکنش اوست، میکند. گیرنده تا وقتی که تراکنش به یک بلوک اضافه شود و تعداد z بلوک به آن متصل شود، منتظر میماند. او از پیشرفت دقیق مهاجم بیاطلاع است؛ اما تخمین میزند که بلوکهای معتبر زمان متوسط مورد انتظار بر حسب هر بلوک را طی کرده اند؛ پتانسیل پیشرفت مهاجم با توزیع پواسون، مقدار مورد انتظار زیر خواهد بود:
حالا به منظور دستیابی به احتمال رسیدن مهاجم، ما تراکم پواسون را در هر مقدار پیشرفتی که مهاجم ممکن است با احتمالی که از آن نقطه به بعد به دست آورده باشد، ضرب میکنیم:
معادله را برای جلوگیری از جمعبندی انتهای متناهی از توزیع مجدد مرتب میکنیم:
و به زبان C تبدیل میکنیم:
نتایج را اجرا میکنیم؛ کاهش احتمال به شکل نمایی با متغیر z مشاهده میشود:
حل Pهای کمتر از 0.1 % …
۱۲. نتیجه
ما سیستمی برای تراکنش های الکترونیکی پیشنهاد کردیم که به اعتماد متکی نیست. ما با چهارچوب معمولی که از امضاهای دیجیتالی سکه ها ساخته میشوند و کنترل بسیاری برای مالک مهیا میکنند، شروع کردیم؛ اما این شیوه بدون روشی برای جلوگیری از خرج دوباره پول تکمیل نبود.
به منظور حل این مشکل ما یک شبکه فرد به فرد را با استفاده ازسیستم اثبات انجام کار پیشنهاد کردیم که تاریخچه ی همگانی از تراکنش ها را ثبت و ضبط کند که تا زمانی که قدرت غالب CPU توسط نودهای معتبر کنترل شود، تغییر در آن سریعا از لحاظ محاسباتی برای یک مهاجم غیرعملی باشد. شبکه با سادگی غیرساختاری خود پایدارست. نودها همگی به شکل همزمان و با حداقل نیاز به هماهنگی کار میکنند.
آنها نیاز به شناسایی ندارند چرا که پیغام ها به یک مکان مشخصی هدایت نمیشوند و تنها نیاز است تا بر اساس توافق به مقصد برسند. نودها میتوانند شبکه را در حالی که با زنجیرهی PoW به عنوان اثباتی از وقایع رخداده زمانی که از شبکه رفتهاند، ترک کنند و یا به آن بپیوندند. آنها با استفاده از قدرت CPU رای خواهند داد و پذیرش خود را با قبول بلوک های معتبر به صورت تلاش برای گسترش آنها و عدم پذیرش خود را با رد بلوک های نامعتبر و عدم انجام کار بر روی آنها، اعلام میکنند. هر گونه قانون و انگیزه هایی میتواند توسط مکانیسم توافق جمعی اعمال گردد.
برای مشاهده و خرید کیف پول سخت افزاری کول ولت پرو کلیک کنید.
منابع
- 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 trustrequirements,” 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,” InSequences 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 onComputer 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 andPrivacy, IEEE Computer Society, pages 122-133, April 1980.
- 8. W. Feller, “An introduction to probability theory and its applications,” 1957.