دستگاه ماینر بیت کوین چیست و چگونه کار میکند؟
شاید شما هم شنیده باشید که افرادی از طریق ماینینگ به سود بزرگی دست پیدا کردهاند؛ اما هدف از ماینینگ تنها بدست آوردن بیت کوین نیست. ماینینگ بیت کوین یک پروسهی اعتبار سنجی تراکنشهای انجام شده بر روی شبکهی بلاکچین است. برای اضافه شدن یک بلاک به بلاکچین، ماینر (node) باید یک معادله ریاضی را با موفقیت حل کند. وقتی که مسالهی ریاضی به درستی و با موفقیت حل شد، بلاک و هش بلاک به بلاکچین اضافه میشود و ماینر بیت کوین که عملیات را با موفقیت و زودتر از ماینرهای دیگر انجام داده باشد، پاداش دریافت میکند. هدف از ماینینگ در واقع مشارکت در تایید تراکنشها و ایجاد اطمینان از انجام پیوستهی تراکنشهاست.
ماینینگ به تحرک و جاری بودن شبکهی بلاکچین کمک میکند و باعث گسترش شبکه میشود و همچنین موجب تایید تراکنشهای جاری بر بستر شبکه خواهد شد. پاداش حاصل از این مشارکت، مشوق اصلی افراد برای انتخاب و انجام ماینینگ است. در زمان نگارش این مقاله (سال 2022) پاداش پیدا کردن یک بلاک مساوی با 6.25 بیت کوین است.
ماینر بیت کوین چطور ساخته شد؟
ماینینگ یا استخراج اصطلاحی است که به انجام محاسبات پیچیدهی ریاضی توسط نودهای شبکه به امید بدست آوردن توکن و یا همان پاداش از پیش تعیین شده گفته می شود. انجام این محاسبات ریاضی توسط انسان شدنی است، اما زمان زیادی خواهد برد و نوشتن این محاسبات نیاز به فضای زیادی خواهد داشت. بنابراین معقول نیست که این عملیات توسط انسان انجام شود.
زمانی انجام این محاسبات توسط یک کامپیوتر شخصی شدنی بود؛ اما با گذشت زمان و بالا رفتن سختی شبکه، ماینینگ نیاز به ابزارهای قوی تر برای انجام محاسبات ریاضی پیدا کرد. ابزارهای ماینینگ پیوسته در حال پیشرفت و تحولات بزرگی هستند. مهم ترین عامل موفقیت ماینر بیت کوین در شبکه، داشتن تجهیزات به روز است.
در سال 2009 خالق بیت کوین با نام مستعار ساتوشی ناکاموتو اولین بلاک شبکه را ماین کرد. به عنوان تنها ماینر شبکه، ناکاموتو نیاز به تجهیزات پیشرفته برای راه اندازی بلاکچین و ماین کردن اولین بلاک نداشت. ساتوشی قادر بود با استفاده از یک کامپیوتر شخصی بلاکها را بر روی شبکه ایجاد کند. کامپیوترهایی که بتوان با آنها در اینترنت جستجو کرد و یا برنامههایی مانند آفیس را اجرا کرد دارای قطعهای به نام Central Processing Unit یا CPU هستند. این ابزارها نحوهی پردازش و اجرای دستورات بر روی یک کامپیوتر را کنترل و نظارت میکنند.
به دلیل کمبود رقابت ماینرها در روزهای اولیهی شکل گرفتن شبکه، توان محاسباتی مورد نیاز برای ایجاد یک بلاک و کسب پاداش میتوانست به راحتی توسط CPU تامین شود. اما به مرور زمان با بیشتر شدن تعداد ماینرها و بالا رفتن رقابت و سختی شبکه، توان CPU برای پیدا کردن بلاک دیگر کافی نبود.
ماینینگ با GPU
اولین نوآوری در سخت افزارهای ماینر بیت کوین کمی بعد از اینکه ارزش این توکن در بازار افزایش پیدا کرد، اتفاق افتاد. در اکتبر سال 2010 درست زمانی که ارزش بیت کوین به 10 سنت رسید، اولین سخت افزار ماینینگ با استفاده از کارتهای گرافیک (GPU) ساخته شد. بر خلاف CPU، کارتهای گرافیک که در اصل برای بازیهای کامپیوتری طراحی شده اند، میتوانند به صورت موازی عملیات ریاضی را انجام دهند تا در نتیجه هزاران پیکسل از تصویر را تولید کنند.
همچنین این قطعات را میتوان طوری برنامه ریزی کرد تا اعمال ریاضی دیگری را انجام دهند؛ مانند عملیات ریاضی که برای ماین کردن بیت کوین نیاز است. نوآوری در ماینینگ توسط کارت گرافیک موجب شد تشکیل بلاکهای بیت کوین و دریافت پاداش تقریبا شش برابر کارآمدتر و بهینه شود.
FPGA به جای GPU
افزایش بهره وری ماینینگ توسط کارتهای گرافیک در سال 2011 توسط FPGA (field programmable gate array) تحت الشعاع قرار گرفت. زمانی که این تراشهها نیز برای تبدیل شدن به ماینر بیت کوین مجددا مدل سازی شدند. توانایی و سرعت این تراشهها در حل محاسبات ریاضی دو برابر کارتهای گرافیک بود؛ اما مشکلی که وجود داشت این بود که این ابزار نیازمند برنامه ریزی و تنظیمات بخصوص هم بر روی سخت افزار و هم نرم افزار بود تا بتواند کدهای سفارشی را اجرا کند.
دستگاه ASIC ماینر
سومین نوآوری در ساخت سخت افزارهای ماینینگ مربوط به ساخت دستگاههای ASIC است؛ دستگاههایی که امروزه ما به هشینگ چگونه عمل می کند؟ نام ماینر بیت کوین میشناسیم. این بار به جای تلاش برای بهینه سازی ابزارهای موجود در این زمینه، دستگاهی ساخته شد که ماینینگ را با تحولی عظیم مواجه کرد. در سال 2013 یک شرکت چینی ساخت قطعات کامپیوتری به نام Canaan Creative، اولین سخت افزار مخصوص به ماینینگ را به بازار عرضه کرد.
برخلاف کارتهای گرافیک و واحدهای پردازش مرکزی، این ابزار صرفا برای ماینینگ ساخته شد؛ یعنی تمامی سخت افزارها و نرم افزارهای استفاده شده در ساخت دستگاههای اسیک به صورت اختصاصی برای حل معادلات ریاضی لازم برای ساخت بلاک بیت کوین طراحی و ساخته شده بود. بهره وری این دستگاه ها به هیچ وجه با ابزارهای پیشین قابل مقایسه نبود. در حالی که Canaan Creative اولین شرکتی بود که دستگاه اسیک را به بازار عرضه کرد، کمپانیهای دیگری مانند Bitmain و MicroBT هم قدم در این راه گذاشته و اقدام به ساخت دستگاه ASIC کردند و مدلهای جدیدتر و کارآمدتری از این نوع دستگاه را ارائه کردند.
ASIC ماینر چیست؟
ماینرهای ASIC (Application-Specific Integrated Circuit)، کامپیوترهایی هستند که با استفاده از پروتکل اثبات کار (PoW)، تنها به کار استخراج رمز ارز میپردازند. در این سیستم، زمانی که هشینگ چگونه عمل می کند؟ یک بلاک از اطلاعات جدید نیاز به تایید و در نتیجه اضافه شدن به بلاکچین داشته باشد، دادهها به صورت رمزگذاری شده توسط پازلهای پیچیده به ماینر سپرده میشود. دستگاهی که زودتر از همه موفق به حل پازل شود، دادهها را به بلاکچین اضافه کرده و بلاک جدیدی از اطلاعات تشکیل میشود. در ازای انجام این کار، ماینر پاداشی دریافت خواهد کرد.
از لحاظ تئوری، هنوز هم از هر کامپیوتری میتوان به عنوان ماینر بیت کوین استفاده کرد؛ اما ابزاری که توان پردازشی بالاتری برای حل معادلات ریاضی داشته باشد، در این کار موفق تر خواهد بود؛ چرا که پروتکل اثبات کار (Proof Of Work) مانند یک مسابقه است و احتمال برنده شدن در این مسابقه برای سخت افزاری بیشتر است که بیشترین توان پردازشی را در ثانیه برای حل معما داشته باشد. بنابراین ماینرهای ASIC، برای بالا بردن توان پردازشی در ماینینگ خلق شدند.
ASIC ماینر چطور کار میکند؟
ماینرهای اسیک بر اساس الگوریتمهای هش بخصوص طراحی شده اند که این موضوع باعث شده تا هر دستگاه مختص به استخراج توکنهای مرتبط با همان الگوریتم باشد. برای مثال دستگاههای ماینری که برای استخراج بیت کوین استفاده میشوند از الگوریتم SHA-256 پیروی میکنند و ماشینهای طراحی شده برای استخراج اتریوم، الگوریتم ETHASH را استفاده میکنند. بنابراین برای استخراج هر رمزارز نیاز به دستگاه بخصوص خواهید داشت.
یک ماینر اسیک از قطعات گوناگونی ساخته شده است. در اینجا به معرفی ماینر بیت کوین و قطعاتش میپردازیم:
- هشبرد (Hashboard). این قطعه یک برد الکترونیکی است که از چیپهای اسیک تشکیل شده است. در واقع این اسیکها همان کار محاسبه و حل عملیات ریاضی برای دریافت پاداش را انجام میدهند. بر روی هر ASIC یک هیت سینک قرار گرفته که کار این قطعه انتقال گرمای اسیکها به بیرون است.
- کنترل برد (Control Board). کنترل برد در واقع به عنوان مغز دستگاه ماینر عمل میکند. نظارت و کنترل کارکرد تمام قطعات دستگاه ماینر بر عهدهی کنترل برد است.
- پاور (Power Supply Unit). پاور ماینر وظیفهی برق رسانی به دستگاه را بر عهده دارد.
- فن (Fan). فنها کار خنک کردن دستگاه را انجام میدهند. عدم کارکرد درست فنها مساوی است با خرابی در قطعات گوناگون دستگاه.
پاداش حاصل از حل معادلات ریاضی
با توجه به گسترش شبکهی بلاکچین و بالا رفتن سختی شبکه، احتمال پیدا کردن بلاک با یک دستگاه ماینر بیت کوین بسیار ضعیف است؛ چرا که رقابت در شبکه بیشتر شده است و ماینرهایی با تعداد دستگاههای بالا و با توان پردازشی قوی بر روی شبکه فعالیت میکنند. برای بالا بردن شانس پیدا شدن بلاک و دریافت پاداش، ماینرها به استخر استخراج میپیوندند تا با اجماع توان پردازشی تعداد بیشتر ماینر، بتوانند در این رقابت شرکت کرده و پاداش مناسبی دریافت کنند.
سخن پایانی
در حالی که تکامل سخت افزارهای استخراج بیت کوین در طی زمان منبع دست آوردهای بزرگی بوده، اما ممکن است در آینده اینطور نباشد. مخصوصا اینکه امروزه تکنولوژیهای مبتنی بر سخت افزار در حال کم رنگ شدن هستند. واضح است که رقابت برای تولید تکنولوژیهای جدید و کارآمدتر جهت استخراج بیت کوین همچنان ادامه دارد. با این حال مشخص نیست که جهش بعدی در فناوری استخراج چطور خواهد بود.
در صورتی که دستگاه ماینری دارید که نیاز به نگهداری و تعمیرات دارد، پیشنهاد می کنیم به صفحه تعمیر ماینر مراجعه کنید و از خدمات تخصصی گروه هشبان کمک بگیرید.
تابع هش در ارز دیجیتال چیست؟ Hash Function به زبان ساده
تابع هش یک الگوریتم کامپیوتری است که به کمک آن میتوان دادههای عادی را تبدیل به یک رمز پیچیده به نام هش کرد. تابع هش را میتوان یکی از اصلیترین ابزارهای رمزنگاری در دنیای ارزهای دیجیتال و بلاکچین دانست.
- 1) تابع هش چیست؟
- 2) ویژگیهای اصلی تابع هش
- 3) کاربردهای تابع هش
- 4) سخن پایانی
همانطور که میدانید، رمزنگاری یکی از پایههای اصلی سیستمهای غیرمتمرکز است و به دلیل همین رمزنگاری است که سیستمهای بدون مرکز و بدون نیاز به نظارت شکل میگیرند. پس بیهوده نیست اگر تابع هش را یکی از اجزای اصلی سازنده ارزهای رمزنگاری شده و بلاکچین بدانیم.
در این مقاله، ابتدا با زبانی ساده توضیح خواهیم داد که تابع هش چیست؟ سپس به بیان این مطالب خواهیم پرداخت که تابع هش چه کار میکند و ویژگیهای اصلی تابع هش را معرفی خواهیم کرد. بنابراین اگر به علاقمند به یادگیری مباحث پایهای ارزهای دیجیتال و بلاک چین هستید، توصیه میکنیم که تا انتهای این مقاله با داموند مگ همراه باشید.
تابع هش چیست؟
تابع هش یک الگوریتم رمزنگاری است و وظیفه آن این است که هرگونه داده را تبدیل به یک رشته رمزنگاری شده با طول ثابت کند. مهم نیست چه دادهای وارد تابع هش میشود، داده ما میتواند یک کلمه، یک جمله، یک مقاله و یا حتی یک فایل کامپیوتری باشد، نتیجهای که از تابع هش خارج میشود، در هر حالتی طول یکسانی خواهد داشت.
در نتیجه هنگامی که بخواهیم دادههای متفاوت را از نظر تعداد کاراکتر و حالت نوشته شدن، متحد کنیم. میتوانیم از تابع هش استفاده کنیم. برای بهتر متوجه شدن این موضوع چند مثال در جدول زیر آورده شده است. ابتدا این جدول را نگاه کنید، تا توضیحات تکمیلی را در ادامه ارائه دهیم.
داده اولیه | خروجی یک تابع هش |
من | 0000639EFDoSABB273B1619E82 |
من با تو صحبت کردم. | 000053A53FC9E2AO3F9B6E66D8 |
من با تو صحبت کردم و نتیجهای نگرفتم. | 000089G15DH4W455FRG55SFY56 |
یک فایل کامپیوتری دارای دادههای حسابداری | 000056REHG5656DSRG896SFK23 |
همانطور که میبینید، مهم نیست چه چیزی را در تابع هش وارد کردهایم. خروجی تابع یک رشته از اعداد و حروف است که طول تمام رشتهها 26 کاراکتر است و همه این رشتهها با چهار عدد صفر شروع میشود. بنابراین با وجود آنکه ورودی بسیار متفاوت است، اما خروجی تابع حالت متحدی دارد و به خوبی رمزنگاری شده است.
این تنها مورد استفاده از تابع هش نیست. هر دادهای که وارد این تابع شود، رمزنگاری خواهد شد و امکان رمزگشایی خروجی با ابزارهای فعلی امکانپذیر است. بنابراین عدهای، به آن تابع یک طرفه میگویند، به این معنا که خروجی تابع هش را نمیتوان رمزگشایی کرد و آن را به داده اولیه تبدیل کرد.
هنگامی که یک داده تبدیل به هش شود، هیچکسی نمیتواند آن هش را تبدیل به داده اولیه کند. در نتیجه با توجه به امنیت بالای تابع هش، از آن به صورت گسترده برای رمزنگاری و حفظ امنیت سیستمهای گوناگون استفاده میشود.
شاید برایتان جالب باشد که در تمام سایتها و سیستمها عبارت رمز شما ذخیره نمیشود، بلکه رمزی که شما وارد میکنید وارد تابع هش میشود و در نهایت هش خروجی در سرور یا حافظه سیستم ذخیره میشود.
هنگامی که برای ورود به سیستم رمز خود را وارد میکنید، سیستم آن را هش میکند و با هش ذخیره شده در خود مقایسه میکند، اگر هشها با هم برابر باشد، نتیجهگیری میکند که رمز درست وارد شده و بنابراین به شما اجازه دسترسی داده میشود. بنابراین هیچکس نمیتواند بفهمد که چه رمز عبوری وارد کردهاید و تنها هش رمز شما بر روی سیستم ذخیره شده است.
ویژگیهای اصلی تابع هش
برای آنکه یک تابع هش استانداردهای لازم برای رمزنگاری را داشته باشد، نیاز به داشتن خصوصیات ویژهای دارد که در ادامه آنها را به صورت یک به یک مورد بررسی قرار خواهیم داد. این ویژگیها عبارتند از :
قطعی بودن تابع هش
این ویژگی به آن معناست که مهم نیست که شما چند بار یک داده دلخواه را وارد تابع هش میکنید، در هر بار شما باید یک نتیجه یکسان دریافت کنید. این موضوع بسیار حیاتی است، چرا که اگر در هر بار یک هش متفاوت دریافت کنید، ارتباط دادن آن به داده ورودی غیرممکن خواهد شد.
محاسبه سریع
یک تابع هش باید قادر باشد تا ورودی را به سرعت تبدیل به هش کند. اگر این فرآیند به اندازه کافی سریع نباشد، سیستم ما کارآمد نخواهد بود. تصور کنید که در سیستم بزرگی همچون بیتکوین اجرای یک تابع هش مدت زیادی به طول انجامد. در این صورت کل شبکه مختل خواهد شد و پردازش تراکنشها با مشکل جدی مواجه خواهد شد.
نتوان هش را تبدیل به ورودی کرد (غیرقابل بازگشت بودن)
تابع هش ما باید به گونهای باشد که اگر ما ورودی خود را A در نظر بگیریم و هش خروجی را H(A) در نظر بگیریم، رسیدن به A از روی H(A) غیرعملی باشد. در اینجا عمدا از کلمه غیرعملی به جای کلمه غیرممکن استفاده کردهایم. چرا که در برخی مواقع امکان حدس زدن ورودی از روی هش وجود دارد. اجازه دهید این موضوع را با مثالی توضیح دهیم.
فرض کنید که شما تاسی را میاندازید و خروجی آن هش عددی است که تاس نشان میدهد. چگونه میتوانید از روی هش عدد ورودی را تشخیص دهید؟ این کار ساده است، فقط کافی است که هش اعداد یک تا شش را بدانید و سپس با مقایسه آن با هشهای به دست آمده، متوجه شوید که ورودی کدامیک از اعداد یک تا شش است. چون توابع هش دارای جواب قطعی هستند. هش یک ورودی به خصوص همیشه یکسان است، بنابراین شما به راحتی میتوانید با مقایسه هشها ورودی اصلی را حدس بزنید.
اما هشینگ چگونه عمل می کند؟ هشینگ چگونه عمل می کند؟ این راهکار فقط هنگامی جواب میدهد که با حجم کمی از دادهها سر و کار داشته باشیم. هنگامی که حجم دادهها عظیم باشد، چه اتفاقی میافتد؟ فرض کنید که با یک هش 128 بیتی سر و کار دارید. تنها روشی که شما به وسیله آن میتوانید ورودی اولیه را پیدا کنید، استفاده از متد brute-force است.
متد brute-force اساسا به این معناست که شما یک ورودی تصادفی برمیدارید و پس از هش کردن، خروجی را با هش مورد نظر خود مقایسه میکنید و این کار را تا زمان رسیدن به یک تطابق ادامه میدهید. در نتیجه در این روش برای پیدا کردن ورودی اصلی تابع هش با سناریوهای زیر مواجه خواهید بود :
- بهترین سناریو: در اولین تلاش خود جوابتان را پیدا میکنید. احتمالا در این صورت خوششانسترین فرد روی دنیا هستید، چرا که امکان رخ دادن چنین اتفاقی بسیار نجومی است.
- بدترین سناریو: شما جواب خود را پس از 2^128 – 1 دفعه تلاش به دسته میآورید. اساسا به این معناست که شما کل دادههای موجود را تست کردهاید.
- سناریو معمولی: در میانه احتمالات ممکن، یعنی پس از 2^128/2 = 2^127 دفعه به جواب خود میرسید. این عدد برابر 1.7 X 10^38 است و به عبارت دیگر عدد بسیار بزرگی است.
پس در نتیجه شما با متد brute force قادر خواهید بود تا ورودی را از روی هش پیدا کنید، اما این کار زمان بسیاری لازم دارد و در نتیجه، رسیدن به جواب در این مدت زمان طولانی، اهمیت زیادی ندارد.
تغییر کوچکی در ورودی، هش را تغییر دهد
حتی اگر تغییر کوچکی در ورودی خود بدهید، تغییرات هش خروجی بسیار زیاد خواهد بود. اجازه دهید این مساله را با یک مثال توضیح دهیم.
داده اولیه | خروجی تابع هش |
رحیم | 0000639EFDoSABB273B1619E82 |
رجیم | 000053A53FC9E2AO3F9B6E66D8 |
همانطور که در جدول بالا میبینید، فقط یک نقطه کوچک را در داده اولیه جابجا کردهایم، اما تغییرات اعمال شده در هش نهایی بسیار زیاد است. این یک ویژگی حیاتی است، چرا که این ویژگی منجر به یکی از مهمترین ویژگیهای بلاکچین، یعنی غیر قابل دستکاری بودن آن میشود.
عدم تطابق هش های تولید شده
از دو ورودی متفاوت A و B هشهای H(A) و H(B) به دست میآید، شرایط یک تابع هش استاندارد باید به گونهای باشد که معادل بودن H(A) و H(B) غیرعملی باشد. به عبارت کلیتر در اکثر اوقات هر ورودی باید هش منحصر به فرد خود را داشته باشد.
چرا از عبارت اکثر اوقات استفاده کردیم؟ چون که امکان وقوع پارادکس روز تولد وجود دارد. چون این موضوع جالب است، اجازه دهید توضیحاتی نیز در مورد پارادکس روز تولد بدهیم تا به خوبی متوجه کلیات موضوع بشوید.
پارادکس روز تولد چیست؟
اگر شما در خیابان تصادفا با یک غریبه برخورد کنید، احتمال آنکه هر دوی شما در یک روز به دنیا آمده باشید، بسیار کم است. در حقیقت احتمال این اتفاق 1/365 یا 0.27% است. به عبارت دیگر احتمال واقعا پایینی است.
با این حال میتوان گفت که اگر شما 20 الی 30 نفر را در یک اتاق دور هم جمع کنید، احتمال آنکه دو شخص تاریخ تولد خود را اعلام کنند و دقیقا در یک روز به دنیا آمده باشند، به صورت نجومی بالا میرود. در حقیقت احتمال این موضوع که 2 شخص تاریخ تولد خود را اعلام کنند و هر دو در یک تاریخ به دنیا آمده باشند، پنجاه پنجاه میشود.
چگونه چنین چیزی رخ میدهد؟ این قضیه به دلیل یک قانون ساده در احتمال است که به شرح زیر است. فرض کنید که شما N احتمال گوناگون برای وقوع یک اتفاق دارید، برای آنکه شانس رخداد آن اتفاق پنجاه درصد شود، باید جذر N آیتم تصادفی را محاسبه کنید.
حال اگر این نظریه را برای روز تولد اعمال کنیم، شما 365 احتمال گوناگون برای روزهای تولد دارید، خب حالا نیاز دارید که جذر 365 را بگیرید که برابر با 23 میشود، بنابراین اگر 23 فرد را به صورت تصادفی انتخاب کنید، احتمال آنکه دو شخص در یک روز به دنیا آمده باشند، پنجاه پنجاه میشود.
استفاده پارادکس روز تولد در تابع هش چیست؟
فرض کنید یک هش 128 بیتی دارید که برای آن 2^128 احتمال وجود دارد. با در نظر گرفتن پارادوکس روز تولد، برای آنکه احتمال مساله 50 درصد شود، باید به تعداد جذر این مقدار را حساب کنید که برابر با 2^64 میشود.
همانطور که مشاهده کردید، احتمال آنکه مقاومت در برابر تطابق شکسته شود، خیلی راحتتر از شکستن مقاومت preimage است. هیچ تابع هشی وجود ندارد که احتمال تطابق در آن وجود نداشته باشد، اما عموما پیدا کردن یک تطابق در آنها بسیار به طول میانجامد. بنابراین اگر شما از یک تابع مانند SHA-256 استفاده کنید، میتوانید فرض کنید که اگر خروجیهای دو تابع هش یکسان با یکدیگر برابر شود، بنابراین ورودیهای آنها نیز با یکدیگر برابر بوده است.
معمای خوبی باشد
این ویژگی بسیار جذاب است و کاربرد و اثر آن در رمزارزها بسیار زیاد است. این موضوع را در قسمت استخراج ارز دیجیتال چیست؟ توضیح خواهیم داد. بنابراین فقط کلیات این ویژگی را توضیح خواهیم داد. تابع هشی استاندارد تلقی میشود که برای حدس زدن ورودی آن، باید تعداد زیادی نانس را امتحان کنیم و به راحتی امکان حدس زدن ورودی آن وجود نداشته باشد.
کاربردهای تابع هش
با توجه به مطالبی که گفته شد، میتوان کاربردهای تابع هش را در چند بخش زیر خلاصه کرد:
رمزنگاری و حفظ امنیت
توابع هش یک طرفه هستند، یعنی نمیتوان از خروجی تابع به ورودی آن دست پیدا کرد. همچنین این توابع برای هر داده ورودی یک هش منحصر به فرد ایجاد میکنند. بنابراین باید بدانید هنگامی که رمزی برای اکانت خود تعیین میکنید، هش آن رمز در سیستم ذخیره میشود و سیستم هیچگاه رمز شما را ذخیره نمیکند.
هنگامی که دوباره رمز خود را وارد میکنید، سیستم مجددا آن را هش (Hash) میکند و با هش ذخیره شده در خود مقایسه میکند. از هشینگ چگونه عمل می کند؟ آنجا که تابع هش در ازای یک ورودی یکسان، همواره یک خروجی یکسان نیز دارد، سیستم میتواند به این وسیله درستی رمز شما را تشخیص دهد.
کوچک کردن و متحد کردن دادهها
همانطور که توضیح دادیم، مهم نیست طول ورودی چقدر باشد، خروجی یک تابع هش همواره طول و حالت ثابتی دارد. بنابراین اگر بخواهیم چندین داده را با یکدیگر متحد و یکپارچه کنیم، میتوانیم همه آنها را وارد یک تابع هش کرده و یک نتیجه متحد دریافت کنیم.
این اتفاقی است که داخل بلاک چینها و ارزهای دیجیتالی همچون بیت کوین رخ میدهد. اطلاعات تراکنشها درون واحدهایی به نام بلاک میشود و در نهایت این اطلاعات هش میشوند. هش بلاک به عنوان نمایندهای از اطلاعات یک بلاک عمل میکند. اگر کوچکترین تغییری در اطلاعات بلاک رخ بدهد، هش آن به طور کلی عوض میشود و سیستم متوجه دستکاری اطلاعات بلاک میشود.
در نتیجه توابع هش کاربرد زیادی نیز در ذخیره اطلاعات دارند. با استفاده از آنها میتوان اطلاعات را به صورت کم حجم و بهینه ذخیرهسازی کرد.
سخن پایانی
نقشی که توابع هش در سیستمهای غیرمتمرکزی همچون بلاک چین و ارزهای دیجیتال دارند، بسیار حیاتی و کلیدی است. بنابراین افرادی که میخواهند آگاهی کافی در مورد چگونگی کارکرد بلاک چین و ارزهای دیجیتال داشته باشند، باید اطلاعات کافی در مورد چگونگی کارکرد توابع هش داشته باشند.
در این مقاله از صرافی داموند سعی شد تا با زبانی ساده توضیح دهیم که تابع هش چیست؟ و ویژگیهای اصلی یک تابع هش استاندارد را نیز به صورت کامل بیان کردیم. در انتها نیز کاربردهای آن را در بلاک چین و ارزهای دیجیتال توضیح دادیم. امیدواریم توانسته باشیم این مفاهیم پایهای را به طور کامل شرح دهیم و آگاهی شما را در این زمینه افزایش دهیم.
ماینینگ چیست و استخراج ارز دیجیتال چقدر درآمد دارد؟
ماینینگ روش تولید ارزهای رمزنگاری است. انقلاب ارزهای دیجیتال با بیت کوین شروع شد که هم اکنون به عنوان بزرگترین ارز رمزنگاری در رتبه اول قرار دارد. ارزش این ارز مجازی در تاریخ 17 دسامبر 2021 به 46.7 هزار دلار رسیده است و در تاریخ ده نوامبر 2021 به بیشترین ارزش خود یعنی به 66.37 هزار دلار رسیده بود. طبق لیست CoinMarketCap تاکنون پرطرفدارترین ارزهای رمزنگاری بیت کوین و سپس ارزهایی از جمله Ethereum، Cardano ،Tether ،Binance Coin و XRP بوده اند.
مدیریت بیت کوین به عنوان یک ارز دیجیتالی در یک دفتر کل دیجیتال به نام بلاک چین انجام می شوند. ویژگی اصلی بلاکچین غیر متمرکز بودن آن است که بدون نیاز به نهاد متمرکزی مانند بانک ها یا دیگر موسسات مالی اداره می شود. ماینینگ بیت کوین بر مبنای این بلاکچین انجام می شود.
بیت کوین یک ارز مردم نهاد است که افراد عادی به عنوان Miner مسئول تولید، انتشار و مدیریت آن هستند. فناوری بلاک چین بسیار قدرتمند است و انجام تراکنش ها را به صورت ایمن ضمانت می کند. رکوردهای تراکنش ها به صورت دائمی و غیر قابل تعویض، در بلاک چین که مانند یک پایگاه داده دیجیتالی است، ذخیره می شوند.
عملیات تایید تراکنش ها توسط الگوریتم اجماع اثبات کار یا Proof-Of-Work توسط بلاکچین انجام می گردد. ماینرهای موجود در بلاکچین هر کدام حکم یک گره در شبکه را دارند. این گره ها مسئول تایید تراکنش ها می باشند. با تایید تراکنش ها بیت کوین های جدیدی در شبکه Mine یا استخراج می شوند.
عاملی که از ایجاد تورم در ارزهای رمزنگاری جلوگیری می کند محدود بودن تعداد کوین های رمزنگاری است. در مورد بیت کوین فقط 21 میلیون واحد از آن استخراج خواهد شد. یکی از عوامل مهم در تعیین ارزش یک ارز رمزنگاری، استقبال عموم مردم از آن است.
مفهوم ماینینگ بیت کوین به چه عملیاتی گفته می شود؟
برای استخراج هر کدام از کریپتوکارنسی ها روش مختلفی جهت ماینینگ استفاده می شود. در این جا در مورد ماینینگ بیت کوین صحبت می شود و در ادامه در مورد کلود ماینینگ بیت کوین توضیح می دهیم.
ماینینگ باعث می شود که ارزهای جدیدی تولید شده و برای تایید تراکنش ها مورد استفاده قرار گیرد. برای آنکه بدانیم ماینینگ چیست باید با مفهوم بلاک چین آشنا شویم.
برای یک نمونه عملی فرض کنید از بیت کوین برای خرید آنلاین کتاب استفاده می کنید. ابتدا کتاب را انتخاب و به سبد خرید خود اضافه می کنید. حالا روش پرداخت خود را پرداخت توسط بیت کوین انتخاب می نمایید.
تراکنش شما به صفی وارد می شود که مانند دیگر تراکنش ها در انتظار تأیید است. آخرین بلاک در بلاکچین آنقدر به گرفتن ورودی ها ادامه می دهد تا حجم بلاک پر شود. حد نهایی حجم هر بلاک در حال حاضر 1 مگابایت داده، می باشد.
وقتی یک بلاک پر شد و تراکنشهای داخل بلاک کامل شد، پاداشی به Miner داده می شود. البته جهت تایید واکنش از نیروی الکتریسیته و قدرت سخت افزارهای ماینر استفاده می شود تا مسائل پیچیده ریاضی را حل کنند و تراکنش خرید شما را به بلاکچین اتصال دهند.
جواب حل این مسئله ریاضی پیچیده یک عدد هگزادسیمال است که به آن هش می گویند. پاداشی که در مقابل حل مسئله داده می شود، در واحد همان ارز کریپتوکارنسی مورد پرداخت می باشد. البته همه ماینرها این پاداش را نمی گیرند بلکه تنها به اولین نفری که به جواب درست برسد و هش درست را اعلام کند، پاداش داده می شود. دیگران تنها چیزی که عایدشان می شود قبض برق خواهد بود.
بنابراین، در کریپتو ماینینگ ممکن است درآمد کسب کنید و یا امکان دارد چیزی عایدتان نشود. اگر افراد علاقمند به شرکت در ماینینگ سخت افزارهای محاسباتی قدرتمندی نداشته باشید، این کار می تواند باعث به هدر رفتن وقت شان بشود.
پس به کسانی که امکان خرید دستگاه های قدرتمند ندارند توصیه می شود برای کسب درآمد از بیت کوین در کلود ماینینگ بیت کوین شرکت کنند.
توابع هش، هش کردن (هشینگ)چیست؟
هش کردن (هشینگ) به فرآیند تولید یک خروجی با اندازه ثابت از ورودی با اندازه متغیر اشاره دارد.
این کار از طریق استفاده از فرمول های ریاضی معروف به توابع هش (که به عنوان الگوریتم های درهم سازی پیاده سازی می شوند) انجام می شود.
اگرچه همه توابع هش شامل استفاده از رمزنگاری نمیشوند، به اصطلاح توابع هش رمزنگاری در هسته ارزهای دیجیتال قرار دارند.
به لطف آنها، بلاک چین ها و سایر سیستم های توزیع شده قادر به دستیابی به سطوح قابل توجهی از یکپارچگی و امنیت داده ها هستند.
هر دو توابع هش مرسوم و رمزنگاری قطعی هستند.
قطعی بودن به این معنی است که تا زمانی که ورودی تغییر نمی کند، الگوریتم هش همیشه همان خروجی را تولید می کند (همچنین به عنوان digest یا هش شناخته می شود).
به طور معمول، الگوریتمهای هش ارزهای دیجیتال بهعنوان توابع یک طرفه طراحی میشوند، به این معنی که نمیتوان آنها را به راحتی بدون زمان و منابع محاسباتی بازگرداند.
به عبارت دیگر، ایجاد خروجی از ورودی بسیار آسان است، اما حرکت در جهت مخالف (تولید ورودی از خروجی به تنهایی) نسبتاً دشوار است.
به طور کلی، هرچه یافتن ورودی دشوارتر باشد، الگوریتم هش ایمن تر در نظر گرفته می شود.
عملکرد هش چگونه کار می کند؟
توابع هش مختلف خروجی هایی با اندازه های مختلف تولید می کنند، اما اندازه خروجی ممکن برای هر الگوریتم هش همیشه ثابت است.
به عنوان مثال، الگوریتم SHA-256 تنها می تواند خروجی های 256 بیتی تولید کند، در حالی که SHA-1 همیشه یک خلاصه 160 بیتی تولید می کند.
برای نشان دادن، بیایید کلمات “Binance” و “binance” را از طریق الگوریتم هش SHA-256 (الگوریتم مورد استفاده در بیت کوین) اجرا کنیم.
SHA-256
Input Output (256 bits)
Binance f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191
binance 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2
توجه داشته باشید که یک تغییر جزئی (حوزه حرف اول) منجر به مقدار هش کاملاً متفاوتی شد.
اما از آنجایی که ما از SHA-256 استفاده می کنیم، خروجی ها همیشه یک اندازه ثابت 256 بیتی (یا 64 کاراکتر) دارند – صرف نظر از اندازه ورودی.
همچنین، مهم نیست که دو کلمه را چند بار در الگوریتم اجرا کنیم، دو خروجی ثابت خواهند ماند.
برعکس، اگر همان ورودی ها را از طریق الگوریتم هش SHA-1 اجرا کنیم، نتایج زیر را خواهیم داشت:
SHA-1
Input Output (160 bits)
Binance 7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1
binance e58605c14a76ff98679322cca0eae7b3c4e08936
شایان ذکر است که SHA مخفف عبارت Secure Hash Algorithms می باشد.
به مجموعه ای از توابع هش رمزنگاری اشاره دارد که شامل الگوریتم های SHA-0 و SHA-1 به همراه گروه های SHA-2 و SHA-3 می شود.
SHA-256 به همراه SHA-512 و انواع دیگر، بخشی از گروه SHA-2 است.
در حال حاضر تنها گروه های SHA-2 و SHA-3 ایمن در نظر گرفته می شوند.
چرا اهمیت دارند؟
توابع هش معمولی طیف گسترده ای از موارد استفاده از جمله جستجوی پایگاه داده، تجزیه و تحلیل فایل های بزرگ و مدیریت داده ها را دارند.
از سوی دیگر، توابع ه ش رمزنگاری به طور گسترده ای در برنامه های کاربردی امنیت اطلاعات، مانند احراز هویت پیام و اثر انگشت دیجیتال استفاده می شود.
وقتی صحبت از بیت کوین به میان می آید، توابع ه ش رمزنگاری بخشی ضروری از فرآیند استخراج هستند و همچنین در تولید آدرس ها و کلیدهای جدید نقش دارند.
قدرت واقعی هش کردن زمانی به دست می آید که با حجم عظیمی از اطلاعات سروکار داشته باشید.
به عنوان مثال، می توان یک فایل یا مجموعه داده بزرگ را از طریق یک تابع ه ش اجرا کرد و سپس از خروجی آن برای تأیید سریع صحت و یکپارچگی داده ها استفاده کرد. این به دلیل ماهیت قطعی توابع هش امکان پذیر است:
ورودی همیشه منجر به یک خروجی ساده و فشرده (ه ش) می شود. چنین تکنیکی نیاز به ذخیره و “به خاطر سپردن” مقادیر زیادی از داده ها را از بین می برد.
هشینگ به ویژه در زمینه فناوری بلاک چین مفید است.
بلاک چین بیت کوین دارای چندین عملیات است که شامل هش می شود که بیشتر آنها در فرآیند استخراج هستند.
در واقع، تقریباً همه پروتکلهای ارزهای دیجیتال برای پیوند دادن و متراکم کردن گروههایی از تراکنشها به بلوکها، و همچنین برای تولید پیوندهای رمزنگاری بین هر بلوک، به طور مؤثر یک بلاک چین را ایجاد میکنند، به هش کردن متکی هستند.
چگونه بیت کوین بخریم؟
برای خرید ارزدیجیتال BTC به صورت مستقیم و غیر مستقیم میتوانید عمل کنید :
۱-ورود به صرافی آنلاین فراچنج farachange.com
روش مستقیم :این است که بصورت مستقیم کیف پول ارز دیجیتال خود را شارژ کنید و سپس BTC بخرید.
روش غیر مستقیم:ابتدا اقدام به خرید تتر یا خرید اتریوم کنید و سپس تتر یا بیت کوین خود را تبدیل به BTC کنید.
توابع هش رمزنگاری
مجدداً، یک تابع هش که تکنیک های رمزنگاری را به کار می گیرد، ممکن است به عنوان یک تابع هش رمزنگاری تعریف شود.
به طور کلی، شکستن یک تابع هش رمزنگاری به تعداد بیشماری از تلاشهای brute-force نیاز دارد. برای اینکه یک فرد بتواند یک تابع هش رمزنگاری را “بازگشت” کند، باید حدس بزند که ورودی چه بوده است تا زمانی که خروجی مربوطه تولید شود.
با این حال، این امکان وجود دارد که ورودی های مختلف دقیقاً همان خروجی را تولید کنند، در این صورت یک “برخورد” رخ می دهد.
از نظر فنی، یک تابع هش رمزنگاری باید از سه ویژگی پیروی کند تا به طور موثر ایمن در نظر گرفته شود.
ممکن است آنها را بهعنوان مقاومت در برابر برخورد، مقاومت پیشتصویر و مقاومت پیشتصویر دوم توصیف کنیم.
قبل از بحث در مورد هر ویژگی، بیایید منطق آنها را در سه جمله کوتاه خلاصه کنیم.
مقاومت در برابر برخورد: یافتن هر دو ورودی مجزا که هش یکسانی را با خروجی تولید می کنند غیر ممکن است.
مقاومت پیش تصویر: «برگرداندن» تابع هش غیر ممکن است (یافتن ورودی از یک خروجی داده شده).
مقاومت در برابر تصویر دوم: یافتن هر ورودی دومی که با ورودی مشخص شده برخورد کند غیرممکن است.
مقاومت در برابر برخورد
همانطور که گفته شد، یک برخورد زمانی اتفاق می افتد که ورودی های مختلف دقیقا همان هش را تولید کنند.
بنابراین، یک تابع هش تا لحظه ای که کسی برخوردی را پیدا کند، در برابر برخورد مقاوم در نظر گرفته می شود. توجه داشته باشید که برخوردها همیشه برای هر تابع هش وجود خواهد داشت زیرا ورودی های ممکن بی نهایت هستند، در حالی که خروجی های ممکن محدود هستند.
به عبارت دیگر، یک تابع هش زمانی در برابر برخورد مقاوم است که امکان یافتن برخورد آنقدر کم باشد که به میلیون ها سال محاسبات نیاز دارد.
بنابراین علیرغم این واقعیت که هیچ توابع هش بدون برخورد وجود ندارد، برخی از آنها به اندازه کافی قوی هستند که مقاوم در نظر گرفته شوند (مانند SHA-256).
در میان الگوریتمهای مختلف SHA، گروههای SHA-0 و SHA-1 دیگر امن نیستند زیرا برخوردهایی پیدا شده است. در حال حاضر، گروه های SHA-2 و SHA-3 در برابر برخورد مقاوم هستند.
مقاومت پیش تصویر
خاصیت مقاومت پیش تصویر به مفهوم توابع یک طرفه مربوط می شود.
یک تابع هش زمانی که احتمال بسیار کمی وجود دارد که کسی ورودی را پیدا کند که یک خروجی خاص را ایجاد کرده است، مقاوم در برابر تصویر اولیه در نظر گرفته می شود.
توجه داشته باشید که این ویژگی با ویژگی قبلی متفاوت است، زیرا یک مهاجم سعی میکند با نگاه کردن به یک خروجی مشخص، ورودی را حدس بزند.
از سوی دیگر، تصادم زمانی اتفاق میافتد که فردی دو ورودی متفاوت را پیدا کند که خروجی یکسانی را تولید میکنند، اما مهم نیست که کدام ورودی استفاده شده است.
ویژگی مقاومت پیش تصویر برای محافظت از داده ها ارزشمند است زیرا یک هش ساده یک پیام می تواند صحت آن را بدون نیاز به افشای اطلاعات ثابت کند.
در عمل، بسیاری از ارائه دهندگان خدمات و برنامه های کاربردی وب، هش های تولید شده از رمزهای عبور را به جای رمزهای عبور در متن ساده ذخیره و استفاده می کنند.
مقاومت پرایماژ دوم
برای سادهتر شدن، میتوان گفت که مقاومت پرایماژ دوم جایی بین دو ویژگی دیگر است.
حمله دوم پیش تصویر زمانی رخ می دهد که فردی بتواند ورودی خاصی را پیدا کند که همان خروجی ورودی دیگری را که قبلاً می دانسته را تولید می کند.
به عبارت دیگر، یک حمله ثانویه اولیه شامل یافتن یک برخورد است، اما به جای جستجوی دو ورودی تصادفی که هش یکسانی را تولید میکنند، ورودیای را جستجو میکنند که همان هش را ایجاد میکند که توسط ورودی خاص دیگری ایجاد شده است.
بنابراین، هر تابع هش که در برابر برخورد مقاوم است در برابر حملات preimage دوم نیز مقاوم است، زیرا مورد دوم همیشه مستلزم برخورد است.
با این حال، هنوز هم میتوان یک حمله پیشتصویر را روی یک عملکرد مقاوم در برابر برخورد انجام داد، زیرا مستلزم یافتن یک ورودی از یک خروجی است.
مراحل زیادی در استخراج بیت کوین وجود دارد که شامل توابع هش می شود، مانند بررسی تعادل، پیوند دادن ورودی و خروجی تراکنش ها، و هش کردن تراکنش ها در یک بلوک برای تشکیل درخت مرکل.
اما یکی از دلایل اصلی ایمن بودن بلاک چین بیت کوین این واقعیت است که ماینرها باید تعداد بی شماری از عملیات هش را انجام دهند تا در نهایت یک راه حل معتبر برای بلاک بعدی پیدا کنند.
به طور خاص، یک ماینر باید چندین ورودی مختلف را هنگام ایجاد یک مقدار هش برای بلوک کاندید خود امتحان کند.
در اصل، آنها تنها زمانی قادر خواهند بود تا بلوک خود را اعتبارسنجی کنند که هش خروجی تولید کنند که با تعداد معینی صفر شروع شود.
تعداد صفرها چیزی است که دشواری استخراج را تعیین می کند و با توجه به نرخ هش اختصاص داده شده به شبکه متفاوت است.
در این مورد، نرخ هش نشان میدهد که چقدر قدرت رایانه در استخراج بیتکوین سرمایهگذاری شده است.
اگر نرخ هش شبکه افزایش یابد، پروتکل بیت کوین به طور خودکار سختی استخراج را تنظیم می کند تا میانگین زمان لازم برای استخراج یک بلوک نزدیک به 10 دقیقه باقی بماند.
در مقابل، اگر چندین ماینر تصمیم بگیرند که استخراج را متوقف کنند و باعث کاهش قابل توجه نرخ هش شود، سختی استخراج تنظیم میشود و ماینینگ را آسانتر میکند (تا زمانی که میانگین زمان بلاک به 10 دقیقه برگردد).
توجه داشته باشید که ماینرها مجبور نیستند برخوردها را پیدا کنند زیرا چندین هش وجود دارد که می توانند به عنوان یک خروجی معتبر تولید کنند (شروع تعداد معینی از صفر).
بنابراین چندین راه حل ممکن برای یک بلوک خاص وجود دارد، و ماینرها فقط باید یکی از آنها را پیدا کنند – با توجه به آستانه تعیین شده توسط سختی استخراج.
از آنجایی که استخراج بیت کوین یک کار پرهزینه است، ماینرها دلیلی برای تقلب در سیستم ندارند زیرا منجر به زیان های مالی قابل توجهی می شود.
هرچه ماینرهای بیشتری به بلاک چین بپیوندند، بزرگتر و قوی تر می شود.
بستن افکار
شکی نیست که توابع هش ابزارهای ضروری در علوم کامپیوتر هستند، به خصوص وقتی که با حجم عظیمی از داده ها سروکار داریم.
سختی استخراج بیت کوین به سرعت کاهش می یابد و نگران کننده است
مشکل استخراج بیت کوین بار دیگر در میان اصلاح 10 درصدی بیت کوین، سیگنال های متفاوتی را ارائه می دهد.
استخراج بیت کوین همیشه یک شاخص قدرتمند برای تقاضا برای اولین ارز دیجیتال بوده است و گاهی اوقات به عنوان یکی از راههای تعیین شرایط بازار استفاده میشود. طبق دادههای WuBlockchain ، هشریت بیتکوین امروز بیش از ۱ درصد از دست داده است که یک ضرر متوسط محسوب میشود.
چگونه نرخ هش شرایط بازار را منعکس می کند
هش ریت علاوه بر بازتاب تقاضا برای یک ارز دیجیتال، میتواند به معاملهگران و سرمایهگذاران در مورد شرایط بازار، اگر در حال انباشت یا توزیع باشد، راهنمایی کند. در طول دوره رشد تابستانی سال 2021، پس از سرکوب چینی ها در صنعت دارایی های دیجیتال، که بر استخراج نیز تأثیر گذاشته است، بازار شاهد بزرگترین افت در هش ریت در تاریخ بود.
افزایش قیمت احتمالاً به دلیل کاهش سریع صدور BTC بود که بعداً باعث عدم فشار فروش در بازار شد. بعداً، بازار لحظاتی پس از بازگشت هش ریت به سطوح قبل از سرکوب، شاهد یک اصلاح عظیم 50 درصدی بود.
هش ریت چگونه بر بازار امروز تأثیر می گذارد؟
با توجه به نمودارهای سختی استخراج و هش ریت، شاهد افزایش مداوم در هر دو معیار هستیم که نشان می دهد با وجود شرایط ناخوشایند بازار، تقاضا برای بیت کوین همچنان بالاست.
اما از آنجایی که بیت کوین به طور مداوم ارزش خود را از دست می دهد و هش ریت در حال افزایش است، ممکن است بازار در واقع شاهد افزایش فشار فروش باشد که ممکن است بیت کوین را بیشتر پایین بیاورد.
در زمان انتشار، اولین ارز دیجیتال با قیمت 40,122 دلار معامله می شود و به پشتیبانی خط روند رسیده است که از 22 فوریه به عنوان یک پلتفرم پرش عمل می کند.
دیدگاه شما