دنیای ارز دیجیتال امروزه به قدری گسترش پیدا کرده است که روز به روز در حال اضافه شدن جملات و اصطلاحات جدید درونش هستش. اگر شما تا به حال وارد این بازار ده باشید تاکنون با کلمه هش و یا هش ریت، هشینگ و… به گوشتون خورده. در آموزش ارز دیجیتال با دانش سرمایه آرکا به صورت کامل هش را برای شما بازگو می کنیم. شاید تا به امروز معنی و مفهوم هش و هشینگ را فهمیده باشین و شاید هم تاکنون معنی دقیق این کلمه و اصطلاح رو به درستی متوجه نشده باشید در ادامه این مقاله به صورت برای شما این کلمه را باز خواهیم کرد تا به صورت کامل با آن آشنایی داشته باشید
هش چیست؟
اگر تا به حال چرخی در مقاله های موجود درباره ارز های دیجیتال زده باشید کلمه هش را بار ها در این مقالات دیده اید. اما باید بگم که این کلمه و اصطلاح فقط مختص به ارز دیجیتال نیستش و کاربرد های دیگه ای هم داره. توابع هش یا همان Hash Function تابعی هستش که ورودی اون از اعداد و حروف می باشد که دارای طولی ثابت است و به صورت رمزنگاری نوشته شده. توابع هش در سراسر دنیای اینترنت استفاده میشه، این توابع در مواردی اعم از ذخیره ی سریع، ذخیره ی کلمۀ عبور، بازیابی اطلاعات، یافتن سوابق تکراری و… در اینترنت در حال استفاده هستش. از اونجایی که توابع هش بر اساس یک الگوریتم به وجود میان میشه اون رو در فضایی مانند بلاک چین استفاده کنیم که به آن فضای کریپتوکارنسی گفته میشه. این توابع در بلاک های چین یکی از اصلی ترین سهم را در این شبکه را برای خودش کرده. اما برای بهتر درک کردن این کلمه بهتر است اطلاعاتی راجع به هش کردن و یا هشینگ داشته باشید.
هشینگ چیست؟
هشینگ یا همان Hashing به فرایندی گفته میشه که خروجی اون به اندازه ثابت هستش ولی ورودی اون با اندازه های مختلف و متغیر ساخته میشه گفته می شود. این کار با استفاده از فرمول های ریاضی صورت می گیره که به توابع و الگوریتم های هش شناخته میشه. لازم به ذکر است که تنهایی کارایی توابع هش به رمزنگاری بسنده نکرده ولی این اصطلاح رمزنگاری در هسته ارز دیجیتال به صورت پایه قرار گرفته.
به لطف این توابع بلاک های چین و سیتسم های دیگر می تونن به صورت یکپارچه و با امنیت بالا داده ها را به دست بیارن. خروجی هایی که در الگوریتم های هش رسم شده و در رمزنگاری اونا هم استفاده شده قطعی هستن. کلمه قطعی بودن در اینجا به معنی اینه که تا زمانی که ورودی تغییر نکته این الگوریتم همان خروجی رو از خودش تولید می کنه. توابع هش در ارز دیجیتال به عنوان یک توابع یک طرفه طراحی شده به این معنا که بدون صرف زمان زیاد و محاسبه های پیچیده نمیشه از اونا به راحتی استفاده کرد به عبارت ساده تر می تونیم با ورودی اون به راحتی یک خروجی ایجاد کنیم اما با تولید ورودی از این خروجی کار خیلی سختی هستش. هر چی ورودی دشوار تر باشه الگوریتم در این زنجیره امن تر محسوب میشه.
هش کردن یا هشینگ چیست و چگونه کار میکند؟
کاربران از هشتنگ برای انتقال پیام ها به صورت رمزنگاری شده طبق توابعی که ثابت هستن استفاده می کنن. مثلا شما می تونین پیامی رو به صورت رمز نگاری شده به شخصی ارسال کنید و این پیام در قالبی که شما می خواهید به دست فرد می رسه. در این شرایط شما باید اون پیام رو به صورت چند بار پشت سر هم بفرستید. تمامی پیام ها به صورت تک کلمه ای و کوتاه نیستند بعضی از این پیام ها به صورت بلند هستن که باید به صورت الگوریتم ثابت رمز گزاری بشه و بعد مخابره بشه. این امر باعث میشه که پیام ما دقیقا به همون صورتی که ما می خواییم برای فرد ارسال بشه.
برای درک بهتر این موضوع برای شما مثالی خواهیم زد. به عنوان مثال شما می خواهید پیامی مانند سلام را برای فردی ارسال کنید که با استفاده از توابع هش قصد ارسال اونو دارید. این پیام به صورت تابع هش به شکل 78903c575b0dda53c4a7644a2dd36d0e ارسال میشه. طول این تابع ثابت هستش و تغییر در هر یک از کلمه های این تابع باعث میشه که خروجی متفاوتی داشته باشه. به عنوان مثال اگه می خوایید به جای سلام از کلمه سلام! استفاده کنید تابع هش با این تابع فرق خواهد داشت.
توابع هش در دنیای ارز دیجیتال بسیار پر کاربرد هستش. ارز های دیجیتالی برای آن که از امنیت بالایی برخوردار باشن و همچنین بتونن زنده بمونن به این توابع وابستگی دارن. بسیاری از عملیات هایی که در بلاک چین صورت می گیره بر اساس همین توابع هستش و امنیت این حوزه را بالا برده است.
چرا هش ها مهم هستند؟
تابع های هش دارای کارایی های زیادی هستن و برای حوزه های مختلفی قابل به کار گیری هستن. به عنوان مقال این توابع در عملیات هایی مانند تجزیه و تحلیل پروندههای بزرگ، جستجوی پایگاه داده، مدیریت داده ها و… ازش استفاده کنین. همچنین این توابع رمزنگاری شده در برنامه های امنیتی مانند اعتبار پیام، اثر انگشت و… مورد استفاده قرار می گیره. وقتی بحث ارز دیجیتال وسط میاد تابع های هش یکی از بخش های اصلی این شبکه به حساب میان که در فرایند هایی مانند استخراح، تولید آدرس، کلید های جدید و… دارای نقش مهمی هستن.
قدرت واقعی این توابع هنگامی خودش رو نشون میده که با حجم عظیمی از اطلاعات روبه رو بهش. برای مثال با استفاده از این توابع می تونیم مجموعه داده های بزرگ رو از طریق یک تابه اجرا کنیم و بعد از آن از طریق خروجی که داره به صورت خیلی سریع صحت داده رو بررسی کنیم. این امر به دلیلی قابل اجرا هستش که ماهیت این توابع به صورت قطعی هستن، به زبان ساده تر ورودی همیشه منجر به خروج ساده و متراکم میشه. این کار باعث میشه که شما دیگه نیازی به ذخیره سازی و به خاطر سپاردن داده های زیاد را ندارید.
همان طور که گفتیم هش یکی از اصلی ترین فناوری هستش که در بلاک چین مورد استفاده قرار گرفته. بلاک های چین دارای چندین عملیات هش در خودش هستش. بیشترین کاربردی که هش در این شبکه داره برای استخراج کردنه. تمام پرتوکل های رمزارز ها برای ایجاد ارتباط در تراکنش ها، به بلاک ها و تولید پیوند های رمزنگاری بین این بلاک ها به توابع هش نیازمند هستش.به زبان ساده تر هش به صورت بسیار موثر باعث ایجاد بلاک چین شده.
تابع هش رمزنگاری
یکی از توابع هش، تابع رمزنگاری شده هستش که دراای ویژگی های منحصر به فرد می باشد. این نوع از تابع های هش باعث میشه که در فناوری هایی مانند هویت شناسی و ایجاد امنیت بسیار کاربرد داشته باشه. این توابع برای ساخت امضا دیجیتالی و صحت سنجی استفاده میشن که به اصطلاح به این کار اثر انگشت دیجیتال هم گفته میشه.
تایع هش رمزنگاری شده که امنیت داشته باشه باید دارای ویژگی های زیر باشه:
- قطعی و معین بودن
تابع هش دارای یک ورودی مشخص هستش که هر ورودی دارای خروجی ثابت است که این خروجی رو به صورت شفاف به شما تحویل میده. اهمیتی نداره که شما چند مرتبه و یا در چه زمانی این ورودی رو به این تابع داده باشید تحت هر نوع شرایطی اون ورودی شما یک خروجی ثابت داره. این ویژگی که بیان کردیم از اهمیت بالایی برخوردار هستش به دلیل اون که هر بار که هش های مختلفی رو تحویل بده ردیابی و پیگیری اون اطلاعات غیر ممکن هستش.به عنوان مثال اگر شما هزاران بار کلمه سلام را در این تابع وارد کنین باز هم هش یک کلمه ثابت رو برای خروجی شما اعلام می کنه.
- محاسبه سریع
تابع های هش باید بتونن ورودی های خودشون رو به سرعت محاسبه کنن. اگر این محاسبه ها به اندازه کافی سریع نباشه سیستم ناکارآمد میشه.
- تابع یک طرفه
تابع های هش رمزنگاری شده توابع یک طرفه هستن. تابع های یک طرفه به تایع هایی گفته میشه که برای هر ورودی که دارن خروجی اون به راحتی قابل محاسبه هستش. لازم به ذکر است از یکخروجی شما نمی توانید به ورودی دست پیدا کنید این امری غیر ممکن هستش. به بیان ساده تر شما می تونین از ورودی به خروجی به راحتی دست پیدا کنین ولی از خروجی به ورودی دست پیدا کردن کار سختیه.
- هر تغییر در ورودی، هش را به طور کامل تغییر میدهد
اگر شما کوچک ترین تغییر در داده رو نیز در ورودی ایجاد کنین، بازتاب این تغییر در این تابع قابل مشاهده هستش. به عنوان مقال اگر شما در سایتی مانند اینستاگرام کلمه عبور خودتون رو وارد می کنین سیستم به صورت خودکار هش کلمه عبورتون رو با هش موجود در سیستم تطابق میده. در نتیجه اگر کلمه عبور رو کوچ ترین تغییر بدین بهش با هش موجود در سیستم هم خونی نخواهد داشت. این ویژگی در ارز دیجیتال باعث این میشه که بلاک های چین تغییر ناپذیر باشن.
- مقاوم در برابر تصادم
غیر ممکنه که شما از دو هش متفاوت یک نوع خروجی رو دریافت کنین. این به معنی اینه که هر ورودی هش منحصر به فرد و مختص به خودش رو داره.
کاربرد Hash در استخراج
در استخراج بیت کوین مراحل زیادی وجود داره که تابع های هش در اون به کار رفته. به عنوان مثال این توابع در پیوند دادن ورودی و خروجی تراکنش ها، بررسی مانده، و هش تراکنشهای درون یک بلاک برای تشکیل یک درخت مرکل و… کارایی داره. یکی از دلایلی که باعث شده امنیت این بلاک چین بالا بره اینه که ماینر ها برای پیدا کردن یک هش معتبر باید تعداد بی شماری از تابع های هش را حل کنن. یک ماینر برای ایجاد مقدار هش در هر بلاک باید چندین ورودی مختلف رو امتحان کنه. ماینر ها در صوتی می تونن که بلاک رو اعتبار سنجی کنن که بتونن یک هش با عداد صفر های اولیه مشخص پیدا کنه.
تعداد صفر ها در این فرایند نشانه سختی استخراج هستش و بسته به میزانش داره و هر بلاک دارای هش های متفاوتی در ساختار خود هستن که توسط شبکه تعیین میشن. در این حالت نرخ هش یا همان هش ریت که به لاتین به اون Hash rate میگن نشان دهنده میزان قدرت پردازش شبکه در استخراج ارز دیجیتال هستش. اگر میزان هش های شبکه افزایش پیدا کنه سختی استخراج نیز به همان میزان بالا میره. اگر استخراج کننده از شبکه خارج بشه باعث میشه که تعداد هش ها به صورت قابل توجهی کاهش پیدا کنه در این حالت سختی استخراج تنظیم میشه و ماینینگ هم آسان تر میشه.
ماینر های مشکلی با خروجی یکسان نداره به دلیل اون که تعداد زیادی هش وجود داره که می تونن به عنوان یک خروجی معتبر تولید بشه. چندین راه حل برای یک بلاک وجود داره که ماینر باید یکی از اونارو پیدا کنه. این مسئله با توجه به سختی استخراج مشخص میشه. از اونجایی که استخراج این ارز ها دارای هزینه بالایی هستش استخراج کننده دلیلی برای تقلب در این شبکه نداره چون این کار باعث میشه ضرر مالی زیادی رو پس بده. هر چه ماینر های بیشتری به این بلاک چین اتصال پیدا کنن شبکه بزرگ تر و قوی تر میشه.
الگوریتم های هشینگ
الگوریتم های زیادی برای رمزنگاری وجود داره که این الگوریتم ها با دانش سرمایه آرکا را برای شما توضیح خواهیم داد.
- الگوریتم Blake
الگوریتم بلیک دارای 2 نوع متفاوت در خود هستش. در یک نوع آن ها دارای کلمات 32 بیتی هستش و طول هش های آن به 256 بیت می رسه اما در دیگر نوع اون کلمات به 64 بیتی می رسه و طول هش های اون هم به 512 بیت رسیده است. در سال 2012 شناخته شده ترین عضو این الگوریتم که به نام Blake2 معرفی شده است. الگوریتم هایی که قبل از بلیک معرفی شدن از امنیت بالایی برخوردار نبودن و آسیب پذیر بودن به همین دلیل Blake2 برای رفع این مشکلات به وجود اومد و معرفی شد. Blake2 در واقع دارای 2 زیر گروه هستش که به اونا Blake2s، Blake2b تقسیم میشه و این الگوریتم ها در آخرین نسخه ایمنی هستش.
- الگوریتم Whilpool
این الگوریتم در سال 2000 منتشر شده است. در الگوریتم Whilpool هر پیامی که ارسال و یا دریافت میشه کمتر از 2256 بیت هستش و هش رمزگذاری شده در اون هم به اندازه 512 بیت یا همون 64 بیت تولید شده است. در هش های 512 بیتی اعداد به صورت اعداد 128 رقمی به نمایش گذاشته میشن. از سال 2000 تا کنون مورد بازبینی قرار گرفته است. اولین بار با تغییر S-box بر روی الگوریتم بر روی سخت افزار بسیار آسان بود و نام آن را Whirpool-T گذاشته اند. در دومین بار در سال 2003 نقضی که باعث کاهش امنیت شده بود رو پیدا کردن و اونو بر طرف کردن و در نهایت نسخه اصلی اون به نام Whirpool شناخته شد.
- الگوریتم SHA
SHA در واقع مختص شده عبارت Secure Hash Algorithm هستش و به معنای الگوریتم هش ایمن است. در سال 1993 این الگوریتم توسط موسسه ملی استاندارد و فناوری ایالات متحده آمریکا ایجاد شده است. این نسخه که معرفی شد دارای نقض هایی بود که بعد از رفع این نقش ها نسخه اصلاح شده اون به نام SHA-1 نام گذاری شد. این نوع از الگوریتم 160 بیتی است و توسط آژانس امنیت ملی ایالات متحده آمریکا تولید شد و هدف از آن امضا دیجیتالی بوده است. در سال 2005 در این الگوریتم دارای نفوذ های احتمالی بوده است و همین امر باعث شد مه مسیر جدیدی رو این الگوریتم طی کنه.
نرخ هش چیست؟
نرخ هش در بلاک های چین در عملکرد ارز دیجیتال به تعداد عملیات هش انجام شده در زمان معین یا سرعت عملکرد ماینر را مشخص می کنه. نرخ هش یکی از عواملی هستش که در استخراج این ارز های دیحیتال تاثیر می زاره و ماینر ها برای انتخاب دستگاه استخراج آن را مد نظر قرار میدن. نرخ هش برای اندازه گیری عملکرد یک دستگاه ماینر هستش. 3 عاملی که کاملا به هم وابسته هستن عبارت اند از پاداش ماینرها، نرخ هش، سختی شبکه هستن.
هر چه سختی این شبکه بالاتر باشه نرخ های هش بیشتری پیدا میشن و ماینر ها برای پیدا کردن ورودی بلک زمان زیادی رو نیاز دارن. رایج ترین معیار برای اندازه گیری می توان به هش بر ثانیه اشاره کرد. این عدد به شما تعداد هش ها در یک ثانیه را نشان می دهد.
برخی دیگر از معیارهای اندازهگیری نرخ هش که در واقع تنها عمل تبدیل واحد بر روی آنها صورت گرفته عبارتند از:
- ۱ EH/s یا یک کوئینتیلیون هش بر ثانیه
- ۱ GH/s یا یک میلیارد هش بر ثانیه
- ۱ PH/s یا یک کوادریلیون هش بر ثانیه
- ۱ KH/s یا هزار هش بر ثانیه
- ۱ TH/s یا یک تریلیون هش بر ثانیه
- ۱ MH/s یا یک میلیون هش بر ثانیه
این ارقام که در بالا به آن اشاره کردیم عبارت اند از مگاهش، اگزا هش، کیلوهش، پتاهش، گیگاهش، تراهش هستن.
سخن آخر
توابع هش ابزاری بسیار مهم در علوم رایانه هستن به خصوص زمانی که حجم بالایی از داده ها رو در رو به رو خودمون داشته باشیم. هنگامی که این هش با رمزنگاری ترکیب بشه الگوریتم های اون کاملا متنوع میشن و امنیت هم به روش های مختلف بالا میره و ارائه داده میشه. به همین دلیله که توابع هش برای همه شبکه های ارز رمز پایه حیاتی هستش.
بدون دیدگاه