هشینگ یکی از مهم ترین فناوریهایی است که باعث حفظ امنیت بیتکوین میشود اما این فناوری چطور کار میکند؟
یکی از مهم ترین قطبهای دنیای ارزهای دیجیتال، این است که چنین سیستمهایی بی نیاز به اعتماد هستند. این یعنی در این سیستمها برای اثبات هویت خودتان نیازی نیست که متکی بر یک شخص ثالث مثل یک بانک یا دولت باشید. این کار با کمک فناوریهایی از جمله تابع هش انجام میشود. تابع هش یک نوع رمزنگاری هوشمندانه است که امکان شناسایی اشخاص بدون افشای هویت اصلی آنها را فراهم میکند.
تابع هش چیست؟
تابع هش تکنیکی است که میتوان با استفاده از آن یک قطعه داده را به ترکیبی نامنظم از حروف و اعداد تبدیل کرد تا ماهیت داده اصلی مخفی شود. تابع هش از این جهت خاص است که چنین مجموعهای از حروف و اعداد را ایجاد میکند اما در صورت بروز کوچکترین تغییر در منبع اصلی، خروجی کاملاً متفاوت خواهد بود.
این یعنی میتوان از تابع هش برای تعیین اینکه چه کسی مالک یک قطعه داده است استفاده کرد بدون اینکه نیاز باشد خود دادهها مشخص شوند. این فناوری به نوعی شبیه یک کلید دیجیتال است.
تابع هش چطور کار میکند؟
هشینگ، یک قطعه داده را تبدیل به یک کد باینری یعنی ترکیبی از صفر و یکها میکند. پس از انجام این کار، اعداد به بخشهای مختلف شکسته شده و فرایندی به اسم تابع محاسبات روی آنها اعمال میشود. نتیجه کار مجموعهای 64 رقمی از اعداد و حروف است. سپس این رشته 64 رقمی به روشهای مختلفی که در ادامه بررسی میکنیم، استفاده میشود. اما هک کردن این رشته 64 رقمی تقریباً غیرممکن است چون این تبدیل توسط یک الگوریتم انجام میشود که فرمول آن مشخص نیست. تلاش برای هک کردن چنین سیستمی به نوعی شبیه تلاش برای طی کردن مسیری از طریق یک کالیدوسکوپ است. اما برای نرمافزار، خواندن تابع هش و بررسی اینکه آیا این تابع به صورت معتبر و درست تولید شده یا خیر، تقریباً به صورت فوری انجام میشود.
آیا میدانستید؟
کرک کردن هش یک آدرس بیتکوین، برای کامپیوتری که قادر است هر ثانیه 15 تریلیون محاسبه انجام دهد، تقریباً 0.65 میلیارد میلیارد سال زمان میبرد.
تابع هش چه کاربردهایی دارد؟
- ایجاد کلیدهای خصوصی و عمومی: برای ارسال و دریافت ارزهای دیجیتال یا برای اجرای تراکنش در یک بلاکچین به یک جفت کلید نیاز دارید. معمولاً این جفت کلید به صورت عمومی و خصوصی هستند. کلید خصوصی از طریق یک تابع هش به کلید عمومی متصل میشود تا اطلاعات کاربران را حفاظت کند. میتوانید کلیدهای عمومی خودتان را برای هر شخصی بفرستید یا آنها را در یک پروفایل عمومی درج کنید اما به دلیل استفاده از تابع هش، هیچ کس قادر به تشخیص کلید خصوصی شما نیست.
آیا میدانستید؟
در سال 2013 بلاکچین بیتکوین تصادفاً به دو بخش تقسیم شد چون بعضی از ماینرها نرمافزار خودشان را بروزرسانی نکرده بودند. در این زمان امکان خرج کردن دوباره کوینها وجود داشت.
- ماینینگ بیتکوین: برای اینکه شبکه عادلانه و درست کار کند، بیتکوین سعی میکند زمین بازی را برای همه اعضا هموار نگه دارد تا همگی به یک اندازه حق ایجاد بلاک بعدی را داشته باشند. به این ترتیب بیتکوین از یک مسابقه محاسباتی استفاده میکند که هر زمانی بلاکی منتشر میشود دوباره شروع میشود. هر ماینر برای برنده شدن در این مسابقه مجموعهای از تراکنشها را جمع آوری میکند که شامل اشارهگری به بلاک قبلی هستند و این اطلاعات را در یک تابع هش مورد استفاده قرار میدهد. برای برنده شدن در این مسابقه باید تابع هشی ایجاد کنید که بسته به میزان فعلی دشواری شبکه، با تعداد مشخصی صفر شروع میشود. هر چه تعداد صفرها بیشتر باشد، سطح دشواری بیشتر است. در واقع از این توابع هش برای پیاده سازی معماهایی در قلب بلاکچین استفاده شده است.
آیا میدانستید؟
در اکتبر 2018 نرخ هش بیتکوین 50 اگزا هش برثانیه بود. این شرایط باعث شده که شبکه بیتکوین 15 میلیون بار قدرتمندتر از سریع ترین ابرکامپیوتر جهان یعنی tianhe-2 باشد.
- لینک کردن بلاکها در بلاکچین: اگر بلاکهای یک بلاکچین به هم لینک نشوند، درج یک بلاک جعلی بین آنها به راحتی انجام میشود. بیتکوین با لینک کردن هر بلاک به بلاک قبلی از بروز این مشکل پیشگیری میکند. این کار با استفاده از اشاره گر هش انجام میشود. اشاره گر هش، از هش بلاک قبلی زنجیره به دست میآید. این یعنی همه میتوانند بررسی کنند که تراکنشهای یک بلاک دنبالهای از تراکنشهای بلاک قبلی هستند. این ویژگی به ماینرها امکان میدهد از مجاز بودن کل زنجیره اطمینان حاصل کنند و اینکه یک ماینر مخرب امکان اضافه کردن بلاک دلخواهش را به بلاکچین نداشته باشد. همچنین این ویژگی باعث میشود که بتوان تاریخچه هر کوین را دنبال کرد و به وقتی که ماین شده اند برگشت.
آینده
در دنیای کامپیوتر هیچ چیز غیرقابل هک نیست اما هشینگ باعث شده انجام کارهای مخرب بسیار سخت شود. در حال حاضر و با قدرت پردازشی فعلی، هک کردن یک تابع هش میلیونها سال زمان میبرد اما در آینده فناوریهایی مثل کامپیوتر کوانتوم میتوانند باعث کاهش چشمگیر این زمان شوند. با این حال سازندگان بیتکوین از آنچه ممکن بوده در آینده رخ دهند آگاه هستند و فعالانه در حال طراحی الگوریتمهایی مقاوم در برابر کوانتوم هستند. اما در حال حاضر بعید است که هشینگ به این زودی ناپدید و منسوخ شود.