هش (Hash) در بلاک چین چیست؟( راهنمای ابتدایی)
فرآیند رمزنگاری شبکههای بلاک چین با استفاده از سیستمی پیچیده صورت میگیرد که در نهایت امنیت شبکه را تامین میکند. دادههای ورودی هر بلاک، با استفاده از فرآیند هشینگ (Hashing) به زنجیرهای تصادفی از اعداد و حروف تبدیل میشوند و استخراجکنندگان در ازای دریافت پاداش، این عملیات پیچیده ریاضی را انجام میدهند. چنین کاری به توان رایانشی زیادی نیاز دارد و به همین دلیل است که دستگاههای ماینینگ اغلب با قیمتهایی گزاف به کاربران فروخته میشوند.
به طور کلی، هش به عملیاتی گفته میشود که طی آن، داده های ورودی شامل حروف و اعداد، به یک خروجی رمزنگاریشده با طول ثابت تبدیل میشود. در شبکه بلاک چین، هش هر بلاک با استفاده از الگوریتمهای خاصی ساخته میشود که برای مدیریت بلاک چین و تغییر ناپذیری دادههای ثبت شده در آن، ضروری است.
نکات کلیدی در مورد هش :
- Hash مکانیزمی است که الزامات رمزنگاری موجود برای ایمن سازی بلاک چین را فراهم میسازد.
- Hash نیز مانند نانس (Nonce) یکی از مواردیست که یافتن و ثبت آن در شبکه های بلاک چین الزامیست.
- Hash ها طول ثابتی دارند و طول هش، از طول داده ورودی قابل حدس زدن نیست.
- با ایجاد هرگونه تغییر کوچکی در داده ورودی، هش خروجی به صورت غیرقابل پیش بینی تغییر خواهد کرد.
تصویر زیر نمونه ای از عملکرد تابع Hash (در این مثال باب مبلغ تراکنش ثبت شده در بلاک را تغییر داده است)
نحوه کارکرد Hash
بلاک چین (Blockchain)، سنگ زیربنای بیت کوین و رمز ارز ها است که از به هم پیوستن بلاکهای مجزا و حاوی دادههای تراکنش ها به وجود میآید. بلاک چین تنها حاوی تراکنشهای معتبر است و همین مسئله باعث جلوگیری از تراکنشهای کلاهبردارانه و حمله خرج دوباره (Double Spend Attack) میشود. نرخ به دست آمده شامل مجموعهای از اعداد و حروف است که شباهتی با دادههای اولیه ندارند و با نام هش شناخته میشوند. استخراج رمز ارز ها با استفاده از این هشها انجام میشود.
هش به دست آمده در فرایند رمزنگاری، شامل مجموعهای از اعداد و حروف است که شباهتی با دادههای اولیه ندارند و با نام هش شناخته میشوند. در بلاک چین های مبتنی بر الگوریتم اثبات کار، بدست آوردن هش، جزئی از عملیات ساخت بلاک و دریافت پاداش است.
در فرآیند هشینگ، دادههای بلاک از طریق توابع ریاضی رمزنگاری، به رشتهای از اعداد و حروف در هم ریخته با طول ثابت تبدیل خواهند شد. هشینگ علاوه بر ایمن سازی داده ها و تراکنش های ثبت شده در بلاک چین، موجب امنیت کلیدهای خصوصی و عمومی کاربران، و تملک آنها بر دارایی های رمز ارز خود میگردد.
بدست آوردن هش، شامل حل کردن یک مسئله ریاضی پیچیده، با فرایند آزمون و خطا است و با دادههای موجود در بلاک هِدِر (Block Header) آغاز میگردد. هر بلاک هدر دارای عدد مربوط به شماره بلاک، برچسب زمانی، هش بدست آمده در بلاک قبلی، هش مربوط به ریشه مرکل (Merkle Root)، نانس (Nonce) و هش هدف (Target Hash) یا محدوده هش تعیین شده از طریق پارامتر سختی شبکه است.
تمرکز اصلی استخراج کننده و توان پردازشی او، بر روی یافتن نانس خواهد بود که زنجیرهای از اعداد است. این عدد به محتوای هش شده بلاک قبلی اضافه میشود که بعدا دوباره هش خواهد شد. اگر این هش جدید کمتر یا برابر با هش هدف باشد (یعنی در محدوده تعیین شده از طریق پارامتر سختی شبکه باشد)، به عنوان راه حل مسأله ریاضی بلاک پذیرفته خواهد شد؛ استخراج کننده یا ماینر پاداش خود را دریافت خواهد کرد و بلاک نیز به بلاک چین اضافه خواهد شد.
فرآیند اعتباربخشی تراکنشهای بلاک چین به رمزنگاری دادهها با استفاده از الگوریتم هشینگ بستگی دارد. به منظور بدست آوردن هش، استخراج کننده باید تصمیم بگیرد از کدام رشته عدد به عنوان نانس استفاده کند که نیازمند آزمون و خطاهای زیادی است. دلیل چنین کاری این است که نانس یک زنجیره عدد تصادفی است.
پیدا کردن نانس صحیح در تلاش اول بسیار بعید است، یعنی استخراج کننده باید پیش از پیدا کردن نانس صحیح گزینههای زیادی را امتحان کند. هرچه سختی شبکه (Network Difficulty) – معیاری برای سنجش میزان سختی ایجاد هش، به گونهای که با الزامات هش هدف همخوانی داشته باشد – بیشتر باشد، پیدا کردن راهحل نیز بیشتر طول خواهد کشید.
مثال برای Hash
خروجی هش کلمه “سلام” (Hello) با خروجی هش جمله “میخواهم به مغازه بروم” (I am going to the store) طول یکسانی دارد. تابع مورد استفاده برای ایجاد هش، در ازای ورودی های یکسان، همیشه خروجی یکسانی را دربر خواهد داشت. چنین کاری میتواند ورودی را به شیوهای کارآمد هش کند تا در ازای داده های ورودی یکسان، نتایج مشابهی بدست آید، و با اندک تغییری در ورودی ها، پیش بینی هش خروجی تقریباً غیرممکن باشد.
پردازش هشهای مورد نیاز برای رمزنگاری بلاکهای جدید به توان رایانشی زیادی نیاز دارد که میتواند بسیار هزینهبر باشد. شبکههای رمز ارز به منظور ترغیب افراد و شرکتها – همان استخراجکنندگان – برای سرمایه گذاری در فناوری مورد نیاز، پاداشهایی از قبیل رمز ارز و کارمزد تراکنش به آنها پرداخت میکنند. استخراج کنندگان تنها در صورتی پاداش خواهند گرفت که به عنوان نفر اول، هشی را به وجود آورند که با الزامات تعیینشده در هش هدف همخوانی داشته باشد.
برای کسب اطلاعات بیشتر از فرآیند هشینگ خواندن مقاله هشینگ یا هش کردن چیست؟ (راهنمای گام به گام) توصیه میشود.