هش و هشینگ چگونه عمل می کند؟

هش

کاربرد پارادوکس تولد در هش کردن چیست؟
فرض کنید شما یک هش 128 بیتی دارید که دارای 2 ^ 128 امکان مختلف است. با استفاده از پارادوکس تولد ، 50٪ احتمال شکستن مقاومت در برابر برخورد در نمونه

sqrt (2 ^ 128) = 2 ^ 64 ام را دارید.

همانطور که مشاهده می کنید ، شکستن مقاومت در برابر برخورد بسیار آسان تر از شکستن مقاومت قبل از برخورد است. هیچ عملکرد هش بدون برخورد نیست ، اما یافتن برخورد معمولاً مدت زمان زیادی طول می کشد. بنابراین ، اگر از تابعی مانند SHA-256 استفاده می کنید ، فرض می کنیم اگر (H (A) = H (B باشد ، A = B بی خطر است.

ویژگی 6: پازل دوستانه
اکنون ، این یک ویژگی بسیار جذاب است و کاربرد و تاثیری که این خاصیت روی ارز رمزپایه گذاشته است بسیار زیاد است  ابتدا اجازه دهید ویژگی را تعریف کنیم ، پس از آن ما مختصر هر اصطلاح را مرور خواهیم کرد.

برای هر خروجی “Y” ، اگر k از توزیعی با حداقل آنتروپی زیاد انتخاب شود ، یافتن ورودی x چنانچه H (k | x) = Y باشد غیرممکن است.

احتمالا متوجه نشده اید که دقیقا این که گفتین یعنی چی اشکالی ندارد بیاید ببینیم این تعریف به چه معناست:

معنی “آنتروپی زیاد” چیست؟

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

“k | x” به چه معناست؟

“|” بهم پیوستن را نشان می دهد. بهم پیوستن به معنای اضافه کردن دو رشته به هم است. به عنوان مثال. اگر بخواهم “BLUE” و “SKY” را با هم ترکیب کنم ، نتیجه “BLUESKY” خواهد بود.

بنابراین اکنون بیایید تعریف را مرور کنیم.

فرض کنید مقدار خروجی “Y” دارید. اگر یک مقدار تصادفی “k” را از یک بخش گسترده انتخاب کنید ، یافتن مقدار X غیرقابل اجرا است ،تا هش متصل شدن k و x به Y خروجی بدهد.

یک بار دیگر ، به کلمه “غیرقابل اجرا” توجه کنید ، غیرممکن است زیرا مردم همیشه این کار را انجام می دهند. در حقیقت ، کل فرآیند استخراج بر این اساس کار می کند .

نمونه هایی از توابع هش رمزنگاری

MD 5: یک هش 128 بیتی تولید می کند. مقاومت در برابر برخورد پس از هش 2 ^ 21  شکسته می شود.

SHA 1: هش 160 بیتی تولید می کند. مقاومت در برابر برخورد پس از هش 2 ^ 61 شکسته می شود.

SHA 256: هش 256 بیتی تولید می کند. این در حال حاضر توسط بیت کوین استفاده می شود.

Keccak-256: هش 256 بیتی تولید می کند و در حال حاضر توسط اتریوم استفاده می شود.

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

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

گره برگ: گره های برگ گره های پایین ترین ردیف درخت هستند. بنابراین نمودار بالا ، گره های برگ L1 ، L2 ، L3 و L4 خواهد بود.

گره های کودک: برای یک گره ، گره های زیر لایه آن که به آن تغذیه می کنند ، گره های کودک آن هستند. در نمودار ، گره هایی با برچسب “Hash 0-0” و “Hash 0-1” گره های کودک گره با برچسب “Hash 0” هستند.

گره ریشه(نود ریشه): گره منفرد در بالاترین ردیف با عنوان “Top Hash” گره ریشه است.

بنابراین یک درخت مرکل چه ارتباطی با بلاکچین ها دارد؟

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

بیایید این را در یک مثال ببینیم. درخت مرکل زیر را در نظر بگیرید:

هش و درخت مرکل

حال فرض کنید می خواهم دریابم که آیا این داده های خاص به بلوک تعلق دارد یا نه:

هش و درخت مرکل

 

به جای اینکه مراحل سخت و دشواری را مشاهده کنید ، به جستجوی هر هش بپردازید و ببینید آیا آن به داده ها تعلق دارد یا نه ، می توانید با دنبال کردن دنباله هش های منتهی به داده ، آنها را ردیابی کنید:

انجام این کار باعث کاهش قابل توجه زمان می شود.

بنابراین ، اکنون که دانستید معنی هشینگ(Hashing) و درخت مرکل(Merkle Tree) چیست.