هر هفته با آنتونی؛ چه چیزهایی در یک تراکنش بیت کوین امضا می شوند؟
وقتی از سیستم بانکی برای انجام تراکنش و جابهجایی پول استفاده میکنیم، هویت و جزئیات درخواست ما بررسی میشود. هدف این کار، اطمینان از این است که شخص صاحب حساب، درخواست تراکنش داده و جزئیات خواسته وی دچار تغییر نشده است. بیت کوين یک سیستم غیرمتمرکز است و در آن خبری از نهاد واسط برای کنترل تراکنشها نیست. در این شبکه هویت افراد مشخص نیست و هر حساب با کلید عمومی و خصوصی شناخته میشود. برای اطمینان از اینکه خود صاحب حساب درخواست تراکنش داده و تغییری در خواسته او ایجاد نشده است، بیت کوین از رمزنگاری و امضای دیجیتال استفاده میکند. برای برخی سوال است که پارامترهای امضا شده در تراکنش بیت کوین کدامند؟ آندرس آنتونوپولوس فرد با تجربه دنیای کریپتوکارنسی، در ویدیوی زیر به این سوال پاسخ میدهد.
مدلهای مختلف امضا (SIGHASH) چیست؟
روشهای مختلفی برای امضای تراکنشهای بیتکوین وجود دارند که به عنوان SIGHASH شناخته میشوند. این الگوهای مختلف به کاربر اجازه میدهند تا تصمیم بگیرد که کدام بخشها از تراکنش را میخواهد امضا کند. قسمتهایی که امضا میشوند، دیگر تغییری نخواهند کرد. سه نوع SIGHASH رایج عبارتند از:
- SIGHASH_ALL: همه ورودیها و خروجیها را امضا میکند و از همه چیز به جز اسکریپتهای امضا، در برابر تغییرات محافظت میکند.
- SIGHASH_NONE: همه ورودیها را امضا میکند، اما هیچ یک از خروجیها را امضا نمیکند و به هر کسی اجازه میدهد تا جایی که کوینها میروند را تغییر دهد.
- SIGHASH_SINGLE: همه ورودیها و خروجی با ایندکس مشابه را امضا میکند.
تابع هش SHA256 چیست؟
تابع هش، یک تابع ریاضی با ویژگیهای خاص است که عملیاتی را روی دادههای ورودی انجام میدهد. توابع هش که به آنها توابع رمزنگاری هم گفته میشود، دادههای ورودی را به یک رشته از اعداد و حروف با طول ثابت تبدیل میکنند. از ویژگیهای این توابع، میتوان به موارد زیر اشاره کرد:
- یکطرفه هستند؛ یعنی نمیتوان تابع را معکوس کرد و از خروجی به ورودی رسید.
- اگر مقادیر دیتای ورودی ثابت باشد، مقدار خروجی نیز همیشه ثابت خواهد بود.
- تصادفی عمل میکند؛ یعنی نمیتوان پیشبینی کرد که خروجی تابع چه چیزی خواهد بود.
- کوچکترین تغییری در مقادیر ورودی، خروجی را تغییر میدهد.
- مهم نیست چه میزان دیتای ورودی وجود داشته باشد، خیلی سریع خروجی را محاسبه میکند.
توابع هش مختلفی وجود دارند که هریک ویژگیهای خاص خودش را دارد. SHA256 تابع هشی است که در بیتکوین استفاده شده و از امنترین توابع به حساب میآید. این تابع پیام ما یا همان جزئیات تراکنش را به عنوان ورودی دریافت کرده و یک رشته ۲۵۶ بیتی از حروف و اعداد را به عنوان خروجی ثبت میکند.