وایت پیپر مونرو – قسمت دوم
0

وایت پیپر مونرو – قسمت دوم

بازدید : 127

در قسمت اول وایت پیپر مونرو تمام محدودیت های شبکه ی بیت کوین را توضیح دادیم، هم اکنون در این قسمت به معرفی ویژگی ها و کلید های Cryptonote میپردازیم.

اسکریپت های اصلی 

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

<sig> <pubKey> OP DUP OP HASH160 <pubKeyHash> OP EQUALVERIFY OP CHECKSIG.

این اسکریپت 164 بایت است. در حالی که تنها هدف آن بررسی این است که آیا گیرنده کلید مخفی برای تأیید امضایش را دارد یا نه؟

 معاملات غیر قابل ردیابی

در این بخش ما طرحی از معاملات کاملاً ناشناس ارائه می دهیم که هر دو قابلیت مرتبط نبودن و غیرقابل ردیابی بودن را برآورده میکند .ویژگی مهم راه حل ما استقلال آن است: فروشنده به همکاری با کاربران دیگر ویا شخص ثالث معتبر برای صورت دادن معاملات خود نیاز ندارد. از این رو هر کاربر به طور مستقل ترافیکی تحت پوشش تولید می کند.

مروری بر تحقیقات پیشین

طرح ما متکی بر رمزنگاری های اولیه ایست که امضای گروه نامیده میشود. و اولین بار توسط D. Chaum و E. van Heyst ارائه شد.

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

پروتکل اصلی به شخص ثالث معتبری (که مدیر گروه نامیده میشود) نیاز دارد. این شخص تنها کسی است که میتواند امضا کننده اصلی را ردیابی کند. نسخه بعدی که امضای حلقه ای نام دارد و توسط Rivest et al معرفی شده ، طرح مستقلی است که به مدیریت گروهی و ناشناس ماندن…. نیاز ندارد. بعداً تغییراتی در این طرح اعمال شد:

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

امضا حلقه ای قابل ردیابی

با فراهم کردن امکان ردیابی امضا کننده دو پیام با توجه به همان فرا داده (metainformation) ، ویژگی ناشناس بودن را محدود میکند. یک ساختار رمزنگاری شده مشابه که به عنوان امضای گروهی موقت نیز شناخته می شود به تشکیل گروه های دلخواه تأکید میکند. در حالی که طرح های امضای حلقه ای / گروهی به تعداد مشخصی از اعضا پایبند هستند.

در بیشتر موارد راه حل ما بر اساس فعالیت امضای حلقه ای قابل ردیابی که توسط E. Fujisaki و K. Suzuki معرفی شده پایه ریزی شده است. به منظور تشخیص الگوریتم اصلی و اصلاح از یکدیگر، ما امضای دوم را امضای حلقه ای یکبار مصرف نامیده ایم، که فعالیتش بر توانایی کاربر برای تولید تنها یک امضای معتبر بر اساس کلید خصوصی خود تأکید دارد.

ما ویژگی ردیابی را ضعیف کردیم. و قابلیت پیوند پذیری را فقط برای حفظ یکبار مصرف بودن حفظ کردیم . در نتیجه کلید عمومی ممکن است در بسیاری از مجموعه های تأیید کننده خارجی ظاهر شود و کلید خصوصی هم می تواند برای تولید یک امضای بی نام و نشان منحصر به فرد استفاده شود. حال در صورت اقدام به دوبار خرج کردن (double-spend) پول ،این دو امضا به هم مرتبط میشوند. اما اینکه امضا کننده شناسایی شود برای ما مفید نخواهد بود.

تعاریف

پارامتر منحنی بیضوی

ما از طرح سریع EdDSA که توسط D.J. Bernstein تهیه و اجرا شده،به عنوان اساس و پایه الگوریتم امضای خود استفاده کردیم. این طرح هم درست مثل ECDSA بر اساس مسئله لگاریتم گسسته منحنی بیضوی است. بنابراین طرح ما میتواند در آینده مورد استفاده بیتکوین هم قرار بگیرد.

پارامتر منحنی بیضوی
پارامترهای مشترک با EdDSA

اصطلاحات 

حریم خصوصی پیشرفته به اصطلاحات جدیدی نیاز دارد که نباید آنها را با واژگان بیت کوین اشتباه گرفت.

  • کلید خصوصی مخصوص تجارت الکترونیکی: یک کلید خصوصی منحنی بیضوی استاندارد است : یک عدد a ∈ [1, l − 1]
  • کلید عمومی مخصوص تجارت الکترونیکی: یک کلید خصوصی منحنی بیضوی استاندارد است: میزان A = aG
  • جفت کلید یکبار مصرف: یک جفت کلید خصوصی و عمومی
  • کلید کاربری خصوصی یک جفت (a ، b) از دو کلید الکترونیکی خصوصی متفاوت است.
  • کلید ردیابی : یک جفت (a ، B) کلید الکترونیکی خصوصی و عمومی است (که در آن B = bG و 6 = b).
  • کلید کاربر عمومی: یک جفت (A ، B) از دو کلید الکترونیکی عمومی است که از (a ، b) مشتق شده است.
  • آدرس استاندارد : نمایش کلید عمومی کاربر است  که میتوان در اختیار همگان قرار داد.
  • آدرس کوتاه شده :نمایشی از قسمت دوم (نقطه B) یک کلید عمومی است که میتوان در اختیار همگان قرار داد.

ساختار تراکنش

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

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

پرداخت های پیوند ناپذیر

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

پرداخت های پیوند ناپذیر
کلیدهای سنتی بیتکوین/ مدل تراکنش ها

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

کلیدهای کریپتونت CryptoNote

طبق مدل پیشنهادی ما کاربر میتواند یک آدرس واحد را منتشر کند و پرداخت های بدون قید و شرط و پیوند ناپذیری را دریافت کند. مقصد هر خروجی CryptoNote (به طور پیش فرض) یک کلید عمومی است. که از آدرس گیرنده و داده های تصادفی فرستنده گرفته شده است. مزیت اصلی Cryptonote نسبت به بیتکوین این است که همه کلیدهای مقصد به طور پیش فرض منحصر به فرد هستند.( مگر اینکه فرستنده برای هر ارسال به یک گیرنده خاص از داده های یکسانی استفاده کند). بنابراین،در اصل هیچ موردی به عنوان “استفاده مجدد از آدرس” وجود ندارد و هیچ ناظری نمی تواند تعیین کند که آیا تراکنش ها به آدرس خاصی ارسال شده اند یا دو آدرس به هم پیوند زده شده اند.

کلیدهای کریپتو نت
کلیدهای کریپتونت Cryptonote/ مدل تراکنش ها

 

ابتدا فرستنده مبادله Diffie-Hellman را انجام می دهد تا از داده های خود و نیمی از آدرس گیرنده یک رمز مشترک دریافت کند. سپس او با استفاده از رمز مشترک و نیمه دوم آدرس ، یک کلید مقصد یک بار مصرف را محاسبه می کند. برای این دو مرحله دو کلید الکترونیکی متفاوت از گیرنده مورد نیاز است . بنابراین یک آدرس CryptoNote استاندارد تقریباً دو برابر آدرس کیف پول بیت کوین است. گیرنده هم مبادله Diffie -Hellman را برای بازیابی کلید مخفی مربوطه انجام می دهد.

ترتیب یک تراکنش استاندارد به شرح زیر است:

  1. آلیس می خواهد برای باب ، که آدرس استاندارد خود را منتشر کرده ، مبلغی را ارسال کند. آلیس بسته آدرس را باز کرده و کلید عمومی باب را دریافت می کند. (A ، B)
  2. آلیس یک r ∈ [1, l−1] تصادفی ایجاد می کند و یک کلید عمومی یکبار مصرف P = Hs (rA) G + B را محاسبه می کند.

    کلیدهای کریپتو نت
    ساختار معاملات استاندارد.
  3.  آلیس از P به عنوان یک کلید مقصد برای خروجی استفاده می کند. همچنین مقدار R = rG (به عنوان بخشی از مبادله دیفی-هلمن) را در جایی از تراکنش وارد میکند. توجه داشته باشید که او می تواند خروجی های دیگری با کلیدهای عمومی منحصر به فردی ایجاد کند: کلیدهای مختلف گیرندگان (Ai ، Bi) حاوی Pi متفاوت حتی با همان r است.
  4. آلیس تراکنش را ارسال میکند.
  5. باب با استفاده از کلید خصوصی اش همه تراکنش های ارسالی را چک کرده (a,b) و Hs(aR)G + B را محاسبه میکند. اگر تراکنش آلیس با باب به عنوان گیرنده در میان آنها بود ، پس aR = arG = rA and P̛ = P
  6. باب میتواند کلید خصوصی یکبار مصرف را بازیابی کند: x = Hs(aR) + b, so as P = xG
کلیدهای کریپتو نت
بررسی تراکنش ورودی

او هر وقت که بخواهد میتواند این خروجی را خرج کند کافیست تراکنش را با  x  امضا کند. در نتیجه باب پرداختهای ورودی را به همراه کلیدهای عمومی یکبارمصرف که برای تماشاگر پیوند ناپذیر است را دریافت میکند.

0
0
برای اینکه به فکت این مقاله کمک کنید روی دکمه زیر کلیک کنید و تا افراد بیشتری آن را دنبال کنند
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه نظرات
محل تبلیغ
محاسبه‌گر ارزهای دیجیتال
ارز معادل
تومان

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

0
نظر خود را بنویسید !x