آموزش ساده مفاهیم مهم در بیت کوین
اثبات این که امضا و کلید عمومی با یک کلید خصوصی یکسان تولید شدن.
یه امضای دیجیتال دو جزء داره:
۱- جزء تصادفی
۲- جزء مربوط به امضا (کلید خصوصی+دادهی تراکنشی که داریم امضای دیجیتالی رو براش ایجاد میکنیم.)
با تولید یه عدد تصادفی شروع میکنیم؛ و بعد، این عدد رو با نقطهی تولیدکنندهی خم بیضوی (نقطهای که برای تولید کلید عمومی هم استفاده میشه) ضرب میکنیم.
جز تصادفی امضای دیجیتال، نقطهای روی خم بیضویه که نتیجهی نهایی رو میده. اما ما فقط مختصات xش رو در نظر میگیرم:
به اختصار بهش میگیم «r».
عملا این کار شبیه تولید یه کلید خصوصی و یه کلید عمومیه. با این تفاوت که اینجا داریم این کار رو میکنیم که به امضای دیجیتالمون یه بخش تصادفی اضافه کرده باشیم.
پس حالا نصف امضای دیجیتالمون آمادهست؛ اما کلید خصوصیمون رو تا اینجا برای هیچ کاری استفاده نکردیم. اینجاست که میرسیم به نیمهی دوم...
اول، کلید خصوصیمون رو برمیداریم و در r (مختصات x از نقطهی تصادفیِ روی خم، که تازه پیدا کردیم) ضرب میکنیم.
مرحلهی بعد، چیزی رو که قراره امضا کنیم رو هم بهش اضافه میکنیم. به این چیز «پیام» گفته میشه. در بیتکوین، پیام، هش کل دادهی تراکنشه که خروجیای که میخوایم باز کنیم رو در خودش جا میده.
افزودن هش تراکنش، باعث میشه که امضا به یه تراکنش وصل بشه (و قابل استفاده برای تراکنش دیگهای نباشه.)
در نهایت، به عنوان یه حرکت مفید، همهی اینها رو به عدد تصادفی اولیهمون تقسیم میکنیم:
و… هجی مجی لاترجی! جزء حیاتی «امضا» از امضای دیجیتالمون آمادهست. به اختصار به این بخش میگیم «s».
Mr. D Signature.
و حالا بخش جالب ماجرا …
اگه کسی از ما بخواد که اثبات کنیم کلید خصوصی مربوط به یه کلید عمومی رو میدونیم، میتونیم امضای دیجیتالمون (r و s) رو ارائه کنیم.
اما چطوری یه نفر میتونه از این اطلاعات به عنوان اثبات استفاده کنه؟
در بیتکوین، کل این امضا به قسمتی از تراکنش میره که بهش میگیم «اسکریپت باز کننده». کلید خصوصیای که از اون برای تولید امضا استفاده کردیم همون کلیدیه که به آدرسی که خروجیها بهش قفل شدن گره خورده.
هدفمون راستیآزمایی این مسالهست که آیا امضای دیجیتال از کلید خصوصی درست ایجاد شده یا نه. برای راستیآزمایی اینکه آیا کلید خصوصی درستی برای تولید امضای دیجیتال استفاده شده یا نه، کسی که این امضای دیجیتال رو بررسی میکنه باید از هر دو جزء استفاده کنه تا دو نقطهی جدید روی خم بیضوی پیدا بشه.
پیام رو به s تقسیم میکنیم. اولین نقطه، نقطهی تولیدکننده است که در این مقدار ضرب شده:
r رو به s تقسیم میکنیم.
دومین نقطه کلید عمومیه که در این مقدار ضرب شده:
اگه این دو تا نقطه رو با هم جمع کنیم، یه نقطهی سومی روی خم به دست میاریم:
و اگه مختصات x از این نقطهی سوم با مختصات x نقطهی تصادفی که باهاش شروع کردیم (یعنی r) یکسان باشه، پس اثبات میشه که امضای دیجیتال با استفاده از کلید خصوصی مربوط به این کلید عمومی تولید شده.
شاد زی..
اینم آخرین قسمت./