هش کردن چیست؟ – قسمت سوم
مترجم: احمد رجعتی
اکنون لازم است به ذکر نمونههایی از توابع هش رمزنگاری بپردازیم:
- MD 5: یک هش 128 بیتی تولید میکند. مقاومت در برابر برخورد پس از تقریبا 2^21 هش شکسته خواهد شد.
- SHA 1 : یک هش 160 بیتی تولید میکند. مقاومت در برابر برخورد پس از تقریبا 2^61 هش.
- SHA 256 : یک هش 256 بیتی تولید میکند. در حال حاضر توسط بیتکوین استفاده میشود.
- Keccak-256: یک هش 256 بیتی تولید میکند و در حال حاضر توسط اتریوم استفاده میشود.
هش و ساختار دادهها
ساختار داده یک شیوه تخصصی ذخیره داده است. دو ویژگی ساختار داده وجود دارد که برای دانستن نحوه کارکرد بلاکچین حیاتی است. این دو ویژگی عبارتند از:
1 . اشارهگرها
2 . لیستهای مرتبط
- اشارهگرها
اشارهگرها متغیرهایی هستند که در برنامهنویسی آدرس متغیر دیگری را ذخیره میکنند. معمولا متغیرهای نرمال در هر زبان برنامهنویسیای اطلاعات را ذخیره میکنند.
به عنوان مثال int a = 10، به این معنی است که یک متغیر “a” وجود دارد که مقادیر عدد صحیح را ذخیره میکند. در این مورد، مقدار عدد صحیح 10 ذخیره میشود. این یک متغیر عادی است.
با این حال، اشارهگرها، به جای ذخیره مقادیر، آدرس متغیرهای دیگر را ذخیره میکنند. به همین دلیل است که به آنها اشاره میگویند، زیرا به معنای واقعی کلمه به مکان متغیر دیگری اشاره دارند.
- لیستهای مرتبط
یک لیست مرتبط یکی از مهمترین آیتمها در ساختار داده است. لیست، دنبالهای از بلوک است که هر کدام شامل دادههایی است که از طریق یک اشارهگر به بلوک بعدی مرتبط است. متغیر اشارهگر، در این مورد، حاوی آدرس گره بعدی است و از این رو اتصال برقرار میشود. آخرین گره، دارای اشارهگر خالی است که به این معنی است که مقداری ندارد.
اینجا لازم است به نکتهای مهم توجه داشته باشید که اشارهگر داخل هر بلوک حاوی آدرس بلوک بعدی است. ممکن است بپرسید این برای بلوک اول در لیست چه معنیای میدهد؟ اشارهگر بلوک اول کجا باقی میماند؟
بلوک اول، genesis block نامیده میشود و اشارهگر آن در خود سیستم قرار میگیرد. اشارهگر هش همان چیزی است که ساختار بلاکچین براساس آن ساخته شده است. در واقع، یک زنجیره بلوک اساسا یک لیست مرتبط است.
بلاکچین یک لیست مرتبط است که حاوی داده و اشارهگر هش است که به بلوک قبلی خود اشاره میکند و از این رو موجب ایجاد زنجیرهای میشود.
اشارهگر هش چیست؟ اشارهگر هش مانند يك اشارهگر است، اما به جاي آنكه تنها آدرس بلوك قبلي را در برگیرد، دادههای درون بلوك قبلی را نیز در برمیگیرد. چنین چیزی باعث میشود بلاکچین به طرز شگفتانگیزی قابل اعتماد باشد.
تصور کنید، یک هکر به بلوک 3 حمله میکند و تلاش میکند دادههای آن را تغییر دهد. به دلیل خواص توابع هش، یک تغییر جزئی در دادهها، هش را به طور قابل توجهی تغییر میدهد. این امر به این معنی است که هرگونه تغییر جزئی ایجاد شده در بلوک 3، هشی را که در بلوک 2 ذخیره میشود تغییر میدهد، که به نوبه خود دادهها و هش بلوک 2 را تغییر خواهد داد که باعث تغییر در بلوک 1 و … میشود و به طور کامل زنجیره را تغییر میدهد که غیرممکن است. این دقیقا همان چیزی است که بلاکچین را غیر قابل تغییر میکند.
Header یک بلوک چگونه است؟
هدر بلوک حاوی:
- نسخه: شماره نسخه بلوک.
- زمان: نشانگر زمان فعلی.
- هدف دشوار فعلی.
- هش بلوک قبلی.
- Nonce.
- هش Merkle Root.
منبع: blockgeeks
Leave a Reply