وایت پیپر مونرو – قسمت آخر

خانهمقالاتوایت پیپر مونرو...

آنچه می‌خوانید...

در ادامه قسمتهای قبل وایت پیپر مونرو ،که درباره مشکلات عمده شبکه بیتکوین و برخی راهکار ها صحبت کردیم، در این قسمت به معرفی خصوصیات یک تراکنش استاندارد و بررسی فرآیند بررسی تراکنش و  تولید امضاهای حلقوی خواهیم پرداخت.

بررسی تراکنش ورودی

در نتیجه تراکنش انجام شده از طرف آلیس باب پرداختهای ورودی و کلیدهای عمومی یکبار مصرف که برای تماشاگر غیر قابل اتصال هستند را دریافت میکند. برخی نکات اضافی:

  • وقتی باب تراکنش هایش را پیدا کرد( به مرحله پنجم رجوع کنید)،  از نیمی از اطلاعات خصوصی اش استفاده میکند (a,B ). این جفت که به عنوان کلید ردیابی نیز شناخته می شود ، می تواند به یک شخص ثالث (کرول ) هم سپرده شود. باب می تواند پردازش تراکنش های جدید را به کرول واگذار کند. لزومی ندارد که باب کامل به کرول اعتماد کند. چرا که کرول بدون داشتن کلید خصوصی باب نمیتواند کلید یکبار مصرف P را بازیابی کند(a,b) . این روش زمانی مفید است که باب فاقد پهنای باند یا قدرت محاسبه (تلفن های هوشمند ، کیف پول های سخت افزاری و غیره) باشد.
  • در شرایطی که آلیس بخواهد به باب ثابت کند که برای او تراکنشی ارسال کرده ،میتواند از پروتکل دانش صفر برای اینکه نشان دهد از مقدار r باخبر است،استفاده کند.( امضای تراکنش با r )
  • اگر باب بخواهد آدرسی سازگار با صرافی که همه تراکنش های ورودی اش قابل اتصال هستند، داشته باشد،میتواند کلید رهگیری اش را منتشر کند .یا از یک آدرس کوتاه شده استفاده نماید.این آدرس فقط یک کلید عمومی B را نشان میدهد و تمام قسمت های باقی مانده ،از معادله a = Hs(B) and A = Hs(B)G به دست خواهند آمد. در هر دوی این شرایط، هر کدام از این افراد متوجه تراکنش های ورودی باب خواهند شد. اما هیچکدام نمیتوانند وجوه ضمیمه شده را بدون رمز b خرج کنند.

امضاهای حلقه ای یکبار مصرف

پروتکل متکی بر امضاهای حلقه ای یکبار مصرف به کاربران اجازه میدهد به پیوند ناپذیری بی قید و شرطی دست یابند. متأسفانه ، امضاهای معمول رمزنگاری شده ردیابی تراکنش ها را برای فرستنده ها و گیرنده های مربوطه خود مجاز می دانند. راه حل ما برای رفع این مشکل در استفاده از نوع امضای متفاوت از آنچه در حال حاضر در سیستم های نقدی الکترونیکی استفاده می شود ، نهفته است.

ما در ابتدا الگوریتم خود را به صورت کلی و بدون اشاره صریح به پول نقد الکترونیکی توصیف خواهیم کرد. یک امضای حلقوی یکبار مصرف شامل 4 الگوریتم متفاوت است:

GEN : پارامترهای عمومی را می گیرد و یک جفت ec (P ، x) و یک کلید عمومی I تحویل میدهد.

SIG : یک پیام m را می گیرد ، مجموعه ‘S  از کلیدهای عمومی {Pi} i6 = s ، یک جفت (Ps ، xs) ، یک امضای σ و یک دسته S = S 0 ∪ {Ps} را تولید می کند

VER: پیام m ، یک دسته s و امضای σ را میگیرد و خروجی “صحیح” یا”غلط” را تولید میکند.

LNK: یک مجموعه I = {Ii} و امضای σ را میگیرد و خروجی ” مرتبط” یا ” مستقل” را تولید میکند.

ایده و ذهنیت پشت این پروتکل بسیار ساده بوده است:

کاربر امضایی را تولید میکند که می تواند توسط مجموعه ای از کلیدهای عمومی و نه یک کلید عمومی منحصر به فرد بررسی شود. تا زمانی که مالک با استفاده از همان جفت کلید امضای دومی تولید نکند، هویت امضا کننده از سایر کاربرانی که کلیدهای عمومی آنها در آن دسته قرار دارد، قابل تشخیص نیست .

وایت پیپر مونرو
نا شناس بودن  امضای حلقوی

 

GEN: امضا کننده یک کلید مخفی تصادفی x ∈ [1, l − 1] انتخاب کرده و کلید عمومی مربوطه( P = xG ) را محاسبه می کند. به علاوه او یک کلید عمومی دیگری را به نام ” تصویر کلید” محاسبه میکند.

SIG: امضا کننده با استفاده از اثبات دانش صفر بدون تعامل( تکنیک های 21) ، یک امضای حلقه ای یکبار مصرف تولید میکند. او از n تعداد کلیدهای عمومی کاربران دیگر،جفت کلیدهای خودش (x, P)  و تصویر کلید I ،دسته ای را بر میدارد. در اینجا اجازه دهید  0 ≤ s ≤ n  شاخص مخفی امضا کننده  در S باشد.  (پس کلید عمومی او Ps است). او از (1 . . . l) به صورت تصادفی {qi| i = 0 . . . n} و {wi | i = 0 . . . n, i 6= s} را بر میدارد و سپس اقدامات زیر را اعمال میکند.ابتدا:مرحله بعدی دستیابی به چالش غیر تعاملی است:

سرانجام امضا کننده پاسخ را محاسبه می کند:

امضای نهایی σ = (I, c1, . . . , cn, r1, . . . , rn خواهد بود.

VER: تأیید کننده با استفاده از تغییرات معکوس ، امضا را بررسی می کند:

در نهایت ، تأیید کننده موارد زیر را برررسی میکند:

اگراین معادله صحیح باشد، تأیید کننده الگوریتم LNK را اجرا می کند. در غیر این صورت که امضا را رد می کند.

LNK: تأیید كننده بررسی می كند كه آیا I در امضاهای گذشته مورد استفاده قرار گرفته یا خیر. (این مقادیر در دسته I ذخیره می شوند). اگر چندین بار استفاده شده باشد ،نشان میدهد که دو امضا از یک کلید خصوصی تولید شده است.

معنی پروتکل: با استفاده از تبادلات L ، امضا کننده اثبات می کند که این x را می شناسد.که حداقل یک Pi  برابر با xG است. برای غیر قابل تکرار شدن این اثبات ، تصویر اصلی را I = xHp (P) معرفی می کنیم. امضا کننده از ضرایب یکسانی (ri ، ci) برای اثبات تقریباً یکسان استفاده می کند. او این x را می شناسد . که حداقل یک Hp(Pi) معادل I · x −1 است. اما اگر x → I اضافه شود:

1. هیچ کس نمی تواند کلید عمومی را از تصویر کلید بازیابی کرده .و امضا کننده را شناسایی کند.

2. امضا کننده نمی تواند دو امضا با I متفاوت و x یکسان ایجاد کند.

تجزیه و تحلیل امنیتی به صورت کامل و جامع در پیوست A ارائه شده است.

کریپتونت استاندارد ( Standard CryptoNote transaction)

باب با ترکیب هر دو روش (کلیدهای عمومی غیرقابل اتصال و امضای حلقه غیرقابل ردیابی) در مقایسه با طرح اصلی بیتکوین به سطح جدیدی از حریم خصوصی دست می یابد.به علاوه  باب برای شروع پروسه ارسال و دریافت تراکنش های بی نام باید تنها یک کلید خصوصی (a,b) را ذخیره و(A,B) را منتشر کند.

باب همزمان در حالی که اعتبار هر تراکنش را تأیید می کند ، فقط عملیات ضرب دو منحنی بیضوی و یک جمع در هر خروجی را انجام دهد . این عملیات برای بررسی اینکه آیا معامله متعلق به وی است یا نه انجام می شود. باب برای هرکدام از خروجی هایش یک جفت کلید یکبار مصرف (pi , Pi) را بازیابی و در کیف پولش ذخیره میکند.

هر ورودی تنها در صورتی که در یک تراکنش واحد ظاهر شود میتواند به تفصیل ثابت کند که مالک یکسانی دارد.اثبات این ارتیاط به خاطر وجود امضای حلقوی یکبار مصرف بسیار دشوارتر خواهد بود.

باب با استفاده از امضای حلقوی میتواند همه داده هایش را در میان داده های اشخاص دیگر پنهان کند. امکان ارسال برای همه فرستندگان امکان پذیر خواهد بود. حتی آلیس هم که مالک قبلی است هیچ اطلاعات اضافه تری نسبت به بقیه ناظران نخواهد داشت.

در زمان امضای تراکنش، باب n تعداد خروجی نامربوط که حاوی همان مبلغ هست را به عنوان خروجی خودش مشخص میکند. سپس همه آنها را بدون دخالت کاربران دیگر باهم ترکیب میکند. باب ( مثل هر شخص دیگری) خودش نمیداند که آیا هیچ یک از این تراکنش ها ارسال شده است یا نه. یک خروجی میتواند در هزاران امضا به عنوان عاملی نا معلوم استفاده شود. ولی هیچگاه به عنوان وسیله ای برای پنهان سازی به کار نمیرود.

در هنگام بررسی تصاویر کلید استفاده شده در فاز Link ،وقوع حمله دوبار خرج کردن ( double spend) هم چک میشود.

باب خودش به تنهایی میتواند درجه نامعلومی و ابهام را انتخاب کند. n=1 به معنی این است که، 50% احتمال دارد باب خروجی را خرج کرده باشد. و در صورتی که n=99 باشد این احتمال 1% میشود. زمانی که O(n+ 1) شود اندازه امضای نهایی به صورت خطی افزایش میابد.

پس این ناشناس ماندن برای باب از کارمزد تراکنش گرانتر تمام میشود. علاوه بر این او میتواند n=0 تنظیم کند و از این طریق امضای حلقوی او تنها از یک عنصر تشکیل میشود. اگرچه این مسئله باعث میشود که او بلافاصله به عنوان شخص خرج کننده ظاهر شود.

تولید امضای حلقوی در یک تراکنش استاندارد

وایت پیپر مونرو
تولید امضای حلقوی در یک معامله استاندارد

اسکریپتهای تراکنش

CryptoNote ،از یک سیستم فرعی اسکریپت نویسی بسیار مینیمالیستی برخوردار است. فرستنده فرآیندی را مشخص می کند Φ = f (x1, x2, . . . , xn),که n تعداد کلیدهای عمومی مقصد است{Pi} n i=1. در اینجا تنها پنج اپراتور دودویی پشتیبانی می شوندکه عبارتند از:  min, max, sum, mul و cmp. وقتی گیرنده این مبلغ را خرج می کند ، او 0 ≤ k ≤ n امضا تولید می کند. و آنها را به ورودی تراکنش منتقل می کند. فرآیند تأیید به سادگی Φ را با xi = 1 مقایسه  می کند تا امضای معتبری برای کلید عمومی Pi پیدا کند ، و xi = 0. تأیید کننده ، در صورتی که Φ> 0 باشد، بازبین مدارک را می پذیرد. علیرغم سادگی ، این روش همه موارد ممکن را پوشش می دهد:

  • امضای چندگانه/ حد آستانه

طبق سبک شبکه بیتکوین،  گیرنده باید حداقل 0 ≤ M ≤ N امضای معتبر ارائه دهد( Φ = x1 + x2 +. . + xN ≥ M ). (برای شفافیت بهتر موضوع ما از نشانه های جبری رایج استفاده می کنیم). امضای آستانه وزن دار می تواند به صورت Φ = w1 · x1 + w2 · x2 + بیان شود. (بعضی از کلیدها می توانند از اهمیت بیشتری برخوردار باشند) . و زمانی که کلید اصلی با Φ = max(M · x, x1 + x2 + . . . + xN ) ≥ M مطابقت داشته باشد، نشانگر این امر است که هر مورد پیچیده ای را میتوان با این اپراتورها بیان کرد چرا که آنها اساس کار هستند.

  • محافظت از رمز عبور

در اختیار داشتن رمز عبور مخفی s معادل داشتن یک کلید خصوصی است. که قطعاً از رمز عبور گرفته شده . k = KDF (ها). از این رو ، یک گیرنده می تواند با ارائه یک امضای دیگر با استفاده از کلید k ثابت کند که رمز عبور را می داند. فرستنده به راحتی کلید عمومی مربوطه را به خروجی خود اضافه می کند. توجه داشته باشید که این روش بسیار ایمن تر از “معمای تراکنش” مورد استفاده در شبکه بیت کوین است . چرا که در آنجا رمز ورود به صورت کاملاً واضح در ورودی ها وارد می شود.

  • موارد رو به زوال

اگر Φ = 1 باشد به این معناست که هر کس میتواند این پول را خرج کند. اگر Φ = 0 باشد هم حاکی از این است که خروجی تا ابد غیر قابل خرج کردن باقی خواهد ماند.

در مواردی که اسکریپت خروجی همراه با کلیدهای عمومی باشد ،حجم آن برای فرستنده بسیار زیاد خواهد بود. در این موقعیت او میتواند از نوع خاصی از خروجی استفاده کند. این امر نشان میدهد که گیرنده این داده را درون ورودی قرار میدهد ، در صورتی که فرستنده تنها هش آن را ارائه میکند. این رویکرد درست شبیه به قابلیت pay to hash شبکه بیت کوین است . تنها با این تفاوت که به جای افزودن دستورات جدید اسکریپت ، این مورد را در سطح ساختار داده مدیریت می کنیم.

جمع بندی مطلب

در این وایت پیپر به بررسی نواقص عمده شبکه بیتکوین پرداختیم و چندین راهکار برای آنها ارائه دادیم. این ویژگی های سودمند و توسعه مداوم شبکه ما ، سیستم جدید پول نقد الکترونیکی با نام  CryptoNote را به رقیبی جدی برای بیت کوین تبدیل کرده. و البته از همه فورک های آن هم پیشی گرفته است.

فردریش هایک (Friedrich Hayek) ،برنده جایزه نوبل، در یکی از آثار معروف خود اثبات می کند که وجود ارزهای مستقل همزمان تأثیر بسزایایی دارد. در این حوزه هر کدام از صادر کنندگان ارز با توسعه محصول خود در تلاشند تا کاربران بیشتری را به سمت خود جذب کنند. ارز هم درست مثل کالا مزایا . معایبی دارد . هرچقدر یک ارز  مناسب تر و قابل اعتمادتر باشد، افراد بیشتری طرفدار آن هستند. پس به نسبت تقاضا برای خرید آن هم افزایش پیدا خواهد کرد.

اگر در این بازار ارزی بهتر از بیت کوین داشتیم ، بیتکوین تلاش میکرد تا سریعتر شبکه اش را بهبود ببخشد. و توسعه یابد. این کاربران آن شبکه هستند که باید در جهت بهبود شبکه از آن حمایت کنند. ما معتقد نیستیم که CryptoNote  میتواند به صورت کامل جایگزین بیت کوین شود. بر عکس فکر میکنیم که وجود همزمان دو ارز ایده آل و قدرتمند بسیار کارآمدتر از وجود تنها یک ارز موفق است.

2 نظرات

  1. سلام و درود
    مطالب بسیار عالی هستند.امکان داره وایت پیپر چین لینک رو هم بگذارید تا استفاده کنیم؟
    سپاس

پاسخ ترک

لطفا نظر خود را وارد کنید
لطفا نام خود را اینجا وارد کنید

spot_img

هیچ خبری رو از دست نده!

محاسبه‌گر ارزهای دیجیتال
ارز معادل
تومان

محاسبه با مبلغ تتر : تومان