هش Hash | هش ریت HashRate | کاربردهای آن
هش Hash چیست؟
تابع هش داده ها را به صورت حروف یا اعداد دریافت می کند، سپس آن را به صورت یک خروجی رمزنگاری شده با طولی ثابت و معین به ما می دهد.
توابع هش کاربردهای بسیار زیادی در دنیای دیجیتال دارند. ذخیره سازی امن کلمات عبور، پیدا کردن سوابق تکراری، ذخیره سازی سریع، بازیابی اطلاعات و موارد بسیاری دیگر از کاربردهای این تابع می باشد.
تابع هش با استفاده از الگوریتمی خاص ایجاد می شود. هش Hash مهم ترین کلید مدیریت بلاک چین می باشد. ارزهای دیجیتال عملا با استفاده از هش ایجاد می شوند. در ادامه به معرفی کامل هش و عملکرد آن در بلاک چین می پردازیم.
هشینگ Hashing چیست؟
هشینگ تابعی ریاضی است که مقدار یا داده ای (ورودی ) را به مقدار دیگر (خروجی) تبدیل می کند. یکی از کاربرد های جالب هشینگ، ایجاد امنیت در انتقال پیام است. فرض کنید می خواهید یک پیام با محتوای خاص ،فقط برای یک گیرنده خاص قابل شناسایی باشد . در اینجا می توانیم از هشینگ کمک بگیریم.
با استفاده از الگوریتم هشینگ، داده ها (اطلاعات پیام) در اندازه ای مشخص فشرده می شوند. این مقدار به دست آمده با نام هش Hash شناخته می شود. برای سیستم های کامپیوتری مقایسه و ارزیابی مقادیر به صورت هش بسیار ساده تر از مقایسه فایل های اصلی آن می باشد.
چه افرادی از هشینگ Hashing استفاده می کنند؟
یکی از پر کاربردترین موارد استفاده از هشینگ، ایجاد رمزهای عبور (گذر واژه) می باشد. فرض کنید می خواهید حساب کاربری ایمیل برای خود ایجاد کنید. در ابتدا نام کاربری و آدرس ایمیل و یک رمز عبور برای خود تعیین می کنید. این رمز عبور به همان صورتی که شما ایجاد کرده اید، در شبکه ثبت نمی شود. با استفاده از الگوریتم هشینگ رمز عبور شما به صورت یک هش Hash در می آید و در شبکه ذخیره می شود. با هر بار ورود شما به حساب کاربریتان و وارد نمودن رمز عبور، آن به صورت هش تبدیل می شود و با هشی که از قبل ذخیره شده است مقایسه می شود. در صورتی که باهم تطابق داشته باشند شما می توانید به حساب ایمیل خود دسترسی پیدا کنید.
ارزهای دیجیتال و هشینگ Hashing
حیاتی ترین و مهم ترین عمل برای کارکرد بلاک چین و حفظ یکپارچگی آن استفاده از هشینگ می باشد. در شبکه بلاک چین بیت کوین Bitcoin فرآیند استخراج با استفاده از توابع هشینگ ( SHA-256) انجام می پذیرد.
این تنها کاربرد هش Hash در شبکه بلاک چین نیست. امروزه فرآیند هشینگ Hashing برای ایجاد تراکنش جدید، زمان گذاری و اضافه کردن بلاک به بلاک قبلی نیز استفاده می شود.
وقتی تراکنش در شبکه بلاک چین تائید شد و بلاک به شبکه اضافه شد، میان نود های Node شبکه سیستم اجماع حاصل شده و بعد از انجام این کار معکوس کردن معامله غیر ممکن خواهد شد. ماهیت اصلی هشینگ در شبکه بلاک چین یک طرفه سازی می باشد و این پایه حفظ یکپارچگی شبکه است.
ویژگی های خاص هش Hash
- مهم نیست شما یک یا 100 بار از تابع هش روی یک داده ورودی استفاده کنید، خروجی که این تابع در اختیار شما قرار می دهد همیشه یکسان است. این ویژگی قابلیت های خاصی را ایجاد می کند، اگر قرار باشد این خروجی ها متفاوت باشند، رهگیری داده های ورودی غیر ممکن خواهد شد.
- توابع هش یک طرفه می باشند. یعنی از متنی که هش Hash شده است نمی توان متن ورودی و اصلی را پیدا کرد. البته با کمک کرک Crack می توان مقایسه هایی انجام داد و به متن اصلی رسید.
- پیدا کردن دو هش یکسان کاری غیر ممکن است.
- با تغییر حتی یک کاراکتر در داده ورودی، خروجی شما به کل متفاوت خواهد بود.
معروف ترین استانداردهای هش Hash
- MD5 : این تابع خروجی 128 بیتی ایجاد می کند. این الگوریتم جزو پروژه های شکست خورده محسوب می شود. زیرا به را حتی آن را می توان برعکس کرد و این مورد بر خلاف ویژگی تابع هش می باشد. این تابع هنوز در برخی سایت ها استفاده می شود ولی در دنیای ارزهای دیجیتال کاربردی ندارد.
- SHA : این تابع خروجی 160 بیتی ایجاد می کند. خانواده تابع های SHA کاربردهای زیادی دارند. مهم ترین آنها SHA-3 می باشد که بسیار امن و کاربردی می باشد.
- SHA256 : این تابع خروجی 256 بیتی ایجاد می کند. شبکه بلاک چین از این تابع استفاده می کند. این تابع امنیت رمزنگاری را برای شبکه بلاک چین فراهم می کند.
- KECCAK-256 : این تابع خروجی 256 بیتی ایجاد می کند.
توجه داشته باشید هرچه خروجی تولید شده بزرگ تر باشد، امنیت نیز بالاتر خواهد بود.
آیا هشینگ Hashing و رمزنگاری Encrypt باهم متفاوت اند؟
تائید صحت تراکنش ها و محتوا با استفاده از هشینگ انجام می پذیرد. حفظ امنیت و حریم خصوصی داده ها با استفاده از رمزنگاری می باشد.
فرآیند رمزنگاری برای دسترسی به داده ها و متن اصلی به کلید خصوصی نیاز دارد. در حالت کلی رمزنگاری عملی دو طرفه است، این عملکرد شامل رمزگذاری و رمزگشایی می باشد. در مقابل هشینگ تابعی یک طرفه و غیر قابل بازگشت است، این تابع یک متن ساده ( ورودی) را به هش های منحصر به فرد و بدون تغییر تبدیل می کند.
در حالی که این دو فرآیند از نظر عملکرد باهم متفاوت اند، اما شباهت هایی نیز باهم دارند. هشینگ و رمزگذاری در کنترل داده ها و اطلاعات، پیام ها در سیستم های محاسباتی نقشی اساسی و مهم دارند. هر دوی این عملکرد ها در داده ها و اطلاعات اولیه ( ورودی) تغییراتی ایجاد می کنند و آنها را به شکل دیگری تبدیل می کنند.