امضای دیجیتال چیه؟
امضای دیجیتال یه چیزیه که باهاش میتونین بدون نشون دادن کلید خصوصی واقعی، ثابت کنین کلید خصوصی مرتبط به یک کلید عمومی رو میدونید.

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

اما اگه کلید خصوصیت رو تو دادهی تراکنش قرار بدی، هر کسی تو شبکه می تونه کلید خصوصیت رو ببینه:

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

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

بنابراین، هر امضای دیجیتال به تراکنشی وصله که در اون استفاده میشه.

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

در نتیجه، امضای دیجیتال هر تراکنش، از دستکاری شدن همون تراکنش هم محافظت میکنه.
امضاهای دیجیتال چطور کار میکنن؟
ریاضیه، عزیزم.
۱- کلید خصوصی رو با دادهی تراکنش تلفیق میکنی و با کمک یه کم ریاضی ازش یک امضای دیجیتال تولید میکنی.
۲- بعدش، میتونی امضای دیجتال + دادهی تراکنش + کلید عمومی رو برداری و یه کم ریاضی بیشتری روش پیادهسازی کنی و نتیجهش چیزی میشه که میتونه صحت کلید خصوصی استفادهشده برای تولید امضای دیجیتالی رو تصدیق کنه.
چون یادت باشه، هدف امضای دیجیتال، نشون دادن مالکیت کلید عمومیه.
میدونم که این پروسه در نگاه اول شبیه جادوگری میمونه؛ اما راستش رو بخوای تهش فقط محاسبات ریاضیه.
و اگر دوست داری ببینی چطوری انجام میگیره ….
امضاهای دیجیتال (امضا و صحتسنجی)