تابع هش در بلاک چین

آنچه می‌خوانید...

هر کسی که در حوزه رمزارزها و بلاک چین فعال باشد، احتمالا اصطلاح «تابع هش» به گوشش خورده است. اما این مفهوم دقیقاً به چه معناست و چه ارتباطی با رمزارزها دارد؟ در این مقاله از فکت کوینز به بررسی تابع هش که یکی از ارکان اصلی رمزنگاری اطلاعات در بلاک چین است، میپردازیم.

مقدمه ای بر تابع هش

بلاک چین یک شبکه توزیع‌شده‌ است که در آن تمام تراکنش‌ها به صورت امن و غیرقابل دستکاری ثبت و ذخیره می‌شود. بلاکچین برای رمزگذاری اطلاعات و تراکنش‌ها، از تابع هش یا Hash Function استفاده می‌کند. Hash Function یک تابع ریاضی است که داده‌های ورودی مانند حروف و اعداد و تصویر و … را به یک کد رمزگذاری شده به نام هش (Hash) تبدیل می‌کند.

- Advertisement -
تابع هش در بلاک چین
هش: ورودی دلخواه، خروجی ثابت

تاریخچه Hash

از گذشته تا کنون فشرده‌سازی داده‌ها و ذخیره سازی آنها همواره یک چالش محسوب می‌شد. توابع هش از نیاز به فشرده سازی داده‌ها به منظور کاهش میزان حافظه مورد نیاز برای ذخیره فایل‌های بزرگ نشات گرفته است. در گذشته محبوب ترین کاربرد یک تابع هش مربوط به یک ساختار اطلاعاتی به نام جدول هش (Hash Table) بود که به طور گسترده برای جستجوی سریع داده‌ها استفاده می‌شد.

در حالی که دلیل اصلی ایجاد تابع هش نیاز به فشرده‌سازی اطلاعات ذخیره شده بود، اما یک مزیت دیگر آن باعث محبوبیت هش شد: تولید شناسه‌های منحصر به فرد.

تعریف هش

به زبان ساده، هش به معنای دریافت یک سری اطلاعات ورودی با طول دلخواه و تولید یک خروجی با یک طول ثابت است. خروجی با طول ثابت را هش (Hash) می‌نامند.

تابع هش در بلاک چین

در حالت ایده آل، هنگام هش کردن (مخلوط کردن) اطلاعات، هیچ دو ورودی متفاوتی نباید خروجی (هش) یکسانی را تولید کنند. اگر این اتفاق بیفتد، به آن اصطلاحا تصادم (collision) می‌گویند.

تابع هش در بلاک چین

هش ستون فقرات یک ارز رمزنگاری‌شده در بلاکچین است. بلاکچین یک پایگاه اطلاعاتی توزیعه شده است که با پیوند دادن بلا‌ک‌های حاول اطلاعات تشکیل می‌شود. بلاکچین فقط تراکنش‌های معتبر را پردازش می‌کند و از تراکنش‌های جعلی جلوگیری می‌کند. کدهای رمزگذاری شده یک سری اعداد و حروف هستند که شباهت به داده‌های اصلی ندارند و هش نامیده می‌شود. هش با استفاده از یک الگوریتم ایجاد می‌شود و برای مدیریت بلاکچین ضروری است.

هش در بلاک چین کاربردهای زیادی دارد از جمله:

  • آدرس‌های موجود در بلاک چین از هش کردن به دست می‌آیند. آدرس‌های بیت کوین از الگوریتم هش SHA2-256 و RIPEMD 160 استفاده می‌کنند.
  • هش با تعریف امضاهای رمزگذاری‌شده به تایید تراکنش‌های معتبر کمک کنند.
  • هش ره‌گیری تراکنش‌ها در بلاکچین را آسان می‌کند. به جای جستجوی تراکنش ها، فقط مقدار هش را در یک مرورگر بلاکچین کپی می‌کنید.
  • توابع هش در فرآیند استخراج ارز دیجیتال نقش بسیار مهمی ایفا می‌کنند.

توابع هش در فرآیند استخراج

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

هش با داده‌های موجود در هدر بلاک (سربرگ بلاک) آغاز می‌شود. هر Block Header شامل یک شماره نسخه، یک برچسب زمانی (Timestamp)، هش بلوک قبلی، نانس (Nonce) و هش هدف (Target Hash) است.

تابع هش در بلاک چین
کاربرد هش در فرایند استخراج

ماینر بر روی نانس (nonce)، که رشته ای از اعداد است، تمرکز دارد. این عدد به محتوای هش بلوک قبلی اضافه می‌شود و خروجی دوباره هش می‌شود. اگر این هش جدید کمتر یا برابر با هش هدف (Target Hash) باشد، به عنوان راه حل پذیرفته می‌شود و بلاک جدید به بلاکچین اضافه می‌شود. فرآیند اعتبار سنجی تراکنش‌های بلاکچین متکی به داده‌هایی است که با استفاده از الگوریتم‌های هش رمزگذاری می‌شوند.

ویژگی‌های تابع هش

قطعی بودن (Deterministic)

تابعی که برای تولید هش استفاده می‌شود قطعی است. یک Hash Function باید یک خروجی ثابت داشته باشد. معنی این امر این است که مهم نیست چند بار یک ورودی خاص را با استفاده از یک Hash Function پردازش می‌کنید. نتیجه همیشه یکسان است. چرا قطعی بودن مهم است؟ تصور کنید برای هر تراکنشی که ثبت می‌کنید نتایج متفاوتی دریافت می‌کنید. این به این معنی است که ره‌گیری کلیه داده‌های ورودی با استفاده از هش برای شما غیرممکن است.

محاسبات سریع (Quick Computation)

در فناوری بلاکچین، تابع هش خوب تابعی است که محاسبات سریع را برای هر ورودی انجام می‌دهد. یافتن داده‌های ورودی برای یک هش ممکن است دشوار باشد، اما محاسبه هش باید در حالت ایده آل بسیار سریع باشد. به عنوان مثال، شما باید نتیجه هش کلمه ساده “سلام” را در کسری از ثانیه به دست بیاورید.

یک طرفه بودن

یکی از ویژگی‌های مهم توابع هش امن، یک طرفه بودن آنهاست. تشخیص داده‌های ورودی با استفاده از هش خروجی عملاً غیرممکن است.

مقاوم در برابر تصادم (Collision resistant)

در مواردی که یک Hash Function خروجی های مشابهی برای ورودی‌های مختلف می‌دهد، تصادم ممکن است رخ دهد. به طور معمول، این اتفاق نباید بیفتد.

انواع تابع هش رمزنگاری

انواع مختلفی از الگوریتم هش مانند Message Digest (MD ، MD2 ، MD4 ، MD5 و MD6) ، RIPEMD (RIPEND ، RIPEMD-128 و RIPEMD-160) ، Whirlpool (Whirlpool-0 ، Whirlpool-T و Whirlpool) یا تابع هش امن (SHA-0 ، SHA-1 ، SHA-2 و SHA-3) وجود دارد.

در سال 1990، رونالد ریوست، استاد رمزنگاری و استاد دانشگاه ام آی تی، تابع هش MD4 و بعدا توابع MD5 و MD6 را اختراع کرد. در سال 1995، NSA (آژانس امنیت ملی) SHA-1 (Secure Hash Algorithm 1) را بر اساس  Rivest و سپس SHA-2 را در سال 2001 طراحی کرد. SHA-2 استانداردی است که از SHA-256 الهام گرفته است (به عنوان مبنای الگوریتم اجماع بیت کوین)

SHA-256: مخفف عبارت Secure Hashing Algorithm است. SHA-256 مشهورترین تابع هش رمزنگاری است و به طور گسترده‌ای در فناوری بلاکچین استفاده می‌شود. الگوریتم SHA-256 توسط آژانس امنیت ملی (NSA) در سال 2001 ساخته شد. (SHA 256 بخشی از خانواده توابع هش است که SHA-2 نامیده می‌شود)

تابع هش
Secure Hashing Algorithm

SHA 256: هش 256 بیتی تولید می کند.در حال حاضر بیت کوین از هش دوتایی SHA-256 استفاده می‌کند.

MD 5: مخفف عبارت Message Digest و به معنای خلاصه پیام است و یک هش 128 بیتی تولید می‌کند. این تابع به صورت گسترده به عنوان تابع رمزنگاری مورد استفاده قرار می‌گیرد. یکی از مشکلات آن مساله تصادم است.بعد از 2 به توان 21 هش، تصادم رخ می‌دهد.

Keccak-256: هش 256 بیتی تولید می‌کند. در حال حاضر توسط اتریوم استفاده می‌شود. Keccak یک خانواده از توابع هش است که در نهایت به SHA-3 استاندارد می‌شود. اتریوم به جای SHA-3 آن را Keccak نامید زیرا پارامترهای Hk کمی متفاوت از SHA-3 فعلی است.

در دنیای ارزهای رمزنگاری شده، الگوریتم‌های هش SHA-256 و X11 بیشترین استفاده را دارند.

سخن پایانی

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

تابع هش چیست؟

«تابع هش» (Hash Function) یک تابع ریاضی است که داده‌های ورودی مانند حروف و اعداد و تصویر و … را به یک کد رمزگذاری شده به نام هش تبدیل می‌کند.

کاربردهای هش در بلاک چین چیست؟

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

پاسخ دیدگاه

لطفا نظر خود را وارد کنید
لطفا نام خود را اینجا وارد کنید

spot_img

هیچ خبری رو از دست نده!

محاسبه‌گر ارزهای دیجیتال
ارز معادل
تومان

محاسبه با مبلغ تتر : تومان