الگوریتم های رمزنگاری (هش) ارزهای دیجیتال تا سال ۲۰۲۲
یک سوال مهم در دنیای رمزارزها وجود دارد که تقریباً همه دستکم یک بار آن را در گوگل جستجو کردهاند. از آن دسته سوالاتی که کریپتوبازان تازهکار را وادار میکند تمام روز و شب را بیدار بنشینند و چندین صفحهی وب را برای یافتن پاسخ از بالا تا پایین از نظر بگذرانند. این سوال باعث آغاز جنگهای کریپتو و بلاکچین بسیاری شده، اما همچنان بیپاسخ مانده است.
سوال این است که «الگوریتمهای هش رمزارزها» دقیقا چیست؟
قبل از اینکه به پاسخ این سوال بپردازیم، بیایید کمی درمورد رمزارز یا ارز فیات (پول بدون پشتوانه) صحبت کنیم.
رمزارز در واقع نوعی ارز محسوب میشود که به صورت غیرمتمرکز اداره شده و از رمزگذاری استفاده میکند. به عبارت ساده، هیچ بانک مرکزی یا دولتی بر این ارز نظارتی ندارد (غیرمتمرکز است).
رمزارز از آن جهت دیجیتال نامیده میشود که مجازی است و مانند پول فیزیکی و قابل لمس نیست؛ و از ویژگیهای امنیتی برای جلوگیری از جعل، انجام تراکنشهای امن و تولید واحدهای ارزی (یعنی تولید رمزارز) استفاده میکند.
اعتبار هر کوین کریپتو (یک واحد رمزارز) توسط یک بلاکچین (زنجیرهای از بلوکها) فراهم میشود. بلاکچین فهرستی از رکوردها (یا موارد ثبت شده) است که هر کدام از این رکوردها یک بلوک نامیده میشوند؛ این بلوکها به طور مکرر در حال رشد بوده و با استفاده از رمزنگاری به یکدیگر متصل و ایمن میشوند.
اکنون، ممکن است یک ذهنیت اولیه از اینکه رمزارز چیست، داشته باشید. رمزارزها از الگوریتمهای مختلفی به نام الگوریتمهای هش برخوردار هستند.
الگوریتمهای رمزارزها و توابع [ریاضی] هش، برای ایمن کردن تراکنشهای بلاکچین استفاده شده و جزء ضروری فرآیند استخراج کریپتو نیز هستند.
رمزنگاری یا هش چیست؟
رمزنگاری یا هش در واقع تابعی [ریاضی] است که وظیفهی آن تبدیل یک ورودی از حروف و اعداد به یک خروجی رمزگذاری شده با طول ثابت است. هش با استفاده از یک الگوریتم ایجاد شده و از نظر مدیریت بلاکچین در رمزارزها اهمیت دارد.
الگوریتم هش در رمزارزها چیست؟ آموزش الگوریتم های رمزنگاری
الگوریتم رمزارز (یا الگوریتم هش) مکانیزمی است که رمزارز یا ارز مجازی را رمزگذاری میکند. با توجه به اینکه امروزه تعداد رمزارزها از تعداد الگوریتمهای موجود بیشتر است، میتوان از برخی الگوریتمها در چندین رمزارز استفاده کرد.
ماینرها این الگوریتم را رمزگشایی میکنند (مانند همان کاری که دستگاه قدرتمند Seek Hash انجام میدهد.) اگر این رمزگشایی موفقیتآمیز باشد، آنگاه بلوک جدید ایجاد میشود. رکورد تراکنش انجام شده در این بلوک ذخیره شده و به این ترتیب یک بلوک دیگر به بلاکچین افزوده میشود.
در نتیجه، ماینرها کار موردِنیاز برای افزودن بلوکهای جدید به بلاکچین را انجام داده و در ازای این کار پاداش دریافت میکنند. رمزگشایی با کمک الگوریتم، این مجموعهی تصادفی از دادهها را به یک توالی اولیه از دادهها تبدیل کرده و فعالیتِ رمزارز را ممکن میسازد. نتیجهی حاصل از این عملیاتِ محاسباتیِ ماینرها «هش» نامیده میشود.
الگوریتم هش در واقع یک تابع [ریاضی] رمزنگاری است که وظیفهی آن تبدیل دادههایی با اندازهی دلخواه (با هر سایز یا اندازهای) به یک هش با اندازهای ثابت است. (به عبارت دیگر فرقی ندارد که دادهی ارائه شده به الگوریتم چه سایزی داشته باشد، در هر صورت، هش حاصله یک اندازهی ثابت خواهد داشت.) از الگوریتم هش، برای امضای دیجیتال و احراز هویت استفاده میشود.
الگوریتم اجماع بلاکچین چیست؟
الگوریتمهای اجماع، در بلاکچین هر کدام از رمزارزها بخش مهمی محسوب میشوند؛ بهطوریکه، وظیفهی این الگوریتمها اطمینان حاصل کردن از رعایت پروتکلها یا قوانین بلاکچین است. از شناخته شدهترین الگوریتمها، میتوان به POW (گواه اثبات کار) یا POS (گواه اثبات سهام) اشاره کرد.
هشینگ چگونه کار میکند؟
بلاکچین ها قبل از اینکه هر تراکنش را در قالب بلوک ها گروهبندی کنند، از آنها هش تهیه میکنند. اشارهگرهای هش، هر بلوک را با نگه داشتن هشی از دادههای بلوک قبلی، به آن پیوند میدهند. از آنجایی که هر بلوک به بلوک قبلی خود وصل است، دادههای موجود در بلاکچین تغییرناپذیر است.
عملکرد هش به این صورت است که تغییر در هر تراکنش، یک هشِ کاملاً متفاوت ایجاد میکند که هشِ تمام بلوکهای بعدی را تغییر میدهد. برای اینکه تغییری در سراسر بلاکچین ایجاد شود، 51 درصد از شبکه باید با آن موافقت کنند. اصطلاح «حملهی 51 درصدی» براساس همین واقعیت شکل گرفته است.
بلاکچینهای مختلف از الگوریتمهای رمزنگاری متفاوتی استفاده میکنند. بلاکچین بیتکوین از الگوریتم SHA-256 استفاده میکند که هش 32 بایتی (256 بیتی) تولید میکند. لایتکوین و دوجکوین هر دو از الگوریتم اسکریپت استفاده میکنند که یکی از سریعترین و سبکترین الگوریتمهای رمزنگاری است.
رمزنگاری (کریپتوگرافی) مطالعهی روشمند پیچیده و دقیق مربوط به بخشی از دنیای مادی (فیزیکی) است که به حوزهی فناوری بلاکچین نیز راه یافته است.
انواع مختلفی از الگوریتمهای هش رمزارز شامل این موارد هستند:
- SHA-256
- Skein-SHA2
- Scrypt
- X11
- SHA-256d
- NeoScrypt
- X13
- Quark
- Multi-algorithm
- CryptoNight
- Lyra2Z
- Ethash
- X16R
- Equihash 200_9
- Nist5
- Lyra2REv2
- Xevan
- Skein
- C11
- CryptoNightV7
- HMQ1725
- Equihash144_5 (ZHash)
- Qubit
- BLAKE-256
- DaggerHashimoto
- CryptoNight-Custom
- CryptoNightLiteV1
- X16S
- SkunkHash
- BLAKE2s
- CryptoNightHeavy
- Tribus
- X15
- Scrypt-N
- Scrypt-ChaCha
- X14
- Keccak
- PHI1612
- Argon2
- Lyra2REv3
- Yescrypt
- CryptoNightFast
- PHI2
- YescryptR32
- Argon2d
- Equihash 192_7
- Lyra2z330
- YescryptR16
- Shabal256
- Allium
- YesPoWer
- X21S
- Fresh
- Pascal (Random Hash)
- BLAKE2b
- X11Binarium
- VerusHash 2.0
- MTP
- HEX
- Tensority
- SoftCrypton
- CryptoHello
- A5A v2
- X11Evo
- Argon2i
- BTHash
- Polytimos
- TimeTravel
- Prime Constellation
- Aergo
- pGap
- MD5
- SonoA
- Balloon Hashing
- SHA-256T
- ProgPoW
- X11Spread
- Scrypt²
- Exosis
- LBK3
- TimeTravel10
- Lyra2Zoin
- CryptoNightLite
- UBQhash
- LBRY
- BCD
- SHA-224
- Cunningham chains
- Dcrypt
- Equihash 210_9
- Grøstl-512
- Lyra2RE
- DEDAL
- Lyra2vc0ban
- Prime Six
برخی از مهمترین الگوریتمهای هش که در بسیاری از رمزارزها استفاده میشوند را در اینجا توضیح میدهیم:
الگوریتم SHA-256
الگوریتم SHA برای اولین بار توسط آژانس امنیت ملی ایالات متحده در سال 2002 توسعه یافت. در سال 2009، گواه اثبات کار SHA-256 در بیتکوین و بعداً در سایر رمزارزهای مشابه به کار گرفته شد.
الگوریتم SHA-256 یک هش 256 بیتی را ایجاد میکند. سرعت و کارایی رمزگشایی یک ماینر براساس قدرت پردازش آن تعیین میگردد.
احتمال جستجوی هش با نسبت قدرت پردازش ماینر به قدرت کل شبکه برابر است. به همین دلیل است که تجهیزات ویژهای برای بهبود بخشیدن به قدرت استخراج (ماینینگ) عرضه شدند؛ که ماینرهای ایسیک از این دسته هستند.
ایسیک، استخراج بیتکوین را در انحصار خود درآورد و این کار را برای طیف وسیعی از کاربران عادی غیرممکن یا دستکم نسبتاً دشوار کرد.
الگوریتم SHA -256 در استخراج (ماینینگ) موارد زیر استفاده میشود:
- BitcoinCash (BCH)
- Bitcoin (BTC)
- 21Coin (21)
- Peercoin (PPC)
- Namecoin (NMC)
- Unobtanium (UNO)
- Betacoin (BET)
- Bytecoin (BTE)
- Joulecoin (XJO)
- Devcoin (DVC)
- Ixcoin (IXC)
- Terracoin (TRC)
- Battlecoin (BCX)
- Takeicoin (TAK)
- PetroDollar (P$)
- Benjamins (BEN)
- Globe (GLB)
- Unicoin (UNIC)
- Snowcoin (SNC)
- Zetacoin (ZET)
- Titcoin (TIT)
الگوریتم اسکریپت (Scrypt)
در حال حاضر الگوریتم اسکریپت به همراه SHA-256 یکی از محبوبترین الگوریتمهای هش از نوع گواه اثبات کار است. این الگوریتم در حال حاضر در لایتکوین، دوجکوین و سایر رمزارزها استفاده میشود.
با توجه به اینکه این الگوریتم به حافظه زیادی در تجهیزات ماینینگ نیاز دارد، الگوریتم پیچیدهتری محسوب میگردد و این مشکلی بزرگ در ماینرهای اِیسیک بود.
هدف اسکریپت جلوگیری از انحصار ماینینگ توسط اِیسیک بود، که در ابتدا واقعاً نتیجه نیز داد. اما امروزه از تجهیزات اِیسیک، که کمتر در دسترس همه قرار دارد، برای استخراج ارزهای رمزنگاری شده با الگوریتم اسکریپت نیز استفاده میشود.
سرعت هش الگوریتم اسکریپت با واحد KH/s اندازهگیری میشود: که همان کیلوهش در ثانیه است؛ هر کیلوهش در ثانیه برابر است با محاسبهی هزار هش در ثانیه.
الگوریتم اسکریپت (Scrypt) برای استخراج موارد زیر استفاده میشود:
- Litecoin (LTC)
- Dogecoin (DOGE)
- Novacoin (NVC)
- WorldCoin (WDC)
- Latium (LAT)
- FeatherCoin (FRC)
- Bitmark (BTM)
- TagCoin (TAG)
- Ekrona (KRN)
- MidasCoin (MID)
- DigitalCoin (DGC)
- Elacoin (ELC)
- Anoncoin (ANC)
- PandaCoins (PND)
- GoldCoin (GLD)
الگوریتم کریپتونایت (Cryptonight)
یک الگوریتم گواه اثبات کار است. این الگوریتم برای پردازندههای کامپیوترهای معمولی مناسب است، و در حال حاضر، دستگاه خاصی برای ماینینگ [با این الگوریتم] وجود ندارد.
الگوریتم کریپتونایت در ابتدا در پایگاه کد کریپتونوت پیادهسازی شد. ماینینگ کریپتونایت در حال حاضر فقط با پردازندهی CPU امکانپذیر است.
برخلاف الگوریتم اسکریپت، الگوریتم کریپتونایت برای اضافه کردن هر بلوک جدید، به تمام بلوکهای قبلی وابسته است.
سرعت هش الگوریتم کریپتونایت نیز با واحد KH/s اندازهگیری میشود.
الگوریتم کریپتونایت (Cryptonight) برای ماینینگ موارد زیر استفاده میشود:
- Monero (XMR)
- Bytecoin (BCN)
- Boolberry (BBR)
- Dashcoin (DSH)
- DigitalNote (XDN)
- DarkNetCoin (DNC)
- FantomCoin (FCN)
- Pebblecoin (XPB)
- Quazarcoin (QCN)
الگوریتم ات هش (Ethash)
الگوریتم «خنجر هاشیوموتو» برای استخراج اتریوم (و بعداً اتریوم کلاسیک) فعال شد. این الگوریتم مربوط به اسکریپت بود، اما به حافظهی در دسترسِ بیشتری نیاز داشت. این ویژگی باعث شد تا ماینینگ اتریوم از اِیسیک در امان باقی بماند. این الگوریتم در ادامه پیشرفت کرده و ات هش نامیده شد.
برای ماینینگ اتریوم، کاربران این فرصت را دارند تا از کارت گرافیک (پردازندهی GPU) استفاده کنند. سرعت هش الگوریتم ات هش با مگاهش (میلیون هش) در ثانیه (MH/s) اندازهگیری میشود.
الگوریتم ات هش فقط برای اهداف ماینینگ استفاده شده و از الگوریتم هشِ گواه اثبات کار استفاده میکند که به طور اختصاصی برای و توسط اتریوم (ETH) ایجاد شده است.
دلیل اصلی ایجاد تابع ات هش از نوع گواه اثبات کار مقاومت در برابر ماشینهای ایسیک است. بله، الگوریتم استخراج ات هش مقاوم در برابر ایسیک بوده و نمیتوان از ایسیک برای استخراج براساس ات هش استفاده کرد؛ در عین حال، این الگوریتم به حافظهی بسیار زیادی نیاز دارد و فقط با استفاده از GPU قابلیت استخراج است.
الگوریتم ایکس-۱۱ (X11)
الگوریتم ایکس-۱۱ از ۱۱ الگوریتم مجزا استفاده میکند که با یکدیگر در ارتباط هستند، در نتیجه به عنوان الگوریتم هش زنجیرهای شناخته میشود. برای ایمنسازی رمزارز در شبکهی خود، الگوریتم ایکس-11 از محاسبات گواه اثبات کار استفاده میکند.
الگوریتم ایکس-۱۱ تنها به ۳۰ درصد وات کمتر نیاز دارد [و] چون ۳۵ تا ۵۰ درصد گرمای کمتری تولید کرده و خنکتر است، در نتیجه به لحاظ مصرف انرژی کارآمدتر بوده و بر اسکریپت ارجحتر میباشد. نرخ هش آن با مگا هش در ثانیه (MH/s) اندازهگیری میشود.
از الگوریتم رمزارز ایکس-۱۱ (X11) برای استخراج موارد زیر استفاده میشود:
- Achilles (ACH)
- AdzCoin (ADZ)
- Badgercoin (BDG)
- BankCoin (BANK)
- Bantam (BNT)
- Capricoin (CPC)
- CereiPayCoin (CRPC)
- Checkcoin (CKC)
- ChipCoin (CHIP)
- Conspiracycoin (CYC)
- CryptCoin (CRYPT)
- DarkCash (DRKC)
- Dash (DASH)
- DigitalPrice (DP)
- ESportsCoin (ESC)
- EuropeCoin (ERC)
- Fractalcoin (FRAC)
- Givecoin (GIVE)
الگوریتم پیواکس (PIVX)
الگوریتم پیواکس (PIVX) نیز به دلیل استفاده از الگوریتمهای اجماع از نوعِ گواه اثبات سهام، نسبت به سایر رمزارزهای گواه اثبات کار مانند بیتکوین از نظر مصرف انرژی کارآمدتر است. به علاوه اینکه شبکهای از مسترنودها، بلاکچین پیواِکس را مدیریت میکنند.
مسترنودها شبکه را هدایت کرده و میتوانند درمورد تصمیماتی که در رابطه با توسعهی این رمزارز در آینده گرفته میشود، رای دهند. همچنین یک فضای ذخیرهسازی با سرمایهی شخصی در پیواِکس وجود دارد که بودجهای را برای توسعه جدید بلاکچین پیواِکس فراهم میکند.
الگوریتم اکوئی هش (Equihash)
پروتکل اکوئی هش به عنوان الگوریتم هش آن عمل میکند. این یک الگوریتم از نوع گواه اثبات کار نامتقارن و مبتنی بر حافظه است که کاملاً براساس «مسئلهی تاریخ تولد تعمیمیافته» استوار است.
این الگوریتم نیازمند حافظه رم خیلی بالایی بوده که به عنوان عاملی محدود کننده در تولید اثبات محسوب شده؛ این عامل محدود کننده برای جلوگیری از استفاده از ایسیک عمل نموده و در نتیجه با این الگوریتم نیز همانطور که درمورد اتریوم مطرح بود، نمیتوان از تجهیزات ماینینگ ایسیک برای استخراج استفاده نمود.