هش چیست؟ - Hash در بلاک چین
- 25 اردیبهشت 1400
- نویسنده : کارشناس دنیای ترید
اگر تصمیم به سرمایه گذاری و یا ترید ارز دیجیتال دارید، لازم است با یکسری از اصطلاحات دنیای کریپتوکارنسی آشنا شوید. در این مقاله در خصوص هش یا هشینگ در بلاک چین صحبت و شما را با این مفهوم و اصطلاح مهم و پر کاربرد آشنا خواهیم کرد.
هش چیست؟
هش فرایندی است که اطلاعات ورودی بلاک چین به حروف و اعداد رمزنگاری شده که دارای طول ثابت هستند، تبدیل میشود. هش که از الگوریتم پیچیده ریاضی استفاده میکند، برای مدیریت بلاک چین در رمزارزها حیاتی است.
هش کردن یکی از راههای ایجاد امنیت در طول فرآیند انتقال پیام است. این پیام فقط برای گیرنده خاصی در نظر گرفته شده است.
فرمول هش شده از اطلاعات در برابر دستکاری و از بین رفتن محاظفت میکند.
برای اینکه متوجه شوید هش در بلاک چین به چه معنی است و چه اهمتی دارد، لازم است با مفهوم بلاک چین آشنا شوید. برای این امر پیشنهاد میکنیم حتما مقاله بلاک چین را مطالعه کنید. اما برای توضیح مفهوم هش و هشینگ لازم است بخشی از آن مطلب را اینجا بازگو کنیم.
بلاک چین، مجموعهای زنجیره وار از بلوک هاست. بلوکهایی که حاوی اطلاعات مهم مانند تراکنشها، آدرس کیف پول مبدا، آدرس کیف پول مقصد، قراردادهای هوشمند و ... است. این اطلاعات به دلیل غیرمتمرکز بودن بلاک چین قابل ردیابی و یا حذف نیست. اما آیا غیرمتمرکز بودن بلاک چین، این اطلاعات را از هر آسیبی محفوظ نگه میدارد؟
دانستن هش و هشینگ به شما در فهم موضوع امنیت در بلاک چین کمک میکند.
اجازه بدهید برای شما یک مثال بزنیم:
در جنگ جهانی دوم، نیروهای کشور آلمان برای اینکه بتوانند باهم گفت و گو کنند و اطلاعات را به یکدیگر منتقل کنند از ماشین انیگما استفاده میکردند. این ماشین اطلاعات دریافتی را به کد تبدیل میکرد و آن را به مقصد ارسال میکرد. به این شکل هیچ فردی نمیتوانست گفت و گوی آلمانی ها را متوجه شود؛ برای مثال ارتش آمریکا آن مکالمات را شنود میکرد، اما نمیفهمید.
مطالعه این مقاله توصیه میشود: ارز دیجیتال ترون
هش در بلاک دقیقا شبیه به همین است. شما یک کد میبینید که از حروف و اعداد تشکیل شده است؛ اما آن حروف و اعداد از دل توابع پیچیده ریاضی بیرون آمده و دنیایی از اطلاعات را در دل خود جای داده است.
فرض کنیم من و شما در بستر بلاک چین اتریوم یک قرارداد هوشمند امضا میکنیم. اگر آن قرارداد هش یا رمزنگاری نشود، ممکن است فردی آن را تغییر دهد. پس لازم به عنوان یک کاربر اقدامات لازم جهت عدم تغییر اطلاعات موجود در بلاک چین را انجام دهیم. یکی از این اقدامات مهم جهت حفظ امنیت بلاک چین هشینگ است.
با توجه به توضیحات داده شده یک سوال بوجود میآید. آیا همه دستگاهها و همه بلاک چین ها از یک نوع الگوریتم رمزنگاری یا هشینگ دارند؟ پاسخ منفی است. هشینگ در بلاک چین متفاوت است.
برای آشنا شدن با انواع رمزنگاری در بلاک چین ادامه مقاله را مطالعه کنید.
انواع الگوریتم هش (hash) در بلاک چین
انواع مختلفی از الگوریتمهای هش مانند RipeMD ، Tiger ، xxhash و موارد دیگر وجود دارد، اما متداول ترین نوع توابع هش MD5 ،SHA-2 و CRC32 است.
تابع هش MD5 در بلاک چین
این تابع یکی از قدیمیترین توابع هشینگ در دنیا است. در تابعMD5 رشتهای از اطلاعات رمزگذاری شده به یک کد 128 بیتی تبدیل میشود.
غالباً این تابع به عنوان ابزار بررسی صحت دادهها مورد استفاده قرار میگیرد. این تابع باگهای فراوانی دارد، اما به دلیل عمر زیادش، هنوز به عنوان یکی از پرکاربردترین الگوریتمهای رمزنگاری جهان به کار میرود.
تابع هش SHA-2 در بلاک چین
SHA مخفف Secure Hash Algorithms است. این به مجموعه ای از توابع هش رمزنگاری اشاره دارد که شامل الگوریتمهای SHA-0، SHA-1، SHA-2 و SHA-3 است. این تابع هشینگ توسط آژانس امنیت ملی آمریکا (NSA) ساخته شده است. این تابع بهبود یافته تابع SHA-1 است و باگهای مدل قبلی خود را برطرف کرده است. خانواده SHA-2 شامل شش عضو است که 224 ، 256 ، 384 یا 512 بیت هستند:
- SHA-224
- SHA-256
- SHA-384
- SHA-512
- SHA-512-224
- SHA-512/256
تابع هش CRC32 در بلاک چین
از این تابع بیشتر برای تشخیص خطا رخ داده استفاده میشود. این مدل رمزنگاری همیشه منجر به خروجی یکسان میشود. این روزها به ندرت از CRC32 استفاده میشود و فقط در Zip کردن فایلها و سرورهای FTP استفاده میشود.
ویژگی تابع هش بلاک چین
یک هش تابعی است که نیازهای مخفی و رمزی موردنیاز برای حل محاسبات بلاک چین را برآورده میسازد و مانند یک نانس و یا یک راه حل، پایه و ستون اصلی یک شبکهی بلاک چین میباشد. اما این توابع هش، ویژگیهایی دارند.
در ادامه مقاله این ویژگیها را معرفی کردهایم.
تغییرات کاملا محسوس است
تغییر فقط یک حرف در رمز عبور شما، باعث تغییر بخشی اعظمی از متن رمزنگاری میشود.
توابع هش قاطع عمل میکنند
اگر یک دیتا را دهها هزار بار هش کنید، بازهم خروجی آخرین بار با خروجی اولین بار برابر است.
یکسان نیستند
مانند اثر انگشت همه ما انسانها، هیچ دو تابع هش یکسانی وجود ندارد.
یک هش چگونه کار می کند؟
پایه و ستون اصلی رمزارزها یا ارز دیجیتال بلاک چین است که یک لجر جهانی است. بلاک چینها تنها تراکنشهای معتبر را در بر میگیرند که این خود باعث جلوگیری از تراکنشهای تقلبی و خرج کردن دوبارهی ارز میشود.
یکی از راههای جلوگیری از تراکنشهای تقلبی، استفاده از یک سری عدد و حروف است که هیچ شباهتی به داده اولیه ندارد و هش نامیده میشود.
توابع هش، خروجیهایی با ترکیبی متفاوت تولید میکنند؛ اما اندازههای خروجی برای هر الگوریتم هش همیشه ثابت است. به عنوان مثال ، الگوریتم SHA-256 فقط می تواند خروجی 256 بیتی ایجاد کند در حالی که SHA-1 همیشه یک عبارت 160 بیتی ایجاد میکند.
برای مثال اگر بخواهیم کلمه donyaye-trade را بر اساس تابع SHA-256 هش کنیم، خروجی شبیه زیر خواهیم داشت:
9c31874e7a69ad566c600f096b6088c500b03ff08c16c99bb0ec2bd0563e2b1d
اما اگر بخواهیم بر اساس تابع SHA-1 هش کنیم، خروجی شبیه زیر خواهد بود:
49191a9fcf33fee7324a2827e0a342f4cc55193e
این یعنی بر اساس توابع هش، ممکن است خروجی متفاوتی را داشته باشیم.
توجه داشته باشید که یک تغییر جزئی در متن ورودی منجر به خروجی متفاوتی میشود. اما از آنجا که ما از SHA-256 استفاده میکنیم، خروجیها همیشه یک اندازه ثابت خواهند داشت.
به مثال زیر دقت کنید:
donyaye-trade:
9c31874e7a69ad566c600f096b6088c500b03ff08c16c99bb0ec2bd0563e2b1d
Donyayetrade:
e3ab384431e89010c6093b39014ca071c87c3cbe8723fc6a28430d81fd257be5
همانطوری که گفته شد، بلوکها اطلاعات خود را به دستگاه هشینگ میدهند و آن دستگاهها دیتا ورودی را یک ترکیب ثابت تبدیل میکنند.
حجم بلوکها در پروسه هش مهم است. برای مثال، برای تابع SHA-1 حجم داده ورودی (که منظور همان حجم بلوک است) باید حداکثر 512 بیت باشد. اگر حجم دیتا ورودی 1024 بیت باشد عملکرد هش دو بار اجرا میشود. یعنی بلوک اطلاعات خود را به دو بخش تقسیم میکند و هر بخش مجزا هش میشود.
البته این امر خیلی طبیعی نیست و هر بلوک متناسب با تابع هش، ورودی میدهد.
رمزنگاری بلوکها به یک شکل است. برای هش یک بلوک، هش بلوک قبلی لازم است. یعنی در خروجی هش دومین بلوک، هش اولین بلوک موثر است.
این روند تا آخر ادامه دارد.
یعنی در هش بلوک صدم، هش بلوک 99 موثر است. در هش بلوک 257، هش بلوک 256 موثر است.
به همین دلیل است که اگر یک دیتا در یک بلوک تغییر کند، باید هش تمام بلوکهای بعد از آن هم تغییر کند. اتفاقی که غیر ممکن است و هیچوقت رخ نمیدهد.
پروسه هشینگ یا هش کردن
همانطوری که بیان شد جهت هشینگ دیتاها، به توابع پیچیده ریاضی نیاز داریم. این توابع ریاضی دیتاهای ورودی را به خروجیهای غیرقابل تشخیص تبدیل میکنند. این نوع رمزنگاری باعث افزایش امنیت میشود. چرا که هیچ دستگاه و کامپیوتری نمیتواند از طریق عبارت خروجی به دیتاهای ورودی برسد.
در بلاک چین مفهوم دیگری به نام نانس وجود دارد. نانس به زنجیره اعداد گفته میشود و در تولید هش بلوک جدید بسیار حائز اهمیت دارد. چرا که اگر نانس و کد هش بلوک جدید با نانس و کد هش بلوک قدیم شبیه به هم نباشد، فرایند هشینگ موفقیت آمیز نخواهد بود.
اگر هش جدید مساوی با هش تارگت یا هدف باشد، آنگاه به عنوان جواب درست مساله پذیرفته شده و به نود پاداش داده میشود و بلوک به بلاک چین اضافه میگردد.
شاید با خود بگویید که ماینرهای امروزی میتوانند در کمترین زمان ممکن به هش جدید برسند و پاداش دریافت کنند اما در واقعیت به این شکل نیست. دستگاهها با استفاده از قدرت سخت افزاری خود باید نانس و هش را درست حدس بزنند و آن را تولید کنند. این فرآیند زمان بر خواهد بود و منجر به مصرف زیاد برق خواهد شد.
ماینر به صورت بالقوه مجبور است برای اینکه به نانس درست برسد، تعداد بسیار بالایی از گزینههای نانس را امتحان کند.
در بلاک چین و هشینگ مفهومی به نام درجه سختی وجود دارد. درجه سختی به میزان دشواری ایجاد یک هش گفته میشود. هرچه این درجه سختی در شبکه بیشتر باشد، احتمال اینکه زمان بیشتری برای درست حدس زدن کد و حل آن توابع پیچیده صرف شود بیشتر است.
لازم به ذکر است تنها زمانی به ماینرها پاداش داده میشود که اولین نود تولید کننده هش بلوک باشند.
چرا هش مهم است؟
هش کردن به ویژه در زمینه فناوری blockchain بسیار مفید است. در حقیقت، تقریباً در تمام پروتکل ارزهای دیجیتال، هش و هشینگ نقش بسیار موثری دارد. این تکنیک به امنیت و یکپارچگی بلوک ها کمک میکند.
همانطوری که گفته شد، تغییر در یک بلوک منجر به تغییر کد رمزنگاری شده تمام بلوکهای بعدی خواهد شد. در کنار این، حفظ امنیت از دیگر اهمیتهای HASH است. البته لازم به ذکر است که یک تابع هش باید سه ویژگی داشته باشد:
در برابر تصادف مقاوم باشد
تصادف زمانی اتفاق میافتد که ورودیهای مختلف دقیقاً منجر به خروجی هش یکسانی شوند. در میان الگوریتمهای مختلف SHA، گروه های SHA-0 و SHA-1 دیگر ایمن نیستند زیرا در آنها تصادف رخ داده است. در حال حاضر، گروه های SHA-2 و SHA-3 در برابر برخوردها مقاوم به حساب می آیند.
در برابر حمله preimage مقاوم باشد
خاصیت مقاومت در برابر حمله preimage به مفهوم توابع یک طرفه مربوط میشود. به این دلیل که هیچکس نمیتواند از کد رمزنگاری شده به ورودی برسد.
در برابر حمله دوم preimage مقاوم باشد
یک حمله preimage دوم در جهت پیدا کردن تصادف اتفاق میافتد. حمله کنندهها به جای جستجوی دو ورودی تصادفی که هش یکسان تولید میکنند، ورودی را جستجو میکنند.
نتیجه گیری
هش (HASH) یا هش در بلاک چین یکی از مفاهیم ارز دیجیتال است. چرا که جهت سرمایه گذاری و حتی ترید ارزهای دیجیتال به این مفهوم نیاز دارید و برای تحلیلها دست به دامن آن خواهید شد.
پس پیشنهاد میکنیم سؤالات خود را بر روی کاغذ یادداشت کنید و مجدد این مقاله (هش چیست؟) را مطالعه کنید. انواع هشینگ در کریپتوکارنسی را درست متوجه شوید و در صورت حل نشدن سوالات خود، آن سوال را در کامنت از کارشناسان ما جویا شوید.
در ضمن، شما میتوانید جهت مطالعه سایر مطالب آموزشی به صفحه آموزش ارز دیجیتال رایگان دنیای ترید هم سر بزنید.
صرافی های ارز دیجیتال
ارسال دیدگاه
2 دیدگاه
-
-
-
کارشناس وبسایت دنیای ترید ، 06 آبان 1400
لطف دارید؛ بابت زمانی که برای مطالعه این مقاله گذاشتید، متشکریم.
-
سعید حقیقی
، 30 اردیبهشت 1400
بسیار مقاله خوب و کاربردیی بود