Cryptographic Hash Function
Cryptographic Hash Function یعنی چه؟
یک Cryptographic Hash Function یک الگوریتم است، یعنی یک دنباله تکرارپذیر از اقدامات خاص، که می تواند برای تبدیل یک رشته داده دلخواه با طول متغیر به یک طول و قالب ثابت به نام Hash استفاده شود.
یکی از سادهترین مثالهای Hash Function، جمع کردن ارقام در یک عدد است تا زمانی که یک خروجی تک رقمی باقی بماند. برای مثال، اگر ورودی 49 باشد، با جمع کردن 4 و 9، عدد 13 به دست میآید، که ارقام 1 و 3 مجدداً جمع میشوند تا خروجی 4 به دست آید. صرف نظر از طول عدد ورودی، خروجی همیشه یک عدد تک رقمی خواهد بود.
با این حال، این الگوریتم خوبی نیست، زیرا برای اینکه عملکردهای خود را به خوبی انجام دهد، یک Hash Function باید چندین ویژگی داشته باشد:
- محاسبه خروجی برای هر ورودی مشخص باید آسان باشد، اما معکوس کردن فرآیند و محاسبه ورودی یک خروجی شناخته شده تقریباً غیرممکن است.
- جبرگرایی : تغذیه یک ورودی خاص در الگوریتم باید همیشه همان خروجی را تولید کند.
- مقاومت در برابر برخورد : احتمال اینکه دو ورودی متفاوت خروجی مشابهی تولید کنند بسیار کم است.
- اثر نزول ناگهانی: تغییر حتی یک بیت داده در ورودی باید به خروجی بسیار متفاوتی منجر شود.
Hash Function در بسیاری از موارد استفاده میشوند، برای مثال، بهعنوان جمعهای کنترلی برای تأیید صحت فایلهای رایانه پس از انتقال طولانیمدت ذخیرهسازی، یا در تصادفیسازی توابع.
آنها همچنین یک جزء کلیدی در استخراج ارزهای دیجیتال POW، مانند بیت کوین (BTC) هستند که از Hash Function SHA-256 استفاده می کند. برای افزودن یک بلاک جدید به بلاک چین و دریافت پاداش خود از بیت کوین تازه استخراج شده، ماینرها ابتدا باید یک مقدار Hash تولید کنند که کمتر از یک آستانه مشخص به نام Target (هدف) است.
این واقعیت که Hash ها شبه تصادفی هستند و پیشبینی خروجی هر ورودی قبل از اجرای واقعی آن از طریق Hash Function غیرممکن است، تضمین میکند که ماینرها نمیتوانند بیتکوینهای جدید را از روی هوا چاپ کنند و باید کاری را که انجام دادهاند اثبات کنند.