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

۱۰۰۴ بازدید
آخرین به‌روزرسانی: ۱۹ شهریور ۱۴۰۲
زمان مطالعه: ۸ دقیقه
هش در بلاک چین چیست؟ – به زبان ساده

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

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

به فرایندی که در آن اطلاعات در اندازه‌های مختلف را بتوان به رشته‌ای با اندازه ثابت تبدیل کرد هشینگ یا «هش» (Hash) می‌گویند. هش در بلاک چین توسط الگوریتم خاصی انجام می‌شود. به‌عنوان مثال الگوریتم هش بیت کوین «SHA-256» نام دارد. این الگوریتم وظیفه هش در بلاک چین را در شبکه بیت کوین به عهده دارد. هش در بلاک چین در واقع نوعی رمزنگاری را بر روی اطلاعات ورودی انجام می‌دهد. بنابراین هش در بلاک چین باعث حفظ امنیت اطلاعات در شبکه می‌شود.

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

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

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

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

آیا هش در بلاک چین نوعی رمزنگاری است ؟

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

فرق رمزنگاری و هش چیست ؟

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

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

هش بلاک چیست ؟

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

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

هش در بلاک
در هر بلاک هش بلاک قبلی نیز وجود دارد.

درخت مرکل چیست ؟

«درخت مرکل» (Merkle tree) روشی برای سازمان‌دهی به اطلاعات برای بررسی و پردازش سریع‌تر و بهتر آن‌ها است. «مرکل تری» در بلاک چین و رمزارزها نیز کاربرد دارد. هنگامی که تراکنش رمزارزی طبق ساختار درخت مرکل انجام می‌شود، در نهایت خلاصه‌ای از تمامی هش تراکنش‌ها در هش نهایی ذخیره می‌شود. این هش نهایی، «ریشه مرکل» (Merkle root) نام دارد.

کاربرد درخت مرکل در هش بلاک

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

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

درخت مرکل تمامی تراکنش‌های داخل بلاک را به‌صورت خلاصه شده در ریشه مرکل قرار می‌دهد. بنابراین اطلاعات هشینگ تراکنش‌ها را می‌توان از طریق ریشه مرکل اعتبارسنجی کرد. به عبارتی دیگر کاربر بدون این‌که مجبور شود اطلاعات زیادی را از بلاک چین دانلود کند با کمک Merkle tree می‌تواند از وجود تراکنشی خاص داخل بلاک آگاه شود.

هش در بلاک هدر

«بلاک هدر» (Block Header) قسمتی از بلاک است که خلاصه‌ای از اطلاعات بلاک را در خود جای داده است. برخی از اطلاعاتی که در بلاک هدر وجود دارد در فهرست زیر آورده شده است.

  • زمان تولید بلاک
  • سختی شبکه در زمان تولید بلاک
  • تاریخچه تراکنش‌های داخل بلاک
  • هش بلاک قبلی

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

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

اندازه خروجی هر تابع هش در بلاک چین با خروجی تابع هش دیگر متفاوت است. اما اندازه خروجی یک تابع هش در بلاک چین همواره مقداری ثابت است. به عنوان مثال الگوریتم SHA-256 همواره خروجی 256 بیتی به ما می‌دهد. این تابع هش در بلاک چین بیت کوین استفاده می‌شود.

در تصویر زیر، خروجی تابع هش SHA-256 نمایش داده شده است. در این تصویر می‌بینیم که اگر واژه «Binance» با حرف اول بزرگ یا حرف اول کوچک نوشته شود، هش به طور کامل تغییر می‌کند.

تابع هش بیت کوین

توجه کنید که تنها تغییر در بزرگ و کوچک نوشتن حرف ابتدای کلمه باعث می‌شود تا مقدارهای کاملا متفاوتی از هش داشته باشیم.

با توجه به این‌که از الگوریتم SHA-256 در این مثال استفاده شده است،‌ خروجی بدست آمده در هر دو حالت 64 کاراکتر یا 256 بیت است. فرقی ندارد که چند بار این دو کلمه را در این تابع هش قرار دهیم،‌ خروجی تابع هش همواره همین می‌شود.

در مثالی دیگر، الگوریتم SHA-1 تابع هش دیگری است که همواره خروجی 160 بیتی دارد. تصویر زیر هش دو کلمه قبلی که تفاوتی جزئی با هم دارند را از طریق الگوریتم SHA-1 نشان می‌دهد.

تابع هش

همان‌طور که در تصویر مشاهده می‌کنید نسبت به الگوریتم SHA-256 اندازه و مقدارهایی متفاوت را برای هش خواهیم داشت. در تابع هش SHA-1 اندازه خروجی هش شده همواره 160 بیت است. در این تابع هش نیز با تغییر کوچکی در ورودی تابع، مقادیر کاملا متفاوتی از هش را در خروجی داریم.

«الگوریتم‌های هش ایمن» (Secure Hash Algorithms | SHA) شامل الگوریتم‌های SHA-0 و SHA-1 به همراه گروه الگوریتم‌های SHA-2 و SHA-3 هستند. الگوریتم هش SHA-256 بخشی از گروه توابع هش SHA-2 است. از میان انواع تابع هش در بلاک چین در حال حاضر تنها گروه الگوریتم‌های هش SHA-2 و SHA-3 از نظر امنیت مطلوب هستند.

کاربرد Hash در بلاک چین

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

افزایش امنیت شبکه

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

سهولت در فراخوانی اطلاعات

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

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

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

تابع هش بیت کوین

بیت کوین به عنوان اولین رمزارز از الگوریتم هش SHA-256 استفاده می‌کند. بلاک‌های شبکه بیت کوین از این الگوریتم برای هشینگ بهره می‌گیرند. تمامی تراکنش‌های بیت کوین نیز به عنوان رمزارز این شبکه از طریق این الگوریتم انجام می‌شوند. الگوریتم هش SHA-256 در سال 2009 میلادی برای اولین بار در بلاک چین بیت کوین به‌کار گرفته شد.

تابع هش بیت کوین

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

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

 الگوریتم هش رمزارزها چیست ؟

به دلیل قابلیت‌های بالایی که الگوریتم SHA-256 دارد، تعدادی از رمزارزهای دیگر نیز از این الگوریتم استفاده می‌کنند. برخی دیگر از رمزارزها در بسترهای دیگر ممکن است از الگوریتم‌های متفاوتی استفاده کنند. در فهرست زیر برخی از الگوریتم‌های هشینگ مورداستفاده در ارزهای دیجیتال مختلف را مشاهده می‌کنید.

  • SHA-256
  • Skein-SHA2
  • Scrypt
  • X11
  • SHA-256d
  • Keccak-256

target hash بیت کوین چیست ؟

«هش هدف» (Target Hash) مقداری عددی است که توسط شبکه تعیین می‌شود. برای اضافه شدن بلاک جدید به بلاک چین، هش بلاک باید کمتر یا برابر هش هدف باشد. در هر 2016 بلاک، هش هدف از طرف شبکه تنظیم و مشخص می‌شود. به‌طور میانگین هر ده دقیقه، یک بلاک به شبکه بیت کوین اضافه می‌شود. تنظیم هش هدف که به‌طور دوره‌ای صورت می‌گیرد برای اطمینان از این موضوع انجام می‌شود.

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

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

هش ریت چیست ؟

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

جمع بندی

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

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

بر اساس رای ۱۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Bybit LearnInvestopedia
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *