به جلسۀ دیگری از دوره آموزش ارزهای دیجیتال خوش آمدید. در جلسهای که گذشت، سعی کردیم درکی از امضای دیجیتال به شما انتقال دهیم. حال قصد داریم بررسی کنیم که «امضای دیجیتال چگونه کار میکند؟». در این جلسه به پرسش که «رمزنگاری نامتقارن چیست؟» پاسخ خواهیم داد. با آکادمی کالج پیپس، بزرگترین مرجع تخصصی آموزش بازارهای مالی، همراه باشید تا قلههای دانش را در زمینۀ رمزارزها فتح کنید.
[ez-toc]
در این درس، قصد داریم به بررسی نحوۀ کارکرد امضای دیجیتال در بیت کوین و سایر رمزارزها بپردازیم.
امضای دیجیتال چگونه کار میکند؟
برای رسیدن به این مرحله، باید ابتدا چندین مفهوم فنی را فرا بگیریم که بهعنوان «بلوکهای ساختمانی» مورد نیاز برای ایجاد یک امضای دیجیتال عمل میکنند:
اگر با این مفاهیم آشنا نیستید، آنها بهصورت ساده در درسهای قبلی توضیح داده شدهاند. برای کسب اطلاعات بیشتر، لینکهای مربوطه را بررسی کنید.
چگونه امضای دیجیتال ایجاد میشود؟
بیایید مرحله به مرحله نحوۀ ایجاد یک امضای دیجیتال را بررسی کنیم:
- زمانی که میخواهید بیت کوین ارسال کنید، کیف پول شما یک پیام تراکنش ایجاد میکند. این پیام حاوی اطلاعاتی مانند مقدار بیت کوینی که میخواهید ارسال کنید و آدرس گیرنده است.
- این پیام از طریق یک تابع هش عبور داده میشود.
- تابع هش یک خروجی تولید میکند که بهعنوان «هش» شناخته میشود.
- سپس این هش، با کلید خصوصی شما رمزنگاری میشود.
- در نهایت، هش رمزنگاری شده به «امضای دیجیتال» تبدیل میشود.
در پایان این فرآیند، کیف پول شما دو «آیتم» ایجاد کرده است:
- پیام تراکنش
- امضای دیجیتال (یک هش رمزنگاری شده از پیام تراکنش)
در این مرحله، هنوز هیچ چیزی به شبکه بیتکوین ارسال نشده است.
اگر متوجه نشدهاید، باید بگوییم که پیام تراکنش بهعنوان یک «مادۀ اولیه» برای ایجاد امضای دیجیتال مورد نیاز است. بنابراین، شما فقط از کلید خصوصی خود برای ایجاد امضای دیجیتال استفاده نمیکنید؛ بلکه از کلید خصوصی و هش پیام تراکنش استفاده میکنید.
همچنین، این بدان معنا نیز میباشد که نمیتوانید از این امضای دیجیتال برای یک تراکنش دیگر استفاده کنید. اگر تلاش کنید از این امضای دیجیتال در یک تراکنش دوم استفاده کنید، شبکه بیت کوین آن را رد میکند؛ زیرا امضای دیجیتال تنها بر اساس دادههای تراکنش اول است.
هر امضای دیجیتالی، منحصر به یک تراکنش خاص است.

امضای دیجیتال چگونه تأیید میشود؟
برای خرج کردن بیتکوین از یک آدرس خاص، باید «مالکیت» (یا دانش) کلید خصوصی مرتبط با کلید عمومی مربوط به آن آدرس را اثبات کنید. یک امضای دیجیتال میتواند اثبات کند که شما کلید خصوصی مرتبط با یک کلید عمومی را دارید.
بیایید ببینیم این فرآیند چگونه کار میکند:
- هنگامی که یک تراکنش بیتکوین را شروع میکنید، نرمافزار کیف پول شما در واقع سه «آیتم» را به شبکه بیت کوین ارائه میدهد: پیام تراکنش، امضای دیجیتال و کلید عمومی شما (که به آدرسی که بیتکوین مورد نظر در آن ذخیره شده است مرتبط است).
- وقتی یک نود بیتکوین این «آیتمها» را دریافت میکند، آنها را از هم جدا میکند.
- پیام تراکنش اصلی را از طریق همان تابع هشی که شما قبلاً استفاده کردهاید عبور میدهد (تمام نرمافزارهای بیتکوین از همان تابع هش استفاده میکنند). برای امضای دیجیتال، از کلید عمومی شما برای رمزگشایی آن استفاده میکند.
- سپس هر دو هش را مقایسه میکند.
- آیا هر دو هش دقیقاً یکسان هستند؟ اگر هر دو هش مطابقت داشته باشند، این اثبات میکند که شما مالک واقعی بیت کوینی هستید که قصد ارسال آن را دارید.
دو نکتۀ مهم:
- توانایی رمزگشایی با کلید عمومی هویت فرستنده را اثبات میکند. زمانی که نود قادر به رمزگشایی امضای دیجیتال است، این اثبات هویت شما است. چون کلید خصوصی و کلید عمومی بهصورت ریاضی به هم مرتبط هستند، اگر بتوانید با کلید عمومی ما (بهعنوان مثال) یک پیام را رمزگشایی کنید، این بدان معناست که آن را با کلید خصوصی خود را رمزگذاری کرده بودیم. اگر نتوانید پیام را رمزگشایی کنید، به این معنی است که پیام با کلید خصوصی دیگری رمزگذاری شده و پیام از طرف ما نیست.
- هشهای یکسان، نشان میدهند که پیام تغییر نکرده است؛ پس در این مرحله بررسی میشود که هر دو هش دقیقاً یکسان باشند تا اطمینان حاصل شود که پیام اصلی تغییر نکرده است. این موضوع مهم است؛ زیرا پیام تراکنش اصلی بهصورت متن ساده است و همۀ تراکنشهای بیتکوین بهصورت عمومی قابل مشاهده هستند. هر تغییر جزئی در پیام، هش متفاوتی تولید میکند. بنابراین اگر کسی پیام تراکنش اصلی را در مسیر به نود تغییر دهد (مانند ارسال بیت کوین به آدرس خود)، هنگام عبور پیام از تابع هش، هش تولید شده با هش امضای دیجیتال متفاوت خواهد بود.
همانطور که یک امضای دستنویس، یک شخص را به یک سند خاص مرتبط میکند، یک «امضای دیجیتال» با استفاده از رمزنگاری، هویت را به یک پیام خاص مرتبط میکند.