هش ریت (Hash rate) چیست؟

هش ریت بیت کوین

هش ریت (به انگلیسی: Hash rate) در واقع تعداد عملیات هشینگ در ماینینگ بیت کوین است و هش ریت سرعت عملکرد دستگاه ماینینگ را مشخص می‌کند.

ماینینگ

در دنیای رمزارزها یکی از بخش‌های جذاب و درآمدزا ماینینگ یا همان استخراج رمزارز است. جزییات ماینینگ را در مطالب جداگانه توضیح داده ایم. محض یادآوری چند نکته اساسی را مجددا بررسی می‌کنیم.

رمزارزهای مختلف می توانند استخراج های گوناگون یا مشابه داشته باشند. اما به طور کلی دو نوع اثبات کار یا Proof of Work و اثبات سهام Proof of Stake تقریبا همه رمزارزها رو پوشش می‌دهد. در بیت کوین استخراج از طریق اثبات کار انجام می‌گیرد. رمزارز های مشتق شده از بیت کوین تقریبا همگی بر پایه اثبات کار استخراج می‌شوند.


اثبات کار

اثبات کار چیست؟ در نظر بگیرید شما قرار است به ازای انجام یک کار ساده مانند تایید یک فرم که برای افراد دیگری بسیار مهم است پول پرداخت کنید. امکان بررسی فرم‌ها وجود دارد به دلیل تعداد زیاد نفراتی که همان فرم را می توانند در آن واحد ببینند.

تا زمانی که افراد بدون مشکل و با بررسی صحیح و صادقانه فرم‌ها را بررسی و پول دریافت کنند مشکلی نیست. حالا فرض کنید یکی (یا همه!) این افراد تایید کننده، این فرم ها را بدون بررسی صحیح و درست، تایید و از شما طلب پول کند.

شما هم بر اساس اطمینان (بررسی مجدد فرمها ایده اصلی ارایه فرم ها به شخص دیگر را بی معنی می‌کند.) پول را می‌پردازید. بعد از مدتی تمام فرم ها غلط خواهند بود و بعضی‌ها هم در فرم ها تقلب می‌کنند و فرم ها را به نفع خود تغییر می‌دهند. برای جلوگیری از این کار چه کاری باید انجام داد؟

ایده کلی ساده است: برای انجام کار ساده و پاداش آن، یک مسابقه سخت ترتیب می‌دهید. به این ترتیب اولین کسی که بتواند موضوع این مسابقه را پشت سر بگذارد و مورد قبول دیگر شرکت کننده‌ها قرار بگیرد، برنده پاداش انجام کار ساده خواهد بود.

لازم است برای اینکه تقلب صورت نگیرد، این کار ساده توسط دیگران نیز تایید شود. در بیت کوین این کار ساده تایید تراکنش‌ها است و مسابقه سخت حل مساله ای ریاضی است که منجر به تولید یک بلوک جدید برای بیت کوین می‌شود.

مسئله ریاضی

این مسئله یافتن یک عدد کوچکتر یا مساوی با یک عدد مشخص است. خیلی ساده به نظر میرسد این طور نیست؟ حالا به جزییات می‌پردازیم: آن عدد مشخص یک عدد تصادفی خواهد بود و آن عددی که به دنبال آن هستیم از طریق یک تابع به دست می‌آید.

ورودی این تابع عددی است که در بلوک قبلی پیدا شده و تقریبا تمام اطلاعات موجود در بلوک جدید + عددی ازداد از 0 تا عدد 2256 یا تقریبا 1077x 1.15. این تابع این اطلاعات را تبدیل به یک رشته ثابت عددی می‌کند که برای سادگی در مبنای 16 نوشته می‌شود. در مبنای 16 این رشته عددی ثابت 64 رقم دارد. (حروف a-f برای نمایش اعداد از10 تا 15 استفاده می‌شوند.)

به این رشته که از تابع فوق به دست می آید یک هش (هاشور) یا HASH گفته می‌شود. نام این تابع SHA 256 است.

الگوریتم SHA 256

یکی از الگوریتم های رمزنگاری (Encrypting) خانواده SHA-2 است که توسط آژانس امنیت ملی آمریکا تولید شده. است. این الگوریتم یک الگوریتم رمزنگاری یک طرفه است به این معنی که با داشتن نتیجه این الگوریتم نمی‌توان اطلاعات رمزگذاری شده را تولید کرد.

این الگوریتم با گرفتن هر مقدار دلخواهی از اعداد، کاراکتر ها و در واقع هر نوع داده دیجیتالی یک رشته ثابت عددی 32 بایتی (256 بیتی) را بر می‌گرداند.

معمولا این عدد را در مبنای 16 می نویسند تا فضای کمتری بگیرد. به این ترتیب رشته 64 رقم خواهد بود. این الگوریتم به کوچکترین تغییرات ( مثلا حروف بزگ و کوچک) در مقادیر ورودی حساس است و مقادیری متفاوت ارائه می‌کند.

به طور مثال به هش برگردانده شده از کلمه Hello و hello توجه کنید:
Hello hash: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
hello hash: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

ملاحظه می کنید که این دو ورودی بسیار مشابه (یک حرف کوچک و بزرگ) مقادیری بسیار متفاوت تولید می‌کنند.
شاید جالب باشد که بدانید خیلی از رمزهای شما در سایت‌ها معمولا با این الگوریتم یا الگوریتم های مشابه (که مقادیر بازگشتی با حجم کمتر داشته باشند) رمزنگاری و این کد هش تولید شده در سایت نگه‌داری می‌شود.

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

کوشش و خطا

حال که دیدیم چگونه هش ها تولید می‌شوند به مسئله ریاضی بر می‌گردیم. وقتی شبکه شروع به تلاش برای تولید بلوک جدید میکند این اتفاقات رخ می‌دهد.

کد هشی که بلوک قبلی تولید کرده را همراه با اطلاعات بلوک جدید که یک هش از محتویات بلوک اعم از تراکنش های داخل آن، مهر زمان (Timestamp) و ورژن بلوک را (این مقادیر ثابت هستند) به همراه عدد فرض فعلی (Nonce) به الگوریتم داده و جواب آن را با یک هش به نام هش هدف (Target Hash) که شبکه آن را تعیین می‌کند مقایسه می‌کنند.

در صورتی که این هش کوچکتر یا مساوی با هش هدف باشد بلوک جدید به دست آمده است در غیر اینصورت عدد فرضی (Nonce) بعدی را کنترل می‌کنند.

این کار تا زمانیکه به هشی کوچکتر یا مساوی با هش هدف برسند ادامه پیدا می‌کند. این عدد به شبکه اعلام می‌شود و باقی ماینرها آن را کنترل و قبول می‌کنند.

اولین کسی که این Nonce یا عددی که با آن هش کوچکتر یا مسای با هش هدف تولید کند را پیدا کند جایزه این بلوک را دریافت خواهد کرد. دقت کنید در اینجا هش برنده اولین هشی است که کوچکتر یا مساوی هش هدف باشد.

این موضوع که کسی بتواند هشی کوچکتر از هش برنده تولید کند اهمیتی ندارد و نزدیکی یا دور بودن از هدف ملاک نیست و زمان در این موضوع حیاتی است.


برای روشنتر شدن هش هدف شبکه بیت کوین در بلاک شماره 665756 به شکل زیر است:
0000000000000000000da8a10000000000000000000000000000000000000000

بلاک 665756 با هش زیر ماین شده:
00000000000000000000777edf32d724222e3dec1d834b85ed039c64e78bc54


به تعداد صفرهای ابتدای هر دو رشته توجه کنید: هش هدف 19 صفر و هش بلاک ماین شده 20 صفر دارد، پس هش بلاک از هش هدف کوچکتر است.

این بلوک با فرض عدد زیر (nonce) ماین شده:
Nonce: 2,167,440,570

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

سختی شبکه به وسیله یک تابع تنظیم کننده هر 2016 بلاک مجددا تنظیم می‌شود و سختی کاهش یا افزایش پیدا می‌کند.

هش ریت یا قدرت هش کردن شبکه

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

البته پایین بودن این توان در مقایسه با دستگاه‌هایی است که برای انجام یک عمل خاص طراحی و بهینه سازی شده اند این دستگاه ها به مدارهای مجتمع مختص عملیات خاص Application specific Integrated Circuits یا به اختصار ASIC نامیده می‌شوند.

این دستگاه‌ها با مصرف بسیار بالای برق و انرژی تعداد هش های زیادی تولید می‌کنند. به تعداد هش تولید شده در ثانیه توسط این دستگاه ها هش ریت گفته می‌شود.


پیشوند هایی برای نشان دادن این نرخ وجود دارد:
= 1تولید یک هش از الگوریتم.
Kilohash/s = 1.000 کیلو هش
Megahash = 1.000.000 مگا هش
Gigahash = 1.000.000.000 گیگا هش
Terahash = 1.000.000.000.000 ترا هش
Petahash = 1.000.000.000.000.000 پتا هش
Exahash = 1.000.000.000.000.000.000 اگزا هش

به مجموع هش ریت تمام دستگاه‌های موجود در شبکه هش ریت شبکه گفته می‌شود که فاکتور مهمی در تنظیم سختی شبکه است.

هر چه این مقدار بیشترباشد سختی شبکه بیشتر می‌شود. به علت زیاد شدن هش ریت موجود در شبکه بیت کوین واحد هش ریت در این شبکه Th/s یا تراهش می‌باشد. مقدار هش ریت شبکه بیت کوین در زمان نوشتن این مقاله حدود 140 میلیون تراهش است. یعنی حدود 140 اگزا هش.

توان مصرفی

توان مصرفی این ماینر ها بسیار بالاست به طوریکه تخمین زده اند برای تولید یک بیت کوین حدود 72000 گیگاوات برق مورد نیاز است (در صورت وجود قدرت کافی) برای درک بهتر این عدد بد نیست بدانید که تولید برق کل ایران در سال 98 حدود 82000 گیگاوات بوده است.

یکی از دغدغه هایی که به آرامی در حال ایجاد شدن است بحث مصرف انرژی یا برق این شبکه است که بخش بسیار کمی از آن از انرژی های تجدید پذیر و پاک تامین می‌شود و بخش زیادی از آن از سوخت های فسیلی یا اتمی تولید می‌شود که احتمالا به خطرات و زیان های آن ها واقف هستید.

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

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