از آنجایی که ارزهای رمزنگاری شده عموما دارای ساختار غیرمتمرکزی (decentralized) هستند، بنابراین برای ادامه بقا به توزیع و تایید تراکنش ها به صورت غیرمتمرکز نیاز دارند.
ماینینگ یک نوع فرایند رقابتی است که برای اولین بار طی پروتکل SHA-256 شبکه بیت کوین به منظور ایجاد انگیزه برای پایداری شبکه و ایجاد بیت کوین جدید طراحی شد. به زبان ساده، ماینرها کامپیوترهایشان را به منظور تایید تراکنش ها در اختیار شبکه قرار میدهند و در ازای قدرت و فعالیت کامپیوترهایشان بهعنوان جایزه بیت کوین دریافت می کنند، به این عملیات اصطلاحاً ماینینگ گفته میشود.
به عنوان مثال در شبکه بیت کوین، ماینرها تراکنش های هر ۱۰ دقیقه را در بلاک هایی قرار میدهند و بلاک پس از تایید در بلاکچین ثبت میشود. که این روند تقریبا در تمام کوین هایی که روی بلاک چین قرار دارند و نیاز به تایید تراکنش از طریق قدرت پردازشی دارند به همین صورت هست.
Blockchain یعنی زنجیره ای از بلوک ها. در هر بلوک تعدادی تراکنش وجود دارد که این تراکنش ها با الگوریتم های hashing باید در هر بلاک قرار گیرند. الگوریتم های هشینگ یه سری توابع یک طرفه هستند. یعنی یک ورودی داریم و یک خروجی. یعنی از ورودی میشود به خروجی رسید ولی از خروجی نمی توان به ورودی این تابع رسید.
حال شما تصور کنید که جواب هر بلاک مشخص هست مثل یک تکه از پازل ولی باید تعدادی جواب را به صورت تصادفی آزمایش کنیم تا قطعه مناسب پازل مشخص شود. اینک جوابی که به دست می آوریم اگر با جواب بلاک یکی باشد یعنی ما آن بلاک را حل کردیم.
زمانی که یک بلاک حل میشود چه اتفاقی رخ میدهد؟
۱. همه تراکنش های داخل بلاک تایید میشوند و از خرج شدن مجدد پول هایی که از حساب ها خارج شده است جلوگیری بهعمل می آید (double spending)
۲. کامپیوتری که زودتر به جواب صحیح رسیده یک مقداری از آن کوین که جایزه بلاک (block reward) عنوان میشود را دریافت میکند. درون هر بلاک ممکن است تراکنش وجود داشته باشد یا نباشد ولی جایزه بلاک را دریافت میکند، البته الان تقریبا غیر ممکن است که یک بلاک خالی ماین نشود.
یکی از پارامترهای ورودی تابع هشینگ، هش آخرین بلاکی است که از قبل حل شده است. یعنی تا یک بلاک حل نشود و جوابش پیدا نشود، نمی توان بلاک های بعدی را حل کرد و پیشاپیش به جایزه اش رسید.
هر چقدر هم بلاک های بیشتری حل شود، سختی حل بلاک های بعدی بالاتر خواهد رفت و همینطور جایزه هر بلاک هم بسته به کوین مورد نظر کمتر خواهد شد. برای مثال در حال حاضر پاداش ماین هر بلاک ۱۲٫۵ بیت کوین هست که تقریبا هر چهارسال یک بار این میزان باز هم نصف میشود. که در نهایت در بلاکچین بیت کوین ۲۱ میلیون کوین استخراج خواهد شد و بعد از این مقدار بلاک ها جایزه ای نخواهند داشت و فقط کارمزد تراکنش ها به ماینر ها خواهد رسید.
هر چه تعداد ماینرها بیشتر شود، شبکه، پیدا کردن بلاکهای مجاز را بهطور خودکار دشوارتر میسازد تا مطمئن شود که زمان متوسط برای یافتن یک بلاک، همان ۱۰ دقیقه باقی خواهد ماند. لذا، ماینینگ یک کار بسیار رقابتی است که هیچ ماینری نمیتواند کنترل و تصرفی بر روی آن چیزی که درون بلاکچین هست داشته باشد به کل فرآیند ماینینگ اصطلاحا Proof of Work یا اثبات کار (POW) میگویند. یعنی هر چقدر دستگاه من کار انجام بدهد در ازای آن جایزه دریافت میکنم.
به بحث اثبات کار خیلی ایراد گرفته میشود که اتلاف انرژی زیادی دارد و روشی جدید پیشنهاد شده است به نام Proof of Stake یا اثبات سهام (POS) که در این سیستم افرادی که دارایی زیادی دارند به عنوان یک Node انتخاب میشوند و رای میدهند که این تراکنش صحیح است یا خیر. برای مثال ارزی مثل اتریوم قرار است در آینده به رویه POS تبدیل شود و به احتمال قوی دیگر قابل ماین نخواهد بود.
تاریخچهای در مورد استخراج رمز ارزها
بطور کلی چهار نوع سختافزار برای عملیات استخراج بیت کوین وجود دارد: CPUها، GPUها، FPGAها و ASICها.
استخراج بیت کوین توسط CPU یا GPU
ضعیفترین سختافزار استخراج بیتکوین کامپیوتر خود شماست.به لحاظ نظری شما میتوانید از CPU کامپیوترتان برای استخراج بیت کوین استفاده کنید اما در عمل، با استانداردهای امروزی این کار خنده دار میباشد. شما میتوانید سرعت پردازش استخراج بیت کوین را با اضافه کردن سختافزار گرافیکی به کامپیوتر شخصی خودتان تقویت کنید.
کارتهای گرافیکی واحدهای پردازش گرافیکی (GPU) دارند. آنها برای انجام محاسبات ریاضی سنگین طراحی شدند بطوریکه قادرند تمامی چندضلعیهای پیچیده مورد نیاز برای بازهای ویدئویی سطح بالا را محاسبه کنند. آنها بهویژه برای محاسبات هشینگ SHA جهت حل بلاکهای نقل و انتقال مناسب هستند. اما امروزه با آمدن و فراگیر شدن دستگاه های ایسیک، کارت های گرافیک هم برای استخراج بیت کوین موضوعیتی ندارند.
خوبی GPU این است که دست کاربرش را باز میگذارد تا رمزارزهای دیگری به جز بیت کوین را که اتفاقا کم هم نیستند ماین کند. برای مثال، اتریوم از الگوریتم کاری متفاوتی با بیت کوین استفاده میکند.این الگوریتم به گونهای بهینه شده که با GPU شما همخوانی داشته باشد و گزینه خوبی برای ماینرها با GPU تلقی میگردد. همانطور که گفته شد این روزها استخراج بیت کوین با GPU کمتر انجام میشود. دشواری استخراج بیت کوین با وجود قدرت استخراج ASIC به قدری زیاد شده است که کارتهای گرافیکی توانایی رقابت را ندارند.
با گذشت زمان و کارکردن بصورت انفرادی ماینرها متوجه شدند که طی حل کردن الگوریتم هایی با میلیاردها ورودی اشتباه و درنهایت یافتن یک ورودی صحیح منجر به خروجی درست، واجد گرفتن پاداش بهصورت بیتکوین میگردند، گفتنی است ممکن بود ورودی هایی که برای مثال ماینر A وارد میکرد را ماینر B هم وارد کند که این مساله باعث اتلاف انرژی زیادی می گردید و واریانس رسیدن به درآمد، بسیار زیاد میشد، لذا ماینرها یک مکانیزمی را پایه گذاری کردند به اسم استخر محاسباتی یا pool.
در این استخرها ماینر ها قدرت محاسباتیشان را کنار یکدیگر گذاشته و در اصل یک ابرکامپیوتر ایجاد میکردند و بدین ترتیب هر ماینری موظف میگردید بخشی از ورودی ها را وارد کند که ماینرهای دیگر وارد نمیکنند.
هر ماینر بر حسب کاری (job) که از طرف استخر به وی محول میشود محاسبات یک بخش خاصی را بعهده گرفته و ناگزیر به انجام آن میگردد و جواب آن را به اسم share به استخر ارسال میکند. وقتی قدرت هشینگ ماینرها کنار هم گذاشته میشد باعث میشد که ورودی های تکراری که ماینر دیگر آنرا انجام داده است وارد الگوریتم نشود.
با این ایده استخراج بیتکوین بسیار مقرون به صرفه تر از حالتی شد که ممکن بود یک ماینر روزها ماین کند و به جواب بلاک خاصی نرسد و میلیارد ها میلیارد ورودی اشتباه هم محاسبه کند و ناگزیر به پرداخت هزینه برق بشود و در نهایت یکی از ماینرها به جواب بلاک خواهد رسید یا بهتراست بگوییم این استخر یا همان ابرکامپیوتر بود که به جواب بلاک رسیده است، وقتی یک بلاک حل میشود جایزه بلاک یا همان ریوارد به ماینرهایی که در حل شدن آن بلاک و دادن ورودی های دیگر مشارکت داشتند به نسبت قدرت و سرعت پردازش کامپیوتر و تجهیزات مشارکت داده شده تقسیم میشود.
لازم به ذکر است که بحث به وجود آمدن و شکل گرفتن استخر ها میتواند بالقوه سبب بروز و مواجهه شبکه با مشکل دیگری آنهم بطور جدی گردد. وقتی چندین استخر بزرگ ماینینگ وجود داشته باشد به واقع ماینرها دیگر افراد نیستند بلکه همان استخر ها نقش ماینرها را خواهند داشت.
یعنی ما هزاران ماینر نداریم و چندین ماینر بسیار قدرتمند داریم که هر کدام بخش زیادی از قدرت شبکه را در اختیار دارند و این در حالیست که اگر یک استخر ۵۰ درصد قدرت شبکه را در دست بگیرد یا چند استخر با قدرت های کمتر با هم الحاق بشوند میتوانند برای شبکه خطر ساز شوند. برای مثال میتوانند برای خودشان تراکنش های جعلی را تایید کنند، که به این حالت به اصطلاح حمله ۵۱ درصدی یا ۵۱ Percent Attack گفته میشود.
استخراج بیت کوین توسط FPGA
در ادامه روند پیشرفت و بهینه سازی مکانیزم استخراج و پس از مساله استخرها تعـدادی از ماینرهـا به FPGA هـا یا همان Field Programmable Gate Array که متشکل از یکسری مدارهـای الکترونیکی مجتمع شده میباشد و طوری طراحی گردیده که بعد از ساخت قابلیت برنامه ریزی کردن را دارد، روی آوردند. با این دستگاه ها میشود چیپهایی زیادی را خریداری کرده و سپس آنها را برای استخراج بیتکوین قبل از قراردادن در تجهیزات، سفارشی سازی کرد.
از آنجایی که این چیپها بطورخاص مخصوص استخراج تنظیم شده اند، اجرای بهتری از CPU و GPU خواهند داشت. یک سختافزار FPGA با یک چیپ، در بالاترین سطح خود، با توانایی حدود ۷۵۰ مگاهش بر ثانیه عمل میکند. البته میتوان بیش از یک چیپ در یک دستگاه قرار داد. ولی این دستگاه ها هم عملا با آمدن ای سیک ها(ASIC) به بازار که قدرت گیگاهش و تراهش دارند عملا دیگر توجیهی ندارند.
استخراجکنندههای ASIC
این سخت افزار با نام Application Specific Integrated Circuits، یا مدار مجتمع خاص برنامه کاربردی، به طور ویژه برای انجام فقط یک کار طراحی شده است و آن استخراج بیت کوین با سرعت باورنکردنی و با مصرف برق نسبتا پایین می باشد. اولین سری این ای سیکها در حد یک USB Memory بودند و شاید دلیل نام گذاری انت ماینر (ماینر مورچهای) به همین دلیل باشد.
در زمان نوشتن این مطلب (سال ۲۰۱۸)، دستگاههایی با سرعتی بین ۱۴ الی ۲۶ تراهش بر ثانیه به بازار عرضه شده است و این در حالیست که فروشندگان پیشتر وعده دستگاههای ASIC با قدرت بیشتر را داده اند که قدرت محاسبتاشان به چند برابر میزان امروزی خواهد رسید که البته این موضوع میتواند نیاز به قدرت زیاد خنک کنندگی را با خود به همراه داشته باشد و مسلما ای سیک های نسل جدید، دستگاههایی کاملا صنعتی محسوب شده و به علت صدای زیاد عملا امکان استفاده در منازل برایشان با مشکل مواجه خواهد شد.
ولی ای سیک ها یک مساله و نگرانی جدیدی را با خود بهمراه آوردند. برای تولید ای سیک ها میبایست در ابتدا طراحی نسبتاً سختی به دلیل بهینه بودن با الگوریتم مدنظر انجام گیرد و سپس بعد از طراحی ایسیک تولید شده روانه کارخانه های تولید چیپست شود. کارخانه ها ناگزیر به تولید تیراژ بالایی از ای سیک ها هستند. تصور کنید فرض قیمت تولید هر ای سیک ۱۰۰ دلار تمام شود و مینیمم تیراژ مورد نیاز برای تولید ۱۰۰ هزار عدد باشد، یعنی کسی که قصد سرمایه گذاری و تولید ایسیک را دارد باید حداقل ۱۰ میلیون دلار هزینه کند و این مقدار از توان بسیاری خارج است، لذا سرمایه گذاران بزرگ به تولید و ماین بیتکوین پرداختند.
این موضوع سبب شد تا سرمایهداران ثروتمندتر شدند و بیت کوین های زیادی را در اختیار بگیرند، به طوری که در حال حاضر ۴۰ درصد بیت کوین تولید شده در اختیار ۱۰۰۰ نفر میباشد که در بازار ارزهای دیجیتال به این گروه از صاحبان بیتکوین ” نهنگ” اطلاق میشود. نهنگ ها خطر بزرگی برای بازار کریپتو هستند و میتوانند به شدت بر بازار تاثیر بگذارند.
بنابر موارد فوق ماین بیتکوین با استفاده از GPU بسیار سخت شده است و حتما باید از ایسیک هایی مثل انتماینر استفاده شود. البته برای حل این مشکل کوین های دیگری که بعدا به وجود آمدند از الگوریتم هایی استفاده میکردند که امکان اجرای آن توسط ایسیک نبود و تحت عنوان ASIC-Resistant از آن یاد میشود.
بعنوان مثال در اتریوم از مکانیسمی به اسم DAG یا Directed Acyclic Graph استفاده میشود که فایلی است که حتما باید بر روی مموری کارت گرافیک مورد استفاده موجود باشد تا بتواند به صورت رندوم به بخشهایی از این فایل دسترسی پیدا کند و هر از گاهی چک کند که آیا فایل مزبور همچنان وجود داشته باشد. ای سیک ها نمیتوانند فایل DAG را داشته باشند چون امکان ساپورت آن مقدار مموری برایشان مقدور نیست. اگرچه ماینرها از تکنیک هایی استفاده میکنند و تعدادی کارت گرافیک را بطور موازی روی سیستم نصب میکنند که از آن بعنوان ریگ (RIG) ماینینگ یاد میشود. ریگ به کامپیوتری گفته میشود که به منظور کاربردی خاصی اسمبل میگردد.
و اما نکته ای که در مورد ای سیک ها وجود دارد این است که ای سیکی که بعنوان مثال الگوریتم SHA256 ساخته شده است، تنها میتوان از آن به منظور استخراج بیت کوین و بیتکوین کش و … استفاده کرد و قابلیت استفاده جهت ماین کوینی مثل لایت کوین که از الگوریتم اسکریپت استفاده میکند را ندارد.
این در حالی است که از کارت گرافیک میتوان برای استخراج همه ارزهای رمزنگاری شده بهره جست ولی با توجه به این که برای بعضی ارزها ایسیک بسیار کارآمد تر میباشد دیگر توجیهی برای استفاده از GPU وجود ندارد چون در مقایسه با دستگاه های ایسیک، کارت های گرافیک سرعت پردازش پایین تری دارند.
قدرت یک دستگاه ماینینگ را بر اساس میزان هشی که در یک ثانیه حل میکند مشخص میکنند که به آن هش ریت (HashRate) گفته میشود و باید توجه داشت که الگوریتم های مختلف با توجه به سختی الگوریتم از هش ریت های متفاوتی برخوردار هستند. به عنوان مثال یک کارت گرافیک روی الگوریتم Dagger Hashimoto که برای اتریوم هست ممکن است ۳۰ “مگاهش” در ثانیه محاسبه کند ولی سکه مونرو و الگوریتم کریپتونایت ۸۵۰ “هش” در ثانیه محاسبه کند. این اشتباهی است که بسیاری از ماینرهای تازه کار حین بررسی محاسباتشان دچار آن میشوند.
نکته قابل توجه آنست، شخص یا گروهی که به اسم ساتوشی ناکاموتو میشناسیم قبل از این که بیت کوین را به صورت عمومی معرفی کند حدودا یک میلیون بیت کوین از تعداد ۲۱ میلیون بیت کوین قابل استخراج را خودش ماین کرده بود و با قیمت حدود ۷ هزار دلاری این زمان که تا ۲۰ هزار دلار هم صعود کرد میتوان او را یکی از پولدارترین افراد جهان محسوب کرد.