آنچه در این مقاله خواهید خواند
ای تی هش الگوریتم اثبات کار استخراج اتریوم بود. اکنون و با تکمیل آپگرید مرج (Merge) این شبکه، اتریوم به اثبات سهام مهاجرت کرده است و دیگر از الگوی اثبات کار برای ماینینگ استفاده نمیکند. الگوریتم رمزنگاری Ethash در واقع نسخه بهبودیافته الگویی بهنام دگر-هاشیموتو (Dagger-Hashimoto) است. از الگوریتم ایتی هش هنوز هم برای استخراج ارزهای دیجیتال روی دیگر شبکههای اثبات کار غیر اتریومی استفاده میشود.
علاوه بر این، الگوریتم اثبات کار ایتی هش مموری هارد (Memory Hard) است، به این معنا که در برابر دستگاههای اسیک ماینر مقاومت دارد. در رمزنگاری، تابع مموری هارد (MHF) تابعی است که برای محاسبه به مقدار حافظه بالایی نیاز دارد. البته نهایتا دستگاههای اسیک ای تی هش اتریوم توسعه داده شدند، اما ماینینگ با کارت گرافیک همچنان گزینه بهتری برای این بلاک چین بود.
الگوریتم Ethash چیست؟
ایتی هش یک الگوریتم استخراج اثبات کار (Proof of Work) است که پیش از مهاجرت اتریوم به الگوی اثبات سهام، از آن برای ماینینگ اتر و دیگر ارزهای مبتنی بر این شبکه استفاده میشد. Ethash جایگزین الگوی قدیمیتر اتریوم بهنام دگر-هاشیموتو محسوب میشود. با این حال، توسعه بیشتر هر دوی این مکانیزمها باعث تمایز شدید آنها شده است.
ای تی هش از توابع هشینگ “Keccak-256” و “Keccak-512” استفاده میکند که بهخاطر توسعه همزمان استانداردهای رمزنگاری SHA-3 با توسعه Ethash، تا حدودی باعث سردرگمی کاربران شده است.
SHA-3 بخشی از خانواده رمزنگاری بزرگ Keccak است که آن را مترادف SHA-3 مینامند. گاهی اوقات، به توابع هشینگ ایتی هش “sha3-256” و “sha-512” هم میگویند، اما دقت داشته باشید که نسخه Keccak اتریوم یک الگوریتم هش SHA-3 استاندارد نیست. برای درک بهتر نحوه کار این الگوریتم، ابتدا باید با دگر-هاشیموتو و تاریخچه تولد آن آشنا شویم.
تاریخچه الگوریتم Ethash
دگر هاشیموتو را میتوانیم الگوی استخراج پایهای برای تولد ایتی هش بدانیم. این الگوریتم بهدنبال ساخت سیستمی امن بر 2 مبنا بود:
- مقاومت در برابر اسیک ماینینگ
- کارایی بالا و دسترسی بسیار آسان برای کلاینتهای سبک
این دو مبنا برای عملیات الگوریتم Dagger-Hashimoto بنیادین هستند. مغزهای متفکر پشت ساخت این الگوریتم ویتالیک بوترین (Vitalik Buterin) و تادئوس درایجا (Thaddeus Dryja) بودند که بین سالهای 2013 و 2014 برای توسعه آن با یکدیگر همکاری کردند. همانطور که از نامش پیداست، دگر-هاشیموتو در واقع ترکیبی از دو الگوی متفاوت است.
دگر که از فناوری گراف جهت دار غیر مدور (DAG) برای ایجاد ساختار داده بزرگ استفاده میکند، توسط آقای بوترین معرفی شد. در ابتدا، این ساختار کمی بیشتر از 1 گیگابایت ظرفیت ذخیرهسازی داشت، اما در حال حاضر توانایی ذخیره کردن حدود 4 تا 5 گیگابایت داده را در خود دارد. در این ساختار، یک سری از محاسبات مموری و حافظه صورت میگیرد که سطح بالایی از کار را میطلبد. این ساختار همان چیزی است که انجام فرآیند ماینینگ توسط الگوریتم هاشیموتو را امکانپذیر میسازد.
قسمت دوم این الگوریتم یعنی هاشیموتو که توسط آقای درایجا توسعه داده شد، کار مقاومت در برابر اسیک ماینینگ و استخراج هش را انجام میدهد. این هدف با مصرف بالای RAM توسط الگوریتم حاصل میشود که یکی از محدودیتهای اسیک ماینرها بهشمار میرود. اساسا، کار هاشیموتو استفاده از دگ تولیدشده، اضافه کردن اطلاعات شبکه درباره سختی و تراکنشها و تولید یک هش است که بهعنوان شناساگر بلاک استخراجشده عمل میکند.
با ترکیب این دو الگوریتم، به یک مکانیزم واحد میرسیم که اجازه طراحی یک سیستم ماینینگ بهاندازه کافی پیچیده برای اسیک ماینرها جهت کارکرد مقرونبهصرفه را به ما میدهد. این ساختار بهقدری پیشرفته و امن است که قرار بود بهعنوان جایگزینی برای الگوریتم اسکریپت (Scrypt) پیادهسازی شود. با این وجود، نواقص دگر-هاشیموتو باعث شد توسعه و تکامل آن به طراحی الگوریتم Ethash منجر شد.
هدف از توسعه ای تی هش
همانطور که گقتیم، الگوریتم رمزنگاری Ethash با تمرکز شدید بر مقاومت در برابر دستگاههای اسیک ماینر (ASIC) طراحی شد، اما محبوبیت بالای اتریوم (رمز ارز اصلی مبتنی بر الگوی ایتی هش)، علاقه توسعهدهندگان دستگاههای اسیک به ساخت ماینرهای سازگار با این الگوریتم را بهدنبال داشت. نهایتا، در آوریل 2018 (فروردین 97)، اولین اسیک ماینر Ethash توسط شرکت بیتمین معرفی شد. با این وجود، جامعه پروژه اتریوم شدیدا مخالف تسلط اسیک ماینرها بر این شبکه بودند، بهطوری که این اتفاق منجر به شروع گفتگوهای پیرامون جلوگیری و اصطلاحا “Bricking” بهمعنای «آجر کاری» قابلیت استفاده از آنها برای استخراج این رمز ارز شد.
در ادبیات ماینینگ، “Bricking” یا «آجر کاری» یعنی اعمال آپگریدهای فنی بر شبکه که باعث عدمکارایی یا حتی خرابی دستگاه در صورت اتصال به آن میشود. چنین پیشنهاداتی، اسیک ماینرها را به توقف فعالیت و کاهش قدرت هشینگشان وادار کرد. بنابراین، برنامههای اتریوم برای تغییر فناوری استخراج رمز ارز خود و مهاجرت از اثبات کار به اثبات سهام، ساخت اسیک ماینرهای سازگار با ایتی هش را برای تولیدکنندگان بسیار پرخطر کرده است.
ویژگیهای الگوریتم Ethash
از جمله ویژگیهای الگوریتم ای تی هش عبارتند از:
- وابستگی بسیار زیاد به حافظه RAM و مصرف بالای پهنای باند: این قابلیت یک قدم امنیتی در برابر اسیکها و گام پایهای برای عملکرد درست الگوریتم Ethash است. این عملیات به ساخت دگ نیاز دارد و کَش یا همان حافظه پنهان (Cache) این الگو بسیار به این ویژگی وابسته است.
- سازگار با GPU: همانطور که میدانید، کارتهای گرافیک یا GPUهای فعلی ظرفیت بالایی دارند. در واقع، حرکت گرافیک در بازیهای امروزی به مقدار بالایی حافظه ذخیرهسازی و فرآیندهای موازی بیبدیل نیاز دارد. این ویژگی از آنجایی که اجازه ذخیره کل دگ در حافطه GPU را بهشما میدهد و همچنین تمام محاسبات را در یک فضای کاری با سرعت فوق بالا انجام میدهد، در صورت استخراج ارز دیجیتال توسط الگوریتم ایتی هش یک نقطه قوت محسوب میشود. در نتیجه، شما توانایی ماین کردن سریعتر رمز ارزها را دارید.
- ارائه قابلیتهای اعتبارسنجی عالی برای کلاینتهای سبک: با یک رم 16MB میتوان یک کلاینت سبک توانمند در اعتبارسنجی سریع و ساده تراکنشها ساخت. علاوه بر این، یک کلاینت سبک با استفاده از ایتی هش قادر به اجرای فرآیند اعتبارسنجی زیر 30 ثانیه است.
مزایا و معایب الگوریتم ایتی هش
از جمله مزایا و معایب الگوی ای تی هش میتوان موارد زیر را نام برد:
- پیادهسازی این الگوریتم ساده و امن است و در خصوص مقاومت در برابر دستگاههای اسیک کارایی خوبی دارد.
- استفاده از ساختار دگ در حافظه، کش و تابع Keccak، این الگو را به فرآیندی مقرونبهصرفه در تولید بلاکها تبدیل کرده است. به لطف این ویژگی، اتریوم میتواند یک زمان تولید قابل تنظیم متناسب با نیاز شبکه داشته باشد که همیشه بهدنبال ایجاد توازن بین امنیت و مقیاس پذیری است.
- مصرف بالای حافظه توسط ساختار دگ، استخراج توسط تجهیزات ساده را دشوار میکند.
- نحوه مقیاس پذیری سختی این الگوریتم، اتریوم را به لبه «عصر یخبندان» نزدیک کرده بود. عصر یخبندان نقطهای است که سختی الگوی ایتی هش، استخراج رمز ارز توسط هر گونه ماینری را غیر ممکن میسازد. این امر یک ریسک امنیتی بسیار بالا محسوب میشود.
- مقاومت در برابر اسیک ماینرها در سال 2018 شکسته شد و بیتمین اولین ماینر Ethash خود را تولید کرد. از آن زمان تا کنون، مکانیزمهایی برای جلوگیری از تمرکزگرایی بیشتر استخراج اتریوم مطرح شد. با این حال، توسعه اتریوم 2 و حذف اثبات کار باعث آغاز استفاده از اثبات سهام و استیکینگ این ارز دیجیتال شده است.
برای استخراج اتریوم از طریق Ethash به چه دستگاهی نیاز است؟
همانطور که تا به اینجای مطلب متوجه شدید، بهترین نوع سخت افزاری برای استخراج اتریوم در زنجیره جدید یعنی ETHW مبتنی بر الگوریتم ای تی هش، GPU است. گفتنی است زنجیره اثبات کار اتریوم (ETHW) یک هاردفورک از بلاک چین اصلی است که توسط مخالفان مهاجرت Ethereum به الگوریتم PoS راهاندازی شد. ارزش هر واحد و حجم خرید و فروش اتریوم جدید در ابتدا بالا بود، اما خیلی زود سقوط کرد که نشاندهنده جامعه کوچک طرفداران این زنجیره است.
البته امروزه دستگاههای اسیک ماینری در برندهای مختلف نظیر انکسماینر (AnexMiner)، جسماینر (Jasminer) و اینوسیلیکون (Innosilicon) با هش ریتهای مختلف به بازار عرضه شدهاند. علاوه بر این، از این دستگاهها میتوان برای استخراج دیگر ارزهای دیجیتال مبتنی بر این الگوریتم استفاده کرد.
الگوریتم Ethash چگونه کار میکند؟
مموری هاردنس (Memory Hardness) یا سختی حافظه که توسط یک الگوریتم اثبات کار بهدست میآید، ویژگی است که به انتخاب زیرمجموعههایی از یک منبع ثابت وابسته به نانس و عنوان یا همان هدر بلاک (Block Header) نیاز دارد. به این منبع (دارای اندازه چند گیگابایتی)، دگ (DAG) میگویند. این دگ هر 30,000 بلاک یا تقریبا هر 125 ساعت یکبار که یک ایپاک (Epoch – معادل تقریبا 2.5 روز) یا عصر نام دارد و تولید آن مدتی زمان میبرد، تغییر میکند.
از آنجایی که دگ تنها به ارتفاع بلاک متکی است، امکان پیشتولید آن وجود دارد، اما کلاینتها برای تولید بلاکهای خود الزامی به انتظار برای اتمام این فرآیند ندارند. با این وجود، اگر کلاینتها به پیشتولید و کش کردن دگها زودتر از زمان موعد نپردازند، احتمال تاخیر عظیم در تولید بلاکهای شبکه در هر ایپاک وجود دارد. شایان ذکر است که برای اعتبارسنجی اثبات کار به تولید دگ نیازی نیست و امکان اعتبارسنجی با هر دوی CPU پایین و حافظه کم نیز وجود دارد.
مراحل انجام کار الگوریتم ای تی هش بهصورت زیر است:
- یک سید (Seed) وجود دارد که میتوان آن را با اسکن کردن و پویش هدر کل بلاکها محاسبه کرد.
- از این سید، امکان محاسبه یک کش شبهتصادفی 16 مگابایتی وجود دارد. کلاینتهای سبک این کش را ذخیره میکنند.
- از این کش، میتوان یک دیتا سِت (Dateset) یا مجموعه داده 1 گیگابایتی با این خصیصه که هر آیتم درون این دیتاست به تنها تعداد کمی از آیتمهای حاصل از کش وابسته باشد، تولید کرد. کلاینتهای کامل (Full Client) و ماینرها این مجموعه داده را ذخیره کرده و اندازه آن بهصورت خطی با گذر زمان افزایش مییاید.
- ماینینگ شامل برداشتن تکههای تصادفی از این دیتا ست و هش کردن آنها با یکدیگر است. امکان اعتبارسنجی با حافظه کم نیز با استفاده از کش جهت تولید تکههای خاص مورد نیاز دیتاست وجود دارد. بنابراین شما صرفا ملزم به ذخیره این کش هستید.
نهاتیا دیتاست بزرگ هر 30,000 بلاک آپدیت میشود. بنابراین قسمت اعظمی از کار ماینرها خواندن این مجموعه داده است، نه تغییر آن.
اکنون که با مراحل و نحوه کار الگوریتم Ethash برای استخراج اتریوم آشنا شدید، به بررسی موارد فنی و کدنویسیهای آن میپردازیم.
تعاریف
تعاریف زیر را برای درک کدنویسیهای الگوریتم ای تی هش باید بدانید:
WORD_BYTES = 4 #بایتهای کلمه DATASET_BYTES_INIT = 2**30 #بایتهای دیتاست در آغاز DATASET_BYTES_GROWTH = 2**23 #رشد دیتاست در هر ایپاک CACHE_BYTES_INIT = 2**24 #بایتهای کش در آغاز CACHE_BYTES_GROWTH = 2**17 #رشد کش در هر ایپاک CACHE_MULTIPLIER=1024 #اندازه دگ متناسب با کش EPOCH_LENGTH = 30000 #بلاکها در هر ایپاک MIX_BYTES = 128 #پهنای میکس HASH_BYTES = 64 #طول هش بهصورت بایت DATASET_PARENTS = 256 #تعداد والدین هر عنصر دیتاست CACHE_ROUNDS = 3 #تعداد دور هر تولید کش ACCESSES = 64 #تعداد دسترسیها در حلقه هاشیموتو
پارامترها
پارامترهای کش و دیتاست الگوریتم ایتی هش به شماره بلاک بستگی دارد. اندازه کش و دیتاست نیز بهصورت خطی رشد میکند. با این وجود، برای کاهش ریسک قاعدههای تصادفی که ممکن است به رفتار چرخهای منجر شود، همیشه بالاترین مقدار اولیه زیر آستانه رشد خطی را در نظر میگیریم.
def get_cache_size(block_number): sz = CACHE_BYTES_INIT + CACHE_BYTES_GROWTH * (block_number // EPOCH_LENGTH) sz -= HASH_BYTES while not isprime(sz / HASH_BYTES): sz -= 2 * HASH_BYTES return sz def get_full_size(block_number): sz = DATASET_BYTES_INIT + DATASET_BYTES_GROWTH * (block_number // EPOCH_LENGTH) sz -= MIX_BYTES while not isprime(sz / MIX_BYTES): sz -= 2 * MIX_BYTES return sz
تولید کش
تابع تولید کش الگوریتم Ethash بهصورت زیر تعریف میشود:
def mkcache(cache_size, seed): n = cache_size // HASH_BYTES # Sequentially produce the initial dataset o = [sha3_512(seed)] for i in range(1, n): o.append(sha3_512(o[-1])) # Use a low-round version of randmemohash for _ in range(CACHE_ROUNDS): for i in range(n): v = o[i][0] % n o[i] = sha3_512(map(xor, o[(i-1+n) % n], o[v])) return o
فرآیند تولید کش به ترتیب شامل ابتدا پر کردن 32 مگابایت از حافظه و سپس، اجرای دو مرحله الگوریتم RandMemoHash است. خروجی این الگوریتم، یک مجموعه از 524288 مقادیر 64بایتی است.
تابع تجمیع داده
در برخی از موارد، از تابعی الهامگرفتهشده از هش FNV بهعنوان جایگزینی غیر مرتبط برای مقدار XOR استفاده میکنیم.
FNV_PRIME = 0x01000193 def fnv(v1, v2): return ((v1 * FNV_PRIME) ^ v2) % 2**32
محاسبه دیتا ست کامل
هر آیتم 64 بایتی در دیتاست کامل 1 گیگابایتی بهصورت زیر محاسبه میشود:
def calc_dataset_item(cache, i): n = len(cache) r = HASH_BYTES // WORD_BYTES # initialize the mix mix = copy.copy(cache[i % n]) mix[0] ^= i mix = sha3_512(mix) # fnv it with a lot of random cache nodes based on i for j in range(DATASET_PARENTS): cache_index = fnv(i ^ j, mix[j % r]) mix = map(fnv, mix, cache[cache_index % n]) return sha3_512(mix)
در واقع، اساسا دادههای حاصل از 256 نود کش انتخابی شبهتصادفی را گرفته و برای محاسبه نود دیتاست آنها را هش میکنیم. کل دیتاست نیز بهصورت توسط تابع زیر تولید میشود:
def calc_dataset(full_size, cache): return [calc_dataset_item(cache, i) for i in range(full_size // HASH_BYTES)]
حلقه اصلی
اکنون میتوانیم حلقه هاشیموتو-مانند اصلی را که در آن تجمیع داده حاصل از دیتاست کامل جهت تولید مقدار نهایی برای یک هدر و نانس خاص صورت میگیرد، مشخص کنیم.
در کد زیر، header همان هش SHA3-256 و نماینده RLP یک هدر کوتاهشده بلاک است؛ یعنی هدری که فیلدهای نانس و میکسهش را در خود ندارد. RLP مخفف Recursive Length Prefix و بهمعنای «سریالسازی پیشوند طول بازگشتی» است که در کلاینتهای اتریوم مورد استفاده قرار میگیرد. RLP انتقال داده بین نودها را در یک قالب مشخص و کارا استاندارد میکند.
نانس هم 8 بایت از یک عدد صحیح نامشخص 64 بیتی بهترتیب بیگ اندین یا اندین بزرگ (Big-endian) است. بنابراین مقدار nonce[::-1] در کد زیر نماینده اندین کوچک هش بایتی آن مقدار است:
def hashimoto(header, nonce, full_size, dataset_lookup): n = full_size / HASH_BYTES w = MIX_BYTES // WORD_BYTES mixhashes = MIX_BYTES / HASH_BYTES # combine header+nonce into a 64 byte seed s = sha3_512(header + nonce[::-1]) # start the mix with replicated s mix = [] for _ in range(MIX_BYTES / HASH_BYTES): mix.extend(s) # mix in random dataset nodes for i in range(ACCESSES): p = fnv(i ^ s[0], mix[i % w]) % (n // mixhashes) * mixhashes newdata = [] for j in range(MIX_BYTES / HASH_BYTES): newdata.extend(dataset_lookup(p + j)) mix = map(fnv, mix, newdata) # compress mix cmix = [] for i in range(0, len(mix), 4): cmix.append(fnv(fnv(fnv(mix[i], mix[i+1]), mix[i+2]), mix[i+3])) return { "mix digest": serialize_hash(cmix), "result": serialize_hash(sha3_256(s+cmix)) } def hashimoto_light(full_size, cache, header, nonce): return hashimoto(header, nonce, full_size, lambda x: calc_dataset_item(cache, x)) def hashimoto_full(full_size, dataset, header, nonce): return hashimoto(header, nonce, full_size, lambda x: dataset[x])
در کد بالا، در صورتی که خروجی الگوریتم زیر مقدار دلخواه هدف باشد، نانس معتبر خواهد بود. شایان ذکر است که کاربرد مضاعف SHA3-256 در انتها از وجود یک نانس واسط که میتوان از آن برای اثبات حداقل کار انجام شده استفاده کرد، اطمینان حاصل میکند. از این اعتبارسنجی PoW خارجی میتوان برای جلوگیری از حملات DDoS بهره برد. این امر همچنین تضمینی آماری از غیر مغرضانه و 256 بیتی بودن نتیجه نهایی است.
استخراج
الگوریتم ماینینگ در ای تی هش بهصورت زیر تعریف میشود:
def mine(full_size, dataset, header, difficulty): # zero-pad target to compare with hash on the same digit target = zpad(encode_int(2**256 // difficulty), 64)[::-1] from random import randint nonce = randint(0, 2**64) while hashimoto_full(full_size, dataset, header, nonce) > target: nonce = (nonce + 1) % 2**64 return nonce
تعریف هش سید
برای محاسبه هش سید که از آن برای ماین کردن یک بلاک استفاده میشود، از الگوریتم زیر استفاده میکنیم:
def get_seedhash(block): s = '\x00' * 32 for i in range(block.number // EPOCH_LENGTH): s = serialize_hash(sha3_256(s)) return s
چه ارزهایی از الگوریتم Ethash استفاده میکنند؟
بلاک چین اصلی برای استخراج از طریق الگوریتم ای تی هش، اتریوم بود، اما همانطور که میدانید، زنجیره اصلی این شبکه اکنون به اثبات سهام مهاجرت کرده و دیگر ماینینگ از طریق الگوریتم اثبات کار برای رمز ارز ETH قابل استفاده نیست. البته زنجیره دیگری پس از آپگرید مرج ایجاد شد که رمز ارز آن اکنون Ethereum Pow با نماد ETHW نام دارد. زنجیره اثبات کار اتریوم اکنون از الگوریتم ایتی هش برای استخراج استفاده میکند.
پس از نقص قرارداد هوشمند سازمان خودگردان متمرکز DAO روی این شبکه و فورک شدن آن، دو زنجیره مجزا ایجاد شد که نتیجه این امر، تولد اتریوم کلاسیک شد. این زنجیره نیز همچنان از همین الگوریتم برای ماینینگ بهره میبرد، ولی دیگر تحت حمایت تیم اصلی اتریوم نیست و شرکت توسعه اتریوم کلاسیک آن را پشتیبانی میکند.
علاوه بر این، اتریوم شبکه اصلی برای توسعه و پیادهسازی بسیاری از توکنهاست. آگور، بایتوم، استاتوس و بسیاری دیگر از پروژههای رمز ارزی مبتنی بر استاندارد ERC20 هستند و در واقع بهصورت بالقوه از الگوریتم اثبات کار Ethash استفاده میکنند. با این وجود، تنها برخی از این توکنهای ERC-20 برای ماینینگ تلاش کردهاند. بنابراین این ارزها نه تنها به اتریوم وابستهاند، بلکه بدون آن نیز قادر به حفظ عملکرد خود نیستند.
به استناد advfn.com، رمز ارزهای مستقل با بلاک چین مبتنی بر ایتی هش خود شامل موارد زیر است:
- اتریوم اثبات کار – ETHW
- اتریوم کلاسیک – ETC
- کالیستو نتورک – CLO
- متاورس انتروپی – ETP
- اکسپنس – EXP
- میوزیکوین – MUSIC
- یوبیک – UBIQ
- المنترم – ELE
- دکس کوین DAXX
- ای تی اچ او پروتکل – ETHO
- اکروما – AKA
- وال کوین – WHL
- الایسم – ELLA
- بیت کویین (Bitcoiin) – B2G
- اتئوس – ATH
- فایو استار کوین – FSC
- مواک – MOAC
- هالو پلتفرم – HALO
- اتر زیرو – ETZ
- تی سی سی – TXXC
- پیرل – PIRL
- امت بی جی – EBG
- اتریوم فاگ – ETF
- دش گلد – DSG
- اتر سوشال – ESN
سخن پایانی
الگوریتم Ethash الگوی ماینینگ اصلی شبکه اتریوم بود که پیش از مهاجرت از اثبات کار به اثبات سهام، از آن برای استخراج رمز ارز اتر استفاده میشد. طی این سالها، قیمت اتریوم فراز و نشیبهای زیادی بههمراه داشته است که با تغییر الگوریتم ای تی هش به استیکینگ، درصدد جذب کاربران بیشتر است. علاوه بر اتریوم، از الگوریتم ماینینگ ایتی هش برای استخراج دیگر ارزهای بلاک چینی نظیر اتریوم اثبات کار، اتریوم کلاسیک، اتر سوشال، هالو و بسیاری دیگر استفاده میشود.
تهیه شده در بیت 24