ماینینگ
ماینینگ
ماینینگ یک نوع فرایند رقابتی است که برای اولین بار طی پروتکل SHA-256 شبکه بیتکوین به منظورایجاد انگیزه برای پایداری شبکه وایجاد بیتکوین جدید طراحی گردید. ماینرها کامپیوترهایشان را به منظور تایید تراکنشها در اختیار شبکه قرار میدهند و در ازای قدرت و فعالیت کامپیوترهایشان بیتکوین به عنوان جایزه دریافت میکنند، بهاین عملیات اصطلاحاً ماینینگ اطلاق میشود.
برای مثال در شبکه بیتکوین، ماینرها تراکنشهای هر ۱۰ دقیقه را در بلاکهایی قرار میدن و بلاک پس از تایید در بلاکچین ثبت میگردد. کهاین روند تقریبا در تمام کوینهایی که روی بلاکچین قرار دارند و نیاز به تایید تراکنش از طریق قدرت پردازشی دارند به همین صورت هست.
بلاکچین (Blockchain) یعنی زنجیرهای از بلوکها، در هر بلوک یک سری تعداد تراکنش وجود دارد کهاین تراکنشها با الگوریتمهای hashing باید در هر بلاک قرار بگیرند. الگوریتمهای هشینگ یه سری توابع یک طرفه هستند. یعنی یک ورودی داریم و یک خروجی. یعنی از ورودی میشود به خروجی رسید ولی از خروجی نمیتوان به ورودی این تابع رسید.
استخراج بیتکوین یا همان ماینینگ بیتکوین قدرت پردازش دستگاههای استخراج خود را در اختیار شبکه قرار میدهند تا امنیت شبکه حفظ و تراکنشهای بیتکوین تأیید شود.
ماینرها برای آن پاداش میگیرند واین پاداش همان بیتکوین است. به عبارت دیگر، زمانی که برای دوست خود بیتکوین ارسال میکنید، ماینرها در پشت قضیه با فعالیت خود به تأیید شدن تراکنش شما کمک میکنند و شبکه به این کار آنها پاداش میدهد.
پس با ماینینگ، در واقع سه کار اصلی انجام میشود:
- تأیید تراکنشهای بیتکوین
- حفظ امنیت شبکه بیتکوین
- تولید واحدهای جدید بیتکوین به صورت غیرمتمرکز
بر اساس پروتکل یا همان قوانین بیتکوین، فقط تعداد ۲۱ میلیون واحد از آن وجود خواهد داشت؛ مثل طلا که کمیاب و محدود است.
میتوان گفت نام علمیتر ماینینگ، اثبات کار (Proof Of Work) است. در واقع فرآیند استخراج از الگوریتمی به نام اثبات کار سرچشمه گرفته است که فردی به نام آدام بک (Adam Back) اولین بار در سیستم ضد اسپم خود از آن استفاده کرد که هشکش (HashCash) نام داشت.
اصطلاحات ماینینگ
رمزارز:
رمزارز (Cryptocurrency) نوعی ارز مجازی است که از فناوری رمزنگاری در طراحی آن استفاده شده و به صورت غیرمتمرکز اداره و تبادل میشود.
استخراج:
استخراج (Mining) فرآیندی که در طی آن تبادلات رمزارز توسط استخراجکنندهها و با استفاده از دستگاههای ماینر، تایید شده و در ازای آن، به استخراج کننده، پاداش (رمزارز) اعطا میشود.
دستگاه ماینر (Miner):
دستگاه ماینر، سختافزاری قدرتمند است که با داشتن توان پردازش بالا، میتواند معاملات رمزارزی را تایید کند و نقل و انتقال رمزارزها را در شبکه رمزارزی ممکن کند. علاوه بر قیمت نسبتا بالا، برق مصرفی زیاد و تولید حرارت شدید از چالشهایی است که دستگاههای ماینر برای خریداران در پی دارند.
زمانی که یک بلاک حل میشود چه اتفاقی رخ میدهد؟
۱. همه تراکنشهای داخل بلاک تایید میشوند و از خرج شدن مجدد پولهایی که از حسابها خارج شده است جلوگیری بعمل میآید (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 بودند و شاید دلیل نامگذاری انت ماینر (ماینر مورچهای) به همین دلیل باشد.
ولی ایسیکها یک مساله و نگرانی جدیدی را با خود به همراه آوردند. برای تولیدایسیکها میبایست در ابتدا طراحی نسبتاً سختی به دلیل بهینه بودن با الگوریتم مدنظر انجام گیرد و سپس بعد از طراحیایسیک تولید شده روانه کارخانههای تولید چیپست شود. کارخانهها ناگزیر به تولید تیراژ بالایی ازایسیکها هستند.
تصور کنید فرض قیمت تولید هرایسیک ۱۰۰ دلار تمام شود و مینیمم تیراژ مورد نیاز برای تولید ۱۰۰ هزار عدد باشد، یعنی کسی که قصد سرمایه گذاری و تولیدایسیک را دارد باید حداقل ۱۰ میلیون دلار هزینه کند واین مقدار از توان بسیاری خارج است، لذا سرمایهگذاران بزرگ به تولید و ماین بیتکوین پرداختند.
این موضوع سبب شد تا سرمایهداران ثروتمندتر شدند و بیتکوینهای زیادی را در اختیار بگیرند، به طوری که در حال حاضر ۴۰ درصد بیتکوین تولید شده در اختیار ۱۰۰۰ نفر میباشد که در بازار ارزهای دیجیتال به این گروه از صاحبان بیتکوین ” نهنگ” اطلاق میشود. نهنگها خطر بزرگی برای بازار کریپتو هستند و میتوانند به شدت بر بازار تاثیر بگذارند.
بنابر موارد فوق ماین بیتکوین با استفاده از GPU بسیار سخت شده است و حتما باید ازایسیکهایی مثل انتماینر استفاده شود. البته برای حل این مشکل کوینهای دیگری که بعدا به وجود آمدند از الگوریتمهایی استفاده میکردند که امکان اجرای آن توسط ایسیک نبود و تحت عنوان ASIC-Resistant از آن یاد میشود.
به عنوان مثال در اتریوم از مکانیسمی به اسم DAG یا Directed Acyclic Graph استفاده میشود که فایلی است که حتما باید بر روی مموری کارت گرافیک مورد استفاده موجود باشد تا بتواند به صورت رندوم به بخشهایی ازاین فایل دسترسی پیدا کند و هر از گاهی چک کند که آیا فایل مزبور همچنان وجود داشته باشد.
ایسیکها نمیتوانند فایل DAG را داشته باشند چون امکان ساپورت آن مقدار مموری برایشان مقدور نیست. اگرچه ماینرها از تکنیکهایی استفاده میکنند و تعدادی کارت گرافیک را بطور موازی روی سیستم نصب میکنند که از آن بعنوان ریگ (RIG) ماینینگ یاد میشود. ریگ به کامپیوتری گفته میشود که به منظور کاربردی خاصی اسمبل میگردد.
و اما نکتهای که در مورد ایسیکها وجود دارد این است که ایسیکی که بعنوان مثال الگوریتم SHA256 ساخته شده است، تنها میتوان از آن به منظور استخراج بیتکوین و بیتکوین کش و … استفاده کرد و قابلیت استفاده جهت ماین کوینی مثل لایتکوین که از الگوریتم اسکریپت استفاده میکند را ندارد. این در حالی است که از کارت گرافیک میتوان برای استخراج همه ارزهای رمزنگاری شده بهره جست ولی با توجه به این که برای بعضی ارزها ایسیک بسیار کارآمدتر میباشد دیگر توجیهی برای استفاده از GPU وجود ندارد چون در مقایسه با دستگاههای ایسیک، کارتهای گرافیک سرعت پردازش پایینتری دارند.
قدرت یک دستگاه ماینینگ را بر اساس میزان هشی که در یک ثانیه حل میکند مشخص میکنند که به آن هش ریت (HashRate) گفته میشود و باید توجه داشت که الگوریتمهای مختلف با توجه به سختی الگوریتم از هش ریتهای متفاوتی برخوردار هستند. به عنوان مثال یک کارت گرافیک روی الگوریتم Dagger Hashimoto که برای اتریوم هست ممکن است ۳۰ “مگاهش” در ثانیه محاسبه کند ولی سکه مونرو و الگوریتم کریپتونایت ۸۵۰ “هش” در ثانیه محاسبه کند. این اشتباهی است که بسیاری از ماینرهای تازهکار حین بررسی محاسباتشان دچار آن میشوند.