هش چیست؟ آشنایی با مفهوم Hash، تابع هش و هشینگ در بلاکچین
امنیت بلاکچین و هش چیست
برای درک مفهوم هش چیست ، فرض کنید، قصد ارسال یک پیام مهم کاری را به کارفرمای خود دارید و میخواهید داده ارسالی شما بدون تغییر و همانگونه که هست به دست گیرنده برسد. روشهای مختلفی برای اطمینان از ارسال بدون تغییر اطلاعات وجود دارد.
برای مثال شما میتوانید با رئیس خود تماس بگیرید و بپرسید، آیا پیام ارسالی بدون تغییر به دست او رسیده است، یا اینکه یک تاییدیه دریافت پیام از او بگیرید و بسیاری موارد دیگر اما همه این کارها زمانبر هستند، به دقت زیادی نیاز دارند و احتمال خطا در آنها بالا میرود. (لینک پیشنهادی: خرید ارز دیجیتال)
مطالعه بیشتر: بلاکچین چیست؟
اینجاست که استفاده از الگوریتم هش برای تغییر ناپذیری و امنیت اطلاعات به میان میآید. آیا میدانید هش چیست و چگونه کار میکند؟ با کیوسک آکادمی همراه باشید تا با مفهوم هش چیست، چگونه کار میکند، ویژگیها و هر آنچه باید از الگوریتم هش و روند کار آن بدانید، آشنا شوید.
مطالعه بیشتر: جنسیس بلاک
هش چیست؟
الگوریتم هش یک تابع ریاضی رمزنگاری است، در ریاضیات یک تابع برای نمایش یک عبارت، رابطه یک یا چند متغیره یا مجموعهها استفاده میشود. در نتیجه تابع مورد نظر یک ورودی گرفته و یک خروجی مرتبط را بر میگرداند. یک تابع هش یک ورودی با طول دلخواه (به عنوان مثال متن، عکس یا هر چیز دیگر) را به یک رشته با طول و ساختار ثابت تبدیل میکند.
خروجی ایجاد شده مقدار هش یا checksum نامیده میشود. (از چکسام برای تشخیص اینکه آیا داده ارسالی هنگام ارسال به طور تصادفی یا عمدی خراب شده است یا خیر، استفاده میشود.)، تابع هش به گونهای ساخته شده که یک طرفه باشد و امکان بازسازی آن از طریق وارونه کردن وجود ندارد.
مفهوم فرآیند هش چیست ؟
هش کردن یا هشینگ به فرآیندی گفته میشود که با استفاده از تابع هش (Hash Function)، دادههای ورودی تصویر، متن، حروف، اعداد و … به خروجی رمزگذاری شده تبدیل میشود. این فرآیند در امنیت اطلاعات بسیار حائز اهمیت بوده و کاربرد آن، زمانی است که بخواهید یک پیام اختصاصی برای کسی ارسال کنید که از جامعیت «فایل ارسال شده تغییر ناپذیر باشد» و امنیت «هیچکس جز گیرنده به فایل مربوطه دسترسی پیدا نکند» کامل برخوردار باشد.
هش چگونه کار میکند؟
همانطورکه گفته شد توابع هش، ورودیهای با طول دلخواه را گرفته و خروجیهای با طول ثابت را برمیگردانند. یک تابع هش دارای قابلیت انتقال پیام با ویژگیهای امنیتی است. توابع هش معمولا از ساختارهای دادهای در سیستمهای محاسباتی برای انجام کارها استفاده میکنند. در نتیجه شناسایی مطالب پیام یا اطلاعات مربوط به گیرندگان و فرستندهها دشوارتر میشود.
مطالعه بیشتر: پایان استخراج بیت کوین
روند هش کردن چگونه است
در تصویر زیر نحوه تبدیل یک پیام به تابع هش نشان داده شده است. این تصویر عملکرد هش را به صورت ساده نشان میدهد. طول خروجی هش تولید شده پیامی که میخواهید ارسال کنید، به نوع الگوریتم هش استفاده شده بستگی دارد.
برای مثال برای الگوریتم SHA – 1 طول خروجی الگوریتم تا 160 بیت میتواند باشد، این درحالی است که هش خانواده SHA – 2، 384 بیت و 256 بیت است. اندازه و نوع داده ورودی الگوریتم هش میتواند متنوع باشد، اما مقدار خروجی از نظر اندازه همیشه ثابت است. ورودیها و خروجیهای هش زیر را در نظر بگیرید:
متن نمونه ورودی | مقدار هش استفاده شده با الگوریتم SHA-1 |
---|---|
Hello | D364965C90C53DBF14064B9AF4BAABCA72196E2E |
Hello! You are reading an article about the cryptographic hash function! | B26BACAB73C46D844CABEC26CE32B030FED1164F |
همانطور که در مثال میبینید، اندازه ورودی چه یک کلمه باشد و چه یک جمله، اندازه خروجی ثابت است. برای مثال، یک مقدار هش 160 بیتی دارای 40 کاراکتر هگزادسیمال خواهد بود، در حالی که هش 256 بیتی دارای 64 کاراکتر هگزا است. بنابراین حتی اگر یکی از کتابهای هری پاتر یا کل مجموعه آن هش شود، باز هم طول خروجی هش ثابت خواهد بود.
ویژگیهای عملکرد هش چیست؟
به صورت کلی توابع هش دارای چند ویژگی مشخص هستند:
- ایجاد یک خروجی یکسان برای دو داده ورودی اولیه متفاوت، غیرممکن است.
- بازسازی مقدار هش اولیه از طریق مقدار خروجی آن غیرممکن باشد.
- یک الگوریتم هش باید توانایی دریافت هر نوع داده با سرعت بالا را داشته باشد.
- اگر تغییر در داده اولیه به وجود آید، مقدار هش نیز باید حتما تغییر کند.
با توجه به ویژگیهای الگوریتم هشینگ از آن به طور گسترده در امنیت اطلاعات آنلاین، برای محافظت از گذرواژههای وارد شده در سایت، بررسی جامعیت داده و یکپارچگی دادههای بارگیری شده استفاده میشود.
مطالعه بیشتر: رویکرد چند زنجیرهای
هشینگ و ارزهای دیجیتال
بلاکچین را میتوان پایه و اساس استحکام یک ارز دیجیتال به شمار آورد که از یک دفتر کل جهانی تشکیل شده است. این دفتر زنجیرهای متشکل از بلاکهای تراکنش داده منحصر به فرد است که برای انجام تراکنشهای معتبر به یکدیگر متصل شدهاند.
بلاکچین به گونهای طراحی شده که از تراکنشهای کلاهبردارانه و حمله خرج دوباره (Double Spend Attack) با استفاده از روشهای غیرمجاز جلوگیری میکند. مقدار رمزگذاری شده یک سری اعداد و حروف است که شباهتی به دادههای اصلی ندارند و هش نامیده میشود. استخراج ارز دیجیتال باید از طریق هش کردن انجام شود.
مطالعه بیشتر: رپد توکن
فرآیند انجام هشینگ در استخراج ارزهای دیجیتال
با استفاده از هشینگ داده، بلاکهای بلاکچین را از طریق توابع ریاضی پردازش میکنند، این امر دادههای ارز دیجیتال را به خروجی با طول ثابت هش تبدیل میکند. با استفاده از یک خروجی با طول ثابت، امنیت دادههای بلاک افزایش مییابد، زیرا هرکسی بخواهد طول ثابت خروجی رمزنگاری شده را رمزگشایی کند، با دیدن طول خروجی نمیتواند تشخیص دهد که ورودی چه دادهای بوده است.
حل مسئله هشینگ با استفاده از دادههای سربرگ بلاکها آغاز میشود و اساسا حل آن یک مسئله ریاضی بسیار پیچیده است. هر داده سربرگ هش (Block Header) شامل شماره نسخه، یک مهر زمانی، هش استفاده شده بلاک قبلی، هش ریشه درخت مرکل (Merkle Root یک ساختار داده ریاضی تشکیل شده از هش بلاکهای مختلف)، یک نانس (nonce عددی که همه استخراجکنندگان ارز دیجیتال به دنبال آن هستند) و هش هدف (Target Hash) است.
مطالعه بیشتر: الگوریتم اجماع
Nonce در فرآیند هشینگ
نانس (number only used once) به معنی « عددی که فقط یک بار به کار میرود» است. عدد نانس همان چیزی است که ماینرها با استفاده از سیستمهای پیچیده و مصرف انرژی برق بالا به دنبال آن هستند. این عدد به محتوای هش شده بلاک قبلی اضافه شده و سپس عملیات هشینگ بر روی آن انجام میشود. اگر هش به دست آمده کمتر یا مساوی هش هدف باشد، به عنوان راه حل شناخته خواهد شد و به دلیل پیدا کردن عدد هش هدف، پاداش آن را در قالب ارز دیجیتال به ماینر میدهند و بلاک جدید به بلاکچین اضافه میشود.
نمونهای از هش
اگر شما بخواهید کلمه ” hello” را با استفاده از الگوریتم هش رمزنگاری کنید، طول خروجی هش تولید شده با خروجی جمله ” I am going to the store” (میخواهم به مغازه بروم) یکسان است. همانطور که گفتیم تفاوت الگوریتم هش تنها با توجه به نوع پردازش داده استفاده شده، خروجی متفاوتی با طولهای 160 تا 512 بیت تولید میکند.
تابع استفاده شده برای تولید هش مشخص است، یعنی در هر بار استفاده از ورودی یکسان، خروجی یکسانی تولید میکند. همین امر باعث تولید هش ورودی کارآمد میشود. همچنین هش ورودی را غیر قابل پیشبینی میکند که همین امر منجر به استخراج میشود. در نتیجه با ایجاد تغییرات کوچکی در ورودی، آن را غیرقابل شناسایی و کاملا متفاوت خواهد کرد.
مطالعه بیشتر: مقیاسپذیری در بلاکچین
الگوریتمهای هشینگ در ارزهای دیجیتال کدامند؟
رمزنگاری از چندین توابع هشینگ برای امنیت دادهها استفاده میکند. برخی از محبوبترین هشهای رمزنگاری شامل موارد زیر است.
- الگوریتم هش امن 1 (SHA-1)
- الگوریتم هش امن 2 (SHA-2)
- الگوریتم هش امن 3 (SHA-3)
- MD2
- MD4
- MD5
پیامهای خلاصه شده ( Message-digestیک الگوریتم برای خلاصهسازی پیام و امضای دیجیتال است.) توابع هش مانند MD2، MD4 و MD5 به امنیت بالای امضای دیجیتال هش کمک میکنند. بعد از هش کردن، امضای دیجیتال به مقدار کوچکتری تبدیل خواهد شد که خلاصه پیام نام دارد.
SHA چیست؟
SHA یک الگوریتم استاندارد هش امن برای خلاصهسازی پیامهای بزرگ (با طول 160 بیت ) استفاده میشود. اگر چه مانند توابع خلاصهسازی پیام MD4 در ذخیره و بازیابی پایگاه داده خوب عمل میکند اما بهترین روش برای اهداف رمزنگاری و بررسی خطا نیست. SHA-2 برای خلاصهسازی پیامهای بزرگ (224 بیتی) استفاده میشود، SHA-3 جانشین SHA-2 شده است.
مطالعه بیشتر: ساید چین
هشهایی که در بلاکچینها استفاده میشود
اگر برای شما سوال پیش آمده که الگوریتم هش چیست و چگونه کار میکند؟ باید بدانید یکی از مهمترین کاربردهای الگوریتم هش در فناوری بلاکچین و امنیت استخراج رمز ارزها است. توابع هش تعداد بینهایت بیت ورودی میگیرند و آن را به بیتهای با طول ثابت تبدیل میکنند. خروجی همیشه یک داده اصلاح شده و تغییر یافته از لحاظ شکل نمایشی است. دادههای اصلی ورودی و نتیجه نهایی هش خواهد بود. تنها تفاوت انواع الگوریتمهای هشینگ در نحوه پردازش اطلاعات است.
درک مفهوم هشینگ در بلاکچین
برای اینکه فرآیند انجام هشینگ را درک کنید ابتدا باید با ساختار دادهها به طور کامل آشنا شوید. ساختار داده (data structure) روشی خاص برای ذخیره اطلاعات است که از دو عنصر اصلی اشارهگرها (pointers) و لیستهای پیوندی(linked lists) تشکیل میشود.
مطالعه بیشتر: گس اتریوم چیست؟
اشاره گرها
اشارهگرها متغیرهایی هستند که به متغیرهای دیگر اشاره میکنند، بنابراین آنها به عنوان یک شاخص، مسیر مکان مناسب را نشان میدهند. همچنین فراهمسازی آدرس بلاک بعدی در بلاکچین، برعهده اشارهگرها است.
لیستهای پیوندی
لیستهای پیوندی دنبالهای از گرههایی تشکیل میدهند که با کمک اشارهگرها به هم متصل میشوند.
به لطف هشینگ در بلاکچین، به هر بلاک یک شناسه اصلی نسبت داده میشود، که هر گونه تغییر در بلاکچین را غیرقابل برگشت کرده و با استفاده از اطلاعات سرآیند، بلاک را شناسایی میکند. این بلاک شامل جزئیاتی از قبیل:
- شماره نسخه بلاکچین
- مهرزمان (UNIX)
- اشارهگرهای هش
- نانس (nonce)، مقداری که ماینرها برای ایجاد به آن بلاک نیاز دارند.
- یک هش از ریشه درخت مرکل (Merkle)
تمام این عناصر برای ایجاد بلاک مورد نیاز است. بنابراین وقتی هش برای بلاکچین اتفاق میافتد، دادهها به یک رشته منحصر به فرد در داخل یک بلاک تبدیل میشوند.
برای خرید دوج کوین، خرید بیتکوین و دیگر ارزهای دیجیتالی با کمترین میزان کارمزد میتوانید از خدمات کیوسک استفاده کنید.
رابطه الگوریتم اثبات کار در هش کردن
الگوریتم اثبات کار (PoW) با هش بلاکچین در ارتباط است و برای تایید تراکنشها و تولید بلاکهای جدید در زنجیره مفید و کاربردی عمل میکند. تمرکززدایی یکی از مهمترین ارکان بلاکچین و به طور بالقوه یکی از نقاط آسیب پذیر آن است.
زمانی که کاربری بخواهد یک کپی از بلاکچین را دانلود کند، کاربر دیگر چگونه میتواند از صحت درستی بلاکچین اطمینان حاصل کند. این زمانی است که الگوریتم اثبات کار به میان میآید و به کاربران شبکه بلاکچین امکان اطلاع رایگان یا نبودن دادهها را میدهد.
مطالعه بیشتر: بایننس بریج
امنیت داده هش چگونه است؟
هر بلاک دارای یک هش از بلاک قبلی (بلاک والدین) خواهد بود، به جر بلاک جنسیس (Genesis block)، که اولین بلاک ثبت شده در بلاکچین و معروف به «بلاکچین یک» است. رشتهای از بلاکها با هش بلاک اصلی (والد) را تصور کنید، اگر اطلاعات موجود در یکی از بلاکهای زنجیره تغییر کند، سایر بلاکها نیز تحت تاثیر قرار خواهند گرفت.
با این حال، با بزرگ شدن شبکه، تغییر هش در تمام بلاکها عملا غیرممکن میشود. بنابراین، فرآیند هش برای بلاکچین ضروری بوده و از یکتایی و اصالت هر یک از عناصر سیستم اطمینان حاصل میکند. دادههای تغییرناپذیر و موثق یکی از ویژگیهای اصلی بلاکچین است که آن را ارزشمند کرده و به بلاکچین پتانسیل رشد میبخشد. اطلاعات همیشه معتبر باقی میمانند، این امر یکپارچگی بلاکچین را نشان میدهد.
جمع بندی تابع هش
برای جامعیت و تغییرناپذیری در امنیت دادهها دنیای ارتباطات الکترونیک، بخصوص ارزهای دیجیتال نیاز به رمزنگاری به صورت برگشت ناپذیر است که کلاهبرداران نتوانند به آن دسترسی داشته باشند. هشینگ یکی از روشهای خوب برای رمزنگاری دادهها است.
مطالعه بیشتر: حمله سوییپر
هکرها به دنبال روشهای پیچیدهتری برای دسترسی به پیام خروجی هش شده هستند. استفاده از توابع مختلف هشینگ باعث امنیت بالای آن در سطوح محتلف میشود، به طور کلی الگوریتمهای هشینگ در رمزنگاری دادهها از اهمیت بالایی برخوردار هستند.
مطالعه بیشتر: حمله اسپوفینگ
در مقاله هش چیست از آکادمی کیوسک، موارد بالا را مرور کردیم. لطفا نظرات و تجربههای خود را در این زمینه با تیم ما به اشتراک بگذارید.
Good – I should definitely pronounce, impressed with your website. I had no trouble navigating through all tabs as well as related info ended up being truly easy to do to access. I recently found what I hoped for before you know it in the least. Reasonably unusual. Is likely to appreciate it for those who add forums or something, website theme . a tones way for your client to communicate. Nice task..