تابع هش (Hash Function) در استخراج ارزهای دیجیتال و اضافه کردن بلاک جدید به زنجیره شبکه بلاک چین کاربرد دارد. حتما میدانید که شبکه بلاکچین بیت کوین بر اساس قوانینی به نام الگوریتم اجماع اثبات کار (Proof Of Work) شکل گرفته است. این روش رأیگیری، در واقع مجموعهای از قوانین و مقررات است که از شبکه بلاکچین ارزهای دیجیتال محافظت میکند. در این مکانیزم، یک معمای مهم به نام معمای هش (تابع هش) وجود دارد که برای هر بلاک از زنجیره یک بار باید این معما حل شود.
حل معمای هش دغدغه اصلی استخراجکنندگان رمز ارزها است که منجر به دریافت پاداش استخراج میشود. خارج از دنیای ارزهای دیجیتال، مرسومترین کاربرد تابع هش در ذخیره رمزهای عبور است.
در این مطلب از بلاگ بیتمکس، درباره تابع هش و کاربرد آن در بلاک چین و ارزهای دیجیتال توضیح میدهیم.
مفهوم هش و هش کردن
در علم برنامهنویسی مفهومی پرکاربرد به نام هش (HASH) وجود دارد. هش به پروسهای گفته میشود که در آن هر داده ورودی که ترکیبی از اعداد و حروف باشد، به یک خروجی یکتا با طولی مشخص تبدیل میشود. در هش کردن، ما اطلاعات مهم خود را به یک کد یا رمز تبدیل میکنیم تا بتوانیم آن را به صورت امن از طریق اینترنت ارسال و جابهجا کنیم.
هش کردن اطلاعات، روندی تقریباً یک طرفه است؛ به این معنی که شما تنها با استفاده از یک کلید مخصوص میتوانید، اطلاعات اولیه خود را از اطلاعات هش شدهتان بدست آورید و دیگران به آسانی قادر به این کار نخواهند بود.
تابع هش چیست؟
تابع هش، یک ورودی (مانند یک جمله) را به رشتهای از بایتها (Bytes) با طول و ساختاری ثابت، تبدیل میکند. به اطلاعات خروجی یک تابع هش، مقدار هش (Hash Value) یا Checksum گفته میشود.
همه مقدارهای هش تولید شده توسط یک الگوریتم هش خاص، طول ثابتی دارند و این پروسه کاملاً یکطرفه است؛ به این معنی که مقدار هش، قابل بازگردانی نیست و نمیتوان با استفاده از خروجی تابع هش، اطلاعات ورودی تابع را به دست آورد.
تاریخچه تابع هش
در سال ۱۹۹۰، یک رمزنگار و استاد دانشگاه MIT به نام رونالد ریوست (Ronald Rivest)، تابع هش MD4 را اختراع کرد و ورژنهای بعدی آن را به نامهای MD5 و MD6 ارائه داد. پنج سال بعد، آژانس امنیت ملی آمریکا (National Security Agency) تابع هش جدیدی به نام SHA-1 یا «الگوریتم هش امن ۱» (Secure Hash Algorithm 1) را طراحی کرد که مبتنی بر ایده ریوست بود و در سال ۲۰۰۱ به SHA-2 ارتقا یافت.
تابع هش SHA-2 تبدیل به استانداردی برای الهامبخشی به تابع هش موجود در الگوریتم اجماع بیت کوین، به نام SHA-256 شد.
هدف از ایجاد تابع هش چیست؟
تابع هش بر اساس دو نیاز اساسی به وجود آمد که اولین نیازمندی یک اندازه و یکشکل کردن محتواهای مختلف و نیازمندی دوم، ایجاد یک کلید شناسایی یکتا بود.
با استفاده از تابع هش، اطلاعات رمزنگاری شده و به فرمتی مشخص تبدیل میشوند که غیرقابل رمزگشایی است. از تابع هش برای رمزنگاری بلاکهای زنجیره بلاکچین ارزهای دیجیتال و مرتبط کردن بلاکها به یکدیگر هم استفاده میشود. به دست آوردن اطلاعات ورودی تابع هش، از طریق خروجی آن، میلیونها سال زمان میبرد و همین موضوع باعث افزایش امنیت شبکه ارزهای دیجیتال میشود.
نقش تابع هش در استخراج ارز دیجیتال
در شبکه ارزهای دیجیتال، برای مثال بیت کوین، هر بلاک از زنجیره بلاکچین شامل تعدادی تراکنش مختلف و اطلاعات هش بلاک قبلی است. این به این معنی است که اگر کسی بخواهد اطلاعات دفتر کل یک بلاکچین را تغییر بدهد یا ارزهای دیجیتال خود را دو بار خرج کند (Double Spending)، نیاز دارد که هش موجود در تمام بلاکهای قبلی زنجیره را تغییر دهد.
برای تجمیع تراکنشها در یک بلاک جدید و اضافه کردن آن به زنجیره بلاکچین، استخراجکنندگان نیاز دارند که هش متناسب با سختی هدف را پیدا کرده و اصطلاحاً معمای هش را حل کنند.
هر بلاک شامل یک سربرگ (Block Header) است که در آن شماره بلاک، هش بلاک قبلی و عدد نانس (Nonce) نوشته شده است. عدد نانس یکی از ورودیهای تابع هش است که تنوع احتمالات ممکن را در حل معمای هش توسط ماینرها (Miners) افزایش میدهد.
کاربردهای تابع هش در شبکه رمز ارزها
در دنیای رمز ارزها تابع هش سه کاربرد مهم و اساسی دارد:
1- ذخیره رمز عبور کاربران شبکه
با استفاده از توابع هش میتوان رمزهای عبور کاربران را کدگذاری کرده و ذخیره کرد تا در صورت هک شدن شبکه، مهاجمان نتوانند به اطلاعات شخصی کاربران دسترسی پیدا کنند. علاوه بر این، کاربران میتوانند با اثبات هویت خود، رمز عبور فراموششده خود را بازیابی کنند.
2- افزایش امنیت شبکه
برای افزایش امنیت شبکه، هر تراکنش و اطلاعاتی که در بلاکهای زنجیره وجود دارد با استفاده از تابع هش رمزنگاری شده و به زنجیره اضافه میشود.
3- بررسی صحت اطلاعات شبکه
با استفاده از تابع هش میتوان هر تغییری را در فایلها و اسناد موجود در شبکه بلاکچین شناسایی و ردیابی کرد که به این عمل چکسام (Checksum) گفته میشود؛ با این کار میتوان از تغییرات مخرب هکرها در شبکه جلوگیری کرد.
کلام آخر
توابع هش بخشی مهم و بنیادی در روند اجماع اثبات کار هستند. بلاکچینها با تأیید تراکنشها و بکارگیری توابع هش در استخراج، بدون تغییر مانده و جایگزین ناپذیر میشوند. بدون رمزنگاری اطلاعات تراکنشهای ارز دیجیتال، نمیتوان تشخیص داد که چه کسی در چه زمانی، چه مقدار ارز دیجیتال داشته است.
اگر دوست دارید درباره دنیای کریپتو کارنسی بیشتر بدانید و به یک تریدر حرفهای تبدیل شوید، میتوانید سایر مقالات بلاگ بیتمکس را مطالعه کنید.