الگوریتم SHA-256 عملی در هش رمزنگاری است که ورودی با اندازههای تصادفی را دریافت و خروجیهایی با اندازههای یکسان را ایجاد میکند. عملیات هشگذاری بسیار قدرتمند است، چراکه این عملیات کاملا یکطرفه است. این بدان معناست که هر کسی میتواند از این عملیات برای ایجاد خروجی استفاده کند و تنها به ورودی نیاز خواهد داشت. با این وجود امکان ندارد که با استفاده از خروجی هش، ورودی را حدس بزنید. همین ویژگی برجسته الگوریتم هش SHA-256، این عملیات را برای شبکه بیت کوین ایدهآل کرده است.
الگوریتم SHA-256 در دو بخش در شبکه بیت کوین به کار گرفته میشود:
- – استخراج؛
- – تولید آدرسهای بیت کوین.
استخراج
پروسه استخراج منجر به معرفی بیت کوینهای جدید و اضافه شدن آنها به سکههای در گردش میشود. استخراج به ایمنی شبکه بیت کوین نیز کمک میکند. به منظور تایید صلاحیت فرد و افزودن بلاک به بلاک چین بیت کوین آنها باید گرهها یا نودهایی برای استخراج ایجاد کنند. پس از راهاندازی موفقیتآمیز نودهای استخراج، فرد میتواند بلاکهای جدید را ایجاد کند که در ادامه توسط شبکه بیت کوین تایید صلاحیت میشوند. در هر بلاک یک هدر قرار دارد. برای تشکیل بلاک به شش عامل متفاوت نیاز است. این عوامل عبارتاند از:
- نسخه– نسخه عددی است که نرمافزار بیت کوین را نشان میدهد؛
- هش بلاک قبلی– که شامل هشی است که در بلاک قبلی درج شدهاست.
- روت مرکل (Root Merkle) – این هش نشاندهنده تمام تراکنشهای موجود در هر بلاک است.
- نقشه زمانی- زمان استخراج بلاک را نشان میدهد.
- هش هدف– الگوریتم اثبات عمل برای استخراج بیت کوین است.
- نانس– متغیری است که برای به دست آمدن اثبات عمل به کار گرفته میشود.

همانطور که در تصویر بالا مشاهده میشود به منظور ایجاد هش بلاک قبلی ماینر باید هدر بلاک قبلی را دوبار در الگوریتم SHA-256 قرار دهد. این عملیات با نام الگوریتم دوگانه SHA-256 نیز شناخته میشود.
الگوریتم SHA-256 برای ایجاد روت مرکل نیز به کار گرفته میشود. این روت در ادامه وارد هدر بلاک میشود. به دنبال موفقیت این الگوریتم در ایجاد بلاک جدید، ماینر آماده شروع پروسه استخراج است و قابلیتهای بعدی الگوریتم SHA-256 به خوبی نمایان میشود. در این بخش، قسمت دیگری از هدر بلاک ایجاد میشود که نانس نام دارد. نانس متغیری است که مدام در حال تغییر است و به دنبال هش گذاری هدر بلاک با استفاده از الگوریتم SHA-256 اگر هش به دست آمده کمتر از هش هدف باشد ماینر در استخراج موفق بوده است.
به عنوان مثال اگر مقدار متغیر نانس برابر با «۱۲۳۴۵» باشد. این عدد در کنار دیگر گزینهای موجود در هدر بلاک افزوده میشود که پیشتر به آن اشاره شد. هدر بلاک در ادامه هش میشود، اگر هش به دست آمده از هش هدف بیشتر باشد ماینر باید مجددا برای تخمین هش وارد عمل شود. در این حالت ماینر متغیر نانس را تغییر میدهد و به عنوان مثال عدد «۹۰۸۷۲» را انتخاب و در هدر بلاک و در کنار دیگر متغیرهای ثابت موجود در بلاک منبع قرار میدهد. اگر هش به دست آمده کمتر از هش هدف باشد، ماینر باید منتظر تایید هش از سوی شبکه بماند. به این ترتیب ماینر با موفقیت بلاک را استخراج میکند.
ایجاد آدرسهای بیت کوین
به منظور ایجاد آدرس بلاک، کلید خصوصی ایجاد میشود که مجموعهای از اعداد است که به صورت تصادفی انتخاب شدهاند. کلید عمومی نیز در ادامه در الگوریتمهای SHA-256 و RIPEMD160 استفاده میشود. فرمول مورد استفاده به شرح زیر است.
اگر K کلید عمومی و A آدرس بیت کوین باشد، آنگاه:
(A=RIPEMD160(SHA-256K
کاربرد الگویتم SHA-256 و RIPEMD160 برای ایجاد آدرس بیت کوین یک مزیت کلی را در پی دارد.
آدرسهای کوتاهتر
کلید عمومی طولی برابر با ۲۵۶ بیت دارد درحالی که آدرس بیت کوین نسخه هش شدهای است که ۱۶۰ بیت طول دارد. این امر راحتی بیشتری را برای کاربران به همراه دارد. چرا که طول کاراکترهای مورد استفاده در آدرس کوتاهتر است.
در پایان الگوریتم هش گذاری SHA-256 بخشی جدانشدنی از پروتکل بیت کوین است. این الگوریتم در موارد گوناگونی از این تکنولوژی جدید به کار گرفته شدهاست. به عنوان مثال در استخراج بیت کوین، در رویت مرکل و در ایجاد آدرسهای بیت کوین.
منبع: Mycryptopedia