هش (Hash) چیست

هش (Hash) چیست

هش یک تابع ریاضی است که ورودی با طول دلخواه را به یک خروجی رمزگذاری شده با طول ثابت تبدیل می کند. بنابراین صرف نظر از مقدار اصلی داده یا اندازه پرونده درگیر ، هش منحصر به فرد آن همیشه یک اندازه خواهد بود. علاوه بر این ، از هش نمی توان برای “مهندسی معکوس” ورودی از خروجی هش استفاده کرد ، زیرا توابع هش “یک طرفه” هستند (مانند چرخ گوشت ؛ شما نمی توانید گوشت گاو را دوباره در یک استیک قرار دهید). هنوز هم ، اگر از چنین تابعی روی داده های مشابه استفاده کنید ، هش آن یکسان خواهد بود ، بنابراین اگر قبلاً هش آن را می دانید ، می توانید اعتبار یکسان بودن داده ها (یعنی بدون تغییر) را تأیید کنید.

هش کردن همچنین برای مدیریت بلاکچین در ارزهای رمزپایه ضروری است .

غذاهای کلیدی

  • هش تابعی است که نیازهای رمزگذاری شده مورد نیاز برای حل محاسبه بلاک چین را برآورده می کند.
  • هش ها از یک طول ثابت برخوردارند زیرا حدس زدن طول هش در صورت تلاش برای شکستن بلاکچین تقریباً غیرممکن است.
  • داده های مشابه همیشه همان مقدار هش خورده را تولید می کنند.
  • هش ، مانند nonce یا راه حل ، ستون فقرات شبکه بلاکچین است.
  • هش بر اساس اطلاعات موجود در هدر بلوک ایجاد می شود.

 

هاش چگونه کار می کند

توابع هش معمول ورودی های با طول متغیر را می گیرند تا خروجی های یک طول ثابت را برگردانند. یک عملکرد هش رمزنگاری ترکیبی از قابلیت انتقال پیام از توابع هش با ویژگی های امنیتی است.

توابع هش معمولاً از ساختارهای داده ای در سیستم های محاسباتی برای کارها ، مانند بررسی یکپارچگی پیام ها و تأیید صحت اطلاعات استفاده می شود. در حالی که از نظر رمز نگاری “ضعیف” در نظر گرفته می شوند زیرا در زمان چند جمله ای قابل حل هستند ، اما به راحتی قابل رمزگشایی نیستند.

توابع هش رمزنگاری ، ویژگی های امنیتی را به توابع هش معمولی اضافه می کنند ، و در نتیجه شناسایی مطالب پیام یا اطلاعات مربوط به گیرندگان و فرستنده ها دشوارتر می شود. 

به طور خاص ، توابع هش رمزنگاری این سه ویژگی را نشان می دهد:

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

به دلیل ویژگی های هش ، از آن ها به طور گسترده در امنیت آنلاین استفاده می شود – از محافظت از گذرواژه ها تا تشخیص نقض داده ها تا بررسی یکپارچگی فایل بارگیری شده.

 

هاشینگ و ارزهای رمزپایه

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

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

حل هش با داده های موجود در هدر بلوک آغاز می شود و اساساً حل یک مسئله پیچیده ریاضی است. هر سرآیند بلوک شامل یک شماره نسخه ، یک مهر زمان ، هش استفاده شده در بلوک قبلی ، هش ریشه Merkle ، nonce و هش هدف است.

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

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

 

ملاحظات خاص

حل هش به ماینر نیاز دارد تا مشخص کند که کدام رشته را به عنوان nonce استفاده کند ، که خود به مقدار قابل توجهی آزمون و خطا نیاز دارد. این به این دلیل است که nonce یک رشته تصادفی است. بسیار بعید است که یک ماینر در اولین تلاش با موفقیت به nonce صحیح برسد ، به این معنی که ماینر قبل از درست کردن آن ممکن است تعداد زیادی گزینه nonce را آزمایش کند. هرچه دشواری – معیاری برای ایجاد هش متناسب با نیاز هش هدف – بیشتر باشد ، احتمالاً تولید یک راه حل بیشتر طول می کشد. 

 

نمونه ای از هاش

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

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

 

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

عملکرد هش چیست؟

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

مقدار هش چگونه محاسبه می شود؟

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

هش ها در زنجیره بلوک برای چه مواردی استفاده می شوند؟

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

دیدگاهتان را بنویسید