بیت کوین در برابر بیت کوین کش؛ علت تقسیم چه بود؟
پس از افزایش استفاده از بیتکوین در سالهای اخیر، متخصصان و افرادی که پس از ساتوشی ناکاموتو توسعهی این سیستم را برعهده دارند، در مورد ظرفیت بلوکهای بلاکچین به اختلاف نظر رسیدند. افزایش تعداد تراکنشها باعث شده بود تا کاربران زمان بیشتری را برای تایید تراکنشهای خود صرف کنند. بیتکوین در هر ثانیه ظرفیت پشتیبانی از هفت تراکنش را دارد و از اینرو شماری از افراد خواستار افزایش ظرفیت بلوکهای بیتکوین برای بالا بردن سرعت تایید تراکنشها و در نتیجه انتقال پول بودند. بیتکوین در حالی از هفت تراکنش در هر ثانیه پشتیبانی میکند که شبکهی مالی نظیر ویزا در هر ثانیه پذیرای بیش از یک هزار تراکنش است.
بیتکوین کش را باید نسخهای جدا شده از بیتکوین خواند که ساختاری مشابه بیتکوین دارد با این تفاوت که ظرفیت بلوکها در بیتکوین کش از نظر تعداد تراکنشها بسیار بیشتر است. پس از آنکه بیتکوین کش در اول آگوست سال جاری رسما از بیتکوین جدا شد، تمام کاربران بیتکوین که به هر تعداد از بیتکوین را در اختیار داشتند، به همان اندازه بیتکوین کش دریافت کردند. در واقع افرادی که تا پیش از اول آگوست ۲۰۱۷ بیتکوین در اختیار داشتند، به همان اندازه بیتکوین کش نیز دریافت کردند.
مخالفان بیتکوین کش معقدند که افزایش تعداد تراکنشهایی که در هر بلوک قرار میگیرند باعث میشود تا قدرت پردازشی بیشتری برای اثبات کار یا همان مرحلهی PoW صرف شود و از اینرو بیتکوین از فلسفهی توزیع شدهی خود فاصله میگیرد، چراکه تمام کاربران و ماینرها نمیتوانند سختافزار خود را به هر اندازهی مورد نیاز قدرتمند کنند و در نتیجه در بیتکوین کش ماینرهایی حرف اول را خواهند زد که قدرت پردازشی بسیار بالاتری دارند. در حال حاضر بیتکوین کش ۳۱۳ دلار آمریکا ارزش دارد که بسیار کمتر از ارزشبیتکوین است.
باید دید که در آینده چه سرنوشتی برای بیتکوین کش رقم خواهد خورد و آیا بیتکوین کش میتواند به اندازهی بیتکوین ارزشمند شود یا خیر؟
پانویس:
امضاء دیجیتال
تمام افرادی که در شبکهی بیتکوین حضور دارند حداقل یک جفت کلید دارند که شامل یک کلید عمومی و یک کلید خصوصی است. هر سکهی الکترونیک را باید دنبالهای ازامضاهای دیجیتال خواند. هر مالک سکهی بیت کوین برای ارسال یک سکه به دیگری، ترکیبی از کلید عمومی گیرنده را با زنجیرهی کلیدهای دیجیتال پیشین ترکیب کرده و در واقع کدگذاری میکند. در مرحلهی بعدی این کد هش شده با استفاده از کلید خصوصی فرستنده، امضا میشود. گیرنده قادر است از طریق کلید عمومی فرستنده، اطمینان حاصل کند که پول دریافت شده از سوی شخصی که مدعی شده پولی را ارسال کرده، به واقع از سوی وی ارسال شده است. در واقع اگر گیرنده نتواند کد دریافت شده را با کلید عمومی فرستنده اعتبار سنجی کند، پس این فرد خود را به دروغ فرستندهی بیت کوین معرفی میکند. اما بهتر است به تشریح امضای دیجیتال و نحوهی کدگذاری و فناوری مورد استفاده در امضای دیجیتال بپردازیم.
فناوری مورد استفاده در امضای دیجیتال بیت کوین، از نوع کدگذاری غیرمتفارن است. کدگذاری در کل به دو حوزهی کدگذاری متقارن و غیرمتقارن تقسیم میشود. همانطور که اشاره کردیم در بیت کوین و ایجاد امضای دیجیتال از کدگذاری غیرمتفارن استفاده میشود، اما ساز و کار کدگذاری غیرمتفارن چگونه است؟ در این روش دو کلید خصوصی و عمومی مورد استفاده قرار میگیرد. جعبهای را در نظر بگیرید که دو کلید خصوصی و عمومی دارد. کلید عمومی فقط برای قفل کردن این جعبه مورد استفاده قرار میگیرد، در حالی که کلید خصوصی جز در باز کردن قفل جعبه کاربرد دیگری ندارد؛ با استفاده از کلید عمومی که این جعبه را قفل کرده، نمیتوان قفل جعبه را باز کرد و باید حتما کلید خصوصی مورد استفاده قرار گیرد. در صورتی که کاربر A مدعی شود که جعبهای را برای کاربر B ارسال کرده و آن را با استفاده از کلید عمومی کاربر B کدگذاری کرده، دریافت کننده یا همان کاربر B باید بتواند با استفاده از کلید خصوصی خود این جعبه را باز کند، در غیر اینصورت ادعای کاربر A مبنی بر ارسال جعبه دروغی بیش نبوده و از این رو در استفاده از امضای دیجیتال کاربری که بیت کوین را ارسال میکند، نمیتواند منکر ارسال شده و در نتیجه احتمال تقلب بسیار کاهش پیدا میکند. همچنین در صورت ایجاد تغییر در کد هش شده، دریافت کننده در صورت استفاده از کلید خصوصی خود نمیتواند به نتیجهی صحیحی برسد و در نتیجه ایجاد تغییر میان راه روی کد هش شده نیز عملا امکان تغییرات در تراکنشها نظیر تغییر مبلغ را غیرممکن میکند. پس تا زمانی که کاربری به کلید خصوصی دیگری دسترسی نداشته باشد، امکان ایجاد اختلال در سیستم را ندارد. در سیستم بیت کوین نیز هر کاربر یک کلید خصوصی و یک کلید عمومی دارد. کلید خصوصی کاربر مخفی بوده و نباید کسی جز خود کاربر از آن اطلاع داشته باشد، اما کلید عمومی همانطور که از اسم آن نیز پیدا است، عمومی بوده و همه کاربران میتوانند به آن دسترسی داشته باشند.
بصورت کلی میتوان کاربرد کدگذاری نامتقارن را که در بلاکچین و شبکهی بیتکوین مورد استفاده قرار گرفته، در دو مورد خلاصه کرد:
- اطلاعات رمزنگاری شده با استفاده از کلید عمومی از طریق کلید خصوصی رمزگشایی میشوند.
- اطلاعات امضا شده با کلید خصوصی از طریق کلید عمومی قابل شناسایی هستند.
هر کاربر در شبکهی بیتکوین میتواند چندین کلید عمومی و کلید خصوصی مربوط به آن را داشته باشد و در واقع کاربران بیتکوین منحصر به یک کلید عمومی و خصوصی نیستند. به بیان بهتر کاربران بیتکوین میتوانند در کیف پول خود چندین کلید عمومی و خصوصی را داشته باشند. با توجه به تعداد بالای آدرسهایی که میتواند تولید شود، اصلا نباید در مورد تکراری بودن آدرسها احساس نگرانی کرد. بیت کوین قادر است تا ۴۵^۱۰ × ۱.۴۶ یا به بیان ساده ۱۶۰^۲ آدرس را تولید کند. شاید در نگاه اول این عدد بسیار کوچک به نظر برسد. برای درک عظمت احتمالات موجود برای تعداد آدرسهایی که میتواند تولید شود، بهتر است بدانید که تعداد دانههای شن موجود روی کرهی زمین نزدیک به ۱۸^۱۰ * ۷.۵ است. حال تصویر کنید که هر از یک این تعداد دانههای شن موجود خود به همین اندازه نیز دانه شن داشته باشد، با این وجود مجموع شنها به رقم ۱۸^۱۰ * ۵۶ میرسد که باز هم کوچکتر از تعداد احتمالات موجود برای آدرسهایی است که بیت کوین میتواند تولید کند.
اثبات کار
پروتکل اثبات کار یا POW در اصل یک روش برای مقابله با انجام حملاتی نظیر DDoS و مقابله با اسمپینگ است. با استفاده از این روش برای کاربری که به دنبال دریافت یک سرویس از سیستم است، یک وظیفهی پردازشی در نظر گرفته میشود تا از این طریق پردازندهی کاربر متقاضی زمانی را برای حل این وظیفهی پردازشی سپری کرده و ترافیک دریافت سرویس از سیستم شاهد افزایش ترافیک نباشد. اصلیترین ویژگی سیستم اثبات کار باید اینگونه باشد که وظیفهی سپرده شده به کاربر نسبتا سخت اما قابل حل بوده و در مقابل ارائه دهندهی سرویس برای چک کردن صحت انجام کار بار پردازشی زیادی را به دوش نکشد. سیستم اثبات کار را بنابر کاربردهای مختلف میتوان با روشهای مختلفی پیاده کرد. از جملهی روشهایی که در اثبات کار مورد استفاده قرار میگیرد باید به رمزنگاری دنبالهدار (Hash Sequence) و درخت مرکل (Merkle Tree) اشاره کرد که در بیتکوین نیز مورد استفاده قرار میگیرد.
اثبات کار در بیتکوین به این ترتیب است که ماینر تعدادی تراکنش را از میان تراکنشهای تایید نشده انتخاب کرده و با دریافت کد هش بلوک قبلی پروسهی اثبات کار را آغاز میکند. پارامترهای مورد استفاده در تابع هش SHA-256 شامل تراکنشهای انتخابی، کد هش بلوک قبلی و یک عدد تصادفی است. سیستم بیتکوین براساس سرعت ایجاد بلوکهای جدید در بیتکوین، سختی کار را از طریق تغییر نتیجهی هدف مورد انتظار برای تابع هش تغییر میدهد. ماینر باید عدد مورد نظر را تا رسیدن به موفقیت که کوچکتر شدن حاصل هش از نتیجهی هدف است، در هر مرحله یک واحد افزایش دهد. پس از رسیدن به نتیجه، بلوک در شبکهی بیت کوین ثبت شده و نتیجهی هش به دست آمده به عنوان شمارهی بلوک تعیین میشود. این شماره در بلوک بعدی ثبت خواهد شد تا زنجیره حفظ شود.
اما همانطور که اشاره کردیم نتیجهی هدف پیشبینی شده برای مقایسه با نتیجه تابع هش تغییر میکند. با توجه به اینکه قدرت پردازشی پردازندهها و همچنین تعداد ماینرها روز به روز افزایش پیدا میکند، از اینرو زمان میانگین ۱۰ دقیقهای برای ثبت هر بلوک کاهش مییابد و در نتیجه سیستم برای باقی ماندن زمان میانگین ثبت بلوک روی ۱۰ دقیقه، نتیجه کار را سختتر میکند. سختی کار صورت میانگین با ثبت هر ۲۰۱۶ بلوک از نو تعیین میشود.
پاداش معدنکاوی نیز هر ۲۱۰٫۰۰۰ بلوک یکبار نصف میشود. در حال حاضر پاداش معدنکاوی هر بلوک بیتکوین ۱۲.۵ بیتکوین است. این رویه تا استخراج تمام بیتکوینها ادامه خواهد داشت. در حال حاضر بیش از ۱۶.۵ میلیون بیتکوین استخراج شده و تقریبا ۴.۵ میلیون بیتکوین دیگر تا سال ۲۱۴۰ استخراج خواهد شد. در حال حاضر ارزش بازار بیتکوینهای استخراج شده بیش از ۷۴ میلیارد دلار است که افزایش ارزش هر بیت کوین این رقم را تغییر میدهد.
تابع رمزنگاری یا هش
SHA-2 یا Secure Hash Algorithm 2 مجموعهای از تایعهای رمزنگاری است که توسط آژانس امنیت ملی ایالات متحدهی آمریکا طراحی شدهاند. تابع هش رمزنگاری شده مجموعهای از الگوریتمهای مبتنی بر عملیات ریاضی است که روی دادههای دیجیتال صورت میپذیرد. بزرگترین ویژگی توابع رمزنگاری یا هش این است که هیچگاه امکان ندارد یک تابع هش با ورودهای متفاوت، نتیجهای یکسان را نتیجه بدهد. البته SHA-2 تنها استاندارد موجود برای رمزنگاری نیست و پیش از آن شاهد استفاده از SHA-1 بهعنوان یک روش رمزنگاری بودیم. خانوادهی رمزنگاری به روش SHA-2 متشکل از ۶ تابع است که ۲۲۴، ۲۵۶، ۳۸۴ و ۵۱۲ بیتی هستند. اینتوابع شامل SHA-224، SHA-256، SHA-384، SHA-512، SHA-512/224 و SHA-512/256 میشوند.
انگیزه
انگیزه را باید اصلیترین دلیلی خواند که باعث میشود گرههای شبکه سلامت سیستم را حفظ کنند. اولین تراکنش در هر بلوک، اهمیت بسیار زیادی دارد، چراکه اولین تراکنش مربوط به تولید بیتکوین جدیدی است که به عنوان پاداش در اختیار ماینر قرار میگیرد. همین پاداش باعث میشود تا ماینرها نیروی پردازشی خود را در جهت سلامت سیستم مورد استفاده قرار دهند. در واقع به همین دلیل است که گرههای شبکه که در حال تایید بلوکهای جدید هستند، معدنکاو نام گرفتهاند، چراکه این افراد در ایجاد بیتکوینهای جدید نقش اصلی را بر عهده دارند و همچون معدنکاوانی هستند که در معدن طلا رگههای جدیدی از طلا را یافته و به ذخایر اضافه میکنند. افزایش میزان بیتکوینهای در گردش به منابعی بستگی دارد که معدنکاوان اختصاص میدهند. در مورد پول رمزنگاری شده این منابع شامل انرژی الکتریکی، زمان و قدرت پردازشی است.
البته باید به این نکته اشاره کنیم که با توجه به محدودیت ۲۱ میلیونی تعداد بیتکوینها، پس از تولید ۲۱ میلیون بیتکوین دیگر شاهد ارائهی پاداش در قالب بیتکوین جدید به ماینرها نخواهیم بود و سیستم درصدی از پول تراکنش انتقالی را به ماینر برای تایید تراکنشها انتقال خواهد داد تا همچنان صحت عملکرد سیستم حفظ شود. البته این درصد که سیستم را تا حدودی شبیه به عوارض بانکی دریافت شده برای انتقال بانکی میکند، بسیار کمتر است و از اینرو بازهم برتری با بیتکوین خواهد بود.
پاداش در بیتکوین به نوعی در نظر گرفته شده که علاوه بر تشویق ماینرها برای تایید تراکنشها، چرخهی سالمی را نیز ایجاد میکند. حتی اگر یک گره با نیروی پردازشی بسیار بالا بتواند بر نیروی پردازشی کل سیستم بیتکوین غلبه کند، پاداش به اندازهای خواهد بود که وی قدرت خود را در جهت کلاهبرداری و از میان بردن صحت عملکرد سیستم به کار نگیرد، چراکه بیتکوینهای دریافت شده از طریق معدنکاوی بسیار بیشتر خواهد بود
- ۹۷/۰۴/۰۳