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

هش چیست؟

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

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

نحوه کار هشینگ 

بیایید نحوه کار هشینگ را با یک مثال برای شما توضیح دهیم. نظر شما در ارتباط با مجموعه کاراکترهای زیر چیست؟

Cd6f6854353f68f47c9c93217c5084bc66ea1af918ae1518a2d715a1885e1fcb

شاید در ابتدا فکر کنید که این کاراکترها، کاملا بی‌معنی هستند و به‌صورت اتفاقی در کنار یکدیگر قرار دارند؛ اما اینگونه نیست و این مجموعه به معنای سلام (HI) به زبان انگلیسی است. به عبارت دیگر، همان‌طور که در تصویر زیر مشاهده می‌کنید، در ابتدا عبارت “HI” یک ورودی برای تابع هش به شمار می‌رفته و پس از ورود به این تابع، به‌صورت یک عبارت رمزنگاری‌شده در قالب خروجی پدیدار شده است. 

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

پیشنهاد خواندنی: با رمزنگاری متقارن و نامتقارن بیشتر آشنا شویم

کاربرد و اهمیت هشینگ در بلاک‌چین 

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

علاوه بر این، هشتینگ در دنیای ارزهای دیجیتال نیز کاربرد و اهمیت بسیاری دارد و می‌‌توان بخش اعظمی از فرایند استخراج بیت‌کوین و سایر ارزهای دیجیتال را وابسته به هشینگ دانست؛ زیرا وظیفه ماینرها، تایید و پردازش تراکنش‌ها در بستر بلاک‌چین است که این فرایند با کمک تابع هش انجام خواهد شد. 

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

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

لازم به ذکر است که یک تابع هش برای اینکه کاربرد اصلیِ خود را در بستر بلاک‌چین ارائه کرده و ایمن باشد، نیاز است تا سه ویژگی اصلی داشته باشد که شامل موارد زیر هستند: 

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

پیشنهاد خواندنی: راهنمای ردیابی تراکنش ارز دیجیتال، چرا، چگونه و کجا؟

کاربردی‌ترین توابع و الگوریتم‌های هش

به‌طور کلی، الگوریتم‌های هش گوناگونی در جهت رمزنگاری وجود دارند که در این بخش به برخی از کاربردی‌‎ترینِ آن‌ها اشاره خواهیم کرد. 

۱. الگوریتم SHA 

الگوریتم SHA یا هش ایمن (Secure Hash Algorithm) را می‌توان در بین الگوریتم‌های هش کاربردی، در رتبه اول جای داد. این الگوریتم توسط موسسه ملی استاندارد و فناوری ایالات متحده و سایر سازمان‌هایی که در زمینه امنیت فعالیت می‌کنند در سال ۱۹۹۳ ایجاد شده است.  

لازم به ذکر است که الگوریتم SHA در جهت اینکه بخشی از امضای دیجیتال باشد، توسعه یافت؛ اما با توجه به ایراداتی که از این الگوریتم در سال ۲۰۰۵ کشف شد، نیاز پیدا شد تا الگوریتم‌های بهتر و ایمن‌تری توسعه پیدا کنند.  

۲. الگوریتم Whirlpool

الگوریتم ویرپول یکی دیگر از توابع هش است که در سال ۲۰۰۰ توسعه یافت و از آن زمان تا به حال، دوبار مورد بازبینی قرار گرفته است. الگوریتم ویرپول توسط دو شخص به نام‌های وینسنت ریمن و پائولو بارتو بر مبنای نسخه اصلاح شده استاندارد رمزنگاری پیشرفته (AES) ساخته شد. 

این تابع، پیام‌هایی که طول آن‌ها کمتر از ۲۲۵۶ بایت باشد را دریافت کرده و یک هش با اندازه ۶۴ بایت (۵۱۲  بیت) تولید می‌کند.  

الگوریتم MD5 به عنوان یک جانشین برای نسخه پیشین خود که MD4 نام داشت، توسط شخصی به نام رونالد ریوست در  سال ۱۹۹۱ توسعه پیدا کرد. البته با توجه به اینکه با گذشت زمان، ایرادات بسیار زیادی از این الگوریتم یافت شد، خیلی از افراد از این الگوریتم به عنوان یک الگوریتم تابع هش یاد نمی‌کنند و از آن برای بررسی یکپارچگی داده‌ها استفاده می‌کنند. 

۳. الگوریتم Blake 

الگوریتم Blake نیز توسط موسسه ملی استاندارد و فناوری ایالات متحده توسعه یافته که هم‌اکنون در بین ۵ الگوریتم برترِ تابع هش قرار دارد. هدف از توسعه این الگوریتم، انتخاب بهترین تابع هش برای توسعه SHA-3 بود.

۴. الگوریتم RIPEMD

الگوریتم RIPEMD مخفف عبارت RACE Integrity Primitives Evaluation Message Digest است که در سال ۱۹۹۶ توسط گروه تحقیقاتی COSIC در بلژیک ساخته شد. لازم به ذکر است که این الگوریتم با توجه به اصول الگوریتم MD4 ساخته شد و تا به الان یکی از ایمن‌ترین الگوریتم‌های توابع هش شناخته می‌شود؛ زیرا تا به الان، هیچ حمله و ضعف امنیتی از این الگوریتم گزارش نشده است. 

سخن آخر 

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

سوالات متداول

هشینگ به چه معناست؟

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

چرا هشینگ انجام می‌شود؟

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

منابع: scalingparrots