هَش و هشینگ (Hash) چیست و چگونه کار میکند؟
هَش (Hash) چیست؟
هش یک تابع ریاضی است که ورودی با طول دلخواه را به خروجی رمزگذاری شده با طول ثابت تبدیل میکند. بنابراین با صرف نظر از مقدار اصلی داده یا اندازه فایل، هش منحصر به فرد آن همیشه یک اندازه خواهد بود. علاوه بر این، از هش برای مهندسی معکوس ورودی و خروجی هش استفاده نمیشود،
زیرا توابع هش «یک طرفه» هستند (مانند چرخ گوشت؛ شما نمیتوانید گوشت چرخ کرده را دوباره به استیک تبدیل کنید).
با این وجود، اگر از چنین عملکردی در دادههای یکسان استفاده کنید، هش آن یکسان خواهد بود، بنابراین اگر قبلاً هش آن را میدانید، میتوانید تأیید کنید که دادهها یکسان هستند (یعنی بدون تغییراند).
هش چگونه کار میکند؟
توابع معمولی هش از ورودیهایی با طول متغیر استفاده میکنند تا خروجیهایی با طول ثابت را به شما برگردانند.
یک تابع هش رمزنگاری، قابلیت انتقال پیام توابع هش را با ویژگیهای امنیتی ترکیب میکند. توابع هش معمولاً از ساختارهای داده در سیستمهای محاسباتی برای انجام وظایف مانند: بررسی یکپارچگی پیامها و احراز هویت اطلاعات استفاده میکنند. در حالی که از نظر رمزنگاری «ضعیف» تلقی میشوند زیرا در زمانی که چند فرمولیاند قابل حل هستند، اما به راحتی قابل رمزگشایی نیستند.
توابع رمزگذاری شده با افزودن ویژگیهای امنیتی به توابع معمولی هش و تشخیص محتوای پیام، خواندن اطلاعات مربوط به گیرندگان و فرستندگان را دشوارتر میکند. به طور خاص، توابع هش رمزنگاری شده این سه ویژگی را نشان میدهد:
آنها «اصلا یکسان» نیستند.
این بدان معناست که هیچ دو هش ورودی نباید به یک هش خروجی منتهی شوند.
آنها میتوانند پنهان شوند.
باید حدس زدن مقدار ورودی یک تابع هش از روی خروجی آن دشوار باشد.
آنها باید پازل پسند باشند.
انتخاب ورودیای که خروجی از پیش تعیین شدهای را ارائه میدهد، باید مشکل باشد.
بنابراین، ورودی باید تا حد امکان، وسیع انتخاب شود.
نکته:
به دلیل ویژگیهای یک هش، از آنها در امنیت آنلاین بسیار استفاده میشود:
– از محافظت از گذرواژهها تا تشخیص نقض دادهها تا بررسی یکپارچگی فایل بارگیری شده.
هشینگ و ارزهای رمزنگاری شده:
ستون فقرات یک ارز رمزنگاری شده، بلاک چین است، که یک دفتر کل جهانی است که از پیوند دادن بلوکهای جداگانه دادههای معامله به یکدیگر تشکیل شده است. بلاک چین فقط شامل تراکنشهای معتبر است که از معاملات تقلبی و هزینه مضاعف ارز جلوگیری میکند. مقدار رمزگذاری شده، مجموعهای از اعداد و حروف است که شبیه دادههای اصلی نیست و یک هش نامیده میشود.
استخراج رمز ارزها، مستلزم کار با هش است.
هشینگ مستلزم چیست؟
هش کردن (هشینگ) مستلزم پردازش دادهها از یک بلوک و از طریق یک تابع ریاضی است که منجر به تولید خروجی با طول ثابت میشود. استفاده از خروجی با طول ثابت امنیت را افزایش میدهد زیرا هرکسی که سعی در رمزگشایی هش دارد نمیتواند با نگاه کردن به طول خروجی تشخیص دهد که ورودی چقدر طولانی یا کوتاه است. حل هش با دادههای موجود در سرتیتر بلاک شروع میشود و اساساً یک مسئله ریاضی پیچیده است.
سرتیتر بلوک شامل:
یک شماره نسخه، یک نشان زمان، هش استفاده شده در بلوک قبلی، Merkle root هش، nonce و هش هدف است. ماینر روی nonce، یک رشته اعداد، تمرکز میکند. این عدد به محتویات هش شده بلوک قبلی اضافه میشود، که بعدا هش میشود. اگر این هش جدید کمتر یا مساوی هش موردنظر باشد، به عنوان راه حل پذیرفته میشود، به ماینر پاداش داده میشود و بلاک مورد نظر به بلاک چین اضافه میشود.
مهم:
فرایند اعتبارسنجی برای تراکنشهای بلاک چین متکی بر رمزگذاری دادهها با استفاده از هش الگوریتمی است.
برای حل کردن هش، ماینر باید تعیین کند که از کدام رشته به عنوان nonce استفاده کند، که خود به مقدار قابل توجهی آزمایش و خطا نیاز دارد.
این به این دلیل است که nonce یک رشته تصادفی است. بسیار بعید است که یک ماینر در اولین تلاش موفق شود نانس صحیح را بدست آورد، بدین معنا که ماینر ممکن است قبل از درست کار کردن تعداد زیادی از گزینههای nonce را آزمایش کند.
هرچه سختی – (اندازه گیری میزان سختیِ ایجاد یک هش، که نیاز هش مورد نظر را برآورده میکند) – بیشتر باشد، به احتمال زیاد زمان بیشتری طول میکشد تا یک راه حل ایجاد شود.
نمونهای از هش:
با استفاده از کلمه «سلام»، خروجی به طول هش برای «من به فروشگاه میروم» تولید میشود. تابع مورد استفاده برای تولید هش قطعی است، بدین معنا که هر بار که از ورودی یکسان استفاده میشود، نتیجه یکسانی ایجاد میکند. همچنین تعیین ورودی را دشوار میکند (منجر به استخراج میشود) و تغییرات کوچکی در نتیجه ورودی ایجاد میکند که یک هش غیرقابل تشخیص و کاملاً متفاوت را ایجاد میکند.
پردازش توابع هش مورد نیاز برای رمزگذاری بلوکهای جدید به قدرت پردازش رایانه (که به آنها ماینر گفته میشود)، به میزان قابل توجهی نیاز دارد که میتواند هزینه بر باشد. جهت ترغیب افراد و شرکتها برای سرمایهگذاری در این فناوری، شبکههای ارزهای دیجیتال با توکنهای رمزنگاری جدید و کارمزد تراکنش، به آنها پاداش میدهند. ماینرها تنها در صورتی میتوانند پاداش دریافت کنند که اولین هش را ایجاد کنند که الزامات ذکر شده در هش هدف را برآورده کند.
هش در بلاک چینها برای چه مواردی استفاده میشود؟
هشها در چندین قسمت از سیستم بلاک چین استفاده میشوند. ابتدا، هر بلوک، دارای هش سرتیتر بلوک قبلی است و اطمینان حاصل میکند که با اضافه شدن بلوکهای جدید هیچ چیزی دستکاری نشده است. علاوه بر این، استخراج رمز ارز با استفاده از اثبات کار (PoW)، از هش کردن اعداد به طور تصادفی برای دستیابی به یک مقدار هش خاص حاوی یک سری صفرهای اصلی استفاده میکند.
این عملکرد، منابع زیادی را لازم دارد و پیشی گرفتن سارقین را از شبکه دشوار میکند.