با شروع ماه آگوست تو اجتماع کریپتوکارنسی می دیدیم که بیتکوینرها روز استقلال بیتکوین رو به همدیگه تبریک میگفتن. اما مگه بیتکوین خودش آزاد نیست؟ قضیه چیه؟
حقیقت اینکه کل ماجرا برمیگرده به مساله مهم و روی میزِ مقیاسپذیری و افزایش اندازه بلوک تو شبکهی بلاک چین. بیتکوین یک شبکهست مثل بقیه شبکهها و متشکل از یک سری کد و کاربره و مثل هر برنامهی دیگهای برای پذیرش کاربرای جدید و رشد سیستم، نیازمند بهروزرسانی و تغییر هست. توسعهدهندههای بیتکوین بر اساس نیازهای شبکه یک سری تغییرات، که تحت عنوان طرحهای پیشنهادی به نام BIP یاBitcoin Improvement Proposal منتشر میشه، رو پیشنهاد میکنن و میتونن ایدهها، ویژگیها و به طور کلی تغییرات جدید رو معرفی و اعمال کنند.
به توانایی پردازشی سیستم و شبکهها در پاسخ و تطبیق به افزایش میزان بار (که در اینجا تعداد تراکنشهاست) اصطلاحا مقیاسپذیری گفته میشه. یعنی یک سیستم یا شبکه چه مقدار میتونه به رشد پاسخ بده. پس بر این اساس شبکهای مقیاسپذیر هست که بتونه خروجی کل خودش رو متناسب با ورودی و افزایش بار، تطابق بده.
در حال حاضر از جدیترین مسالههایی که توی شبکه بلاک چینِ بیتکوین باید بهش بپردازیم مساله مقیاسپذیری هست. چرا که بر اساس آخرین تحقیق دانشگاه کمبریج شبکه بیتکوین تو سال 2017 2.9 الی 5.8 میلیون کاربر فعال داشته که این تعداد روز به روز هم تا به امروز افزایش پیدا کرده. به علاوه زمانی که شبکه به اصلاح شلوغ باشه، این موضوع روی قیمت کارمزد تراکنشها تاثیر میذاره. به این شکل که ماینرها ترجیح میدن بلوکی رو استخراج کنن که کارمزد بیشتری رو پرداخت میکنه و به این صورت بلوکها براساسکارمزد و نه زمان صحتسنجی شده و روی بلاک چین قرار میگیرن. مجموع این مسائل، این موضوع رو به یکی از بحثهای مهم دنیای کریپتوکارنسی میکنه.
ایدهی افزایش اندازه بلوک در BIP141 توسط سه نفر از توسعهدهندگان معرفی شد که به Segregated Witness و یا شاهد جداافتاده (؟?) یا مجزا معروف هست. حالا این به چه معنیه و چرا به این شکل نام گذاری شده.
فرض کنید که شما یه قفسه کتاب کوچیک با تعداد کمی کتاب دارید. برای اینکه فضای در دسترس زیاده و هم اینکه جلد کتابهاتون رو دوست دارین اونها رو به شکلی میچینین که جلدها روبهروی شما باشن مثل تصویر زیر:
اما وقتی بزرگتر میشین و کتاباتون هم بیشتر میشه، نیازه که تو چینش کتابا تجدید نظر کنین و اونها رو طوری قرار بدین که تنها اطلاعاتِ لازم مثل اسم کتاب و نویسنده در معرض دید باشه. مثل این عکس:
مدل SegWit هم درواقع همینه؛ میاد ساختار دادهها رو به گونهای تغییر میده که چینش اونها متفاوت باشه و بتونیم دادههای بیشتری رو در اون ذخیره کنیم. به عبارتی در ساختار (چینش) witness، امضاها مجزا از درخت مرکل تراکنش به بلوکها مرتبط میشن. این ساختار حاوی اطلاعات ضروری برای صحتسنجی تراکنش هست اما سایر اطلاعات غیرضروری رو (امضاها و اسکریپت) به ریشه مرکل بلوک، که درواقع انتهای بلوک هست، منتقل میکنیم.
“پس شبکهی سگویت طبیعتا بدون امضا نیست؛ فقط محل ذخیره امضا با حالت قبلی متفاوته.“
این انتقال به این خاطر اعمال شده که بررسی بلوکها نشون میده 60 درصد از فضای بلوک توسط امضا اشغال میشه. در نتیجه انتظار میره که این کار بتونه فضای بلوک رو تا دو برابر (از حالت اولیه 1,000,000 bytes یا 1MB) افزایش بده.
“پس سگویت اندازه بلوک رو افزایش نمیده؛ صرفا فضای موجود رو بهینه میکنه.“
برای اینکه سگویت روی پروتوکل بیتکوین اعمال بشه به 95درصد قدرت هش شبکه نیاز داشتیم؛ و این قدرت هش رو دستگاه ماینرها برای شبکه تامین میکنند. با انتشار این طرح، ماینرها خیلی علاقه نشون ندادن و با این روش خودشون رو منطبق نکردن. مثلا استخر استخراجی مثل F2pool فقط 14درصد قدرت هش رو به سگویت اختصاص داد. یکی از علل این هست که ماینرها بیشتر با افزایش اندازه بلوک (SegWitX2) موافقت داشتند تا کارمزد کمتری [به استخر] پرداخت کنند. (گزارش کلی و درصد بقیه استخرها رو میتونین از این لینک مشاهده کنین.) توسعهدهندهها این روش رو برای شبکه خطرزا میدونن و موافقت نمیکردن.
و همین موضوع باعث شد در برآیند کلی فقط 26 درصد از بلوکهای تازه استخراجشده سگویت باشن؛ و با توجه به نیاز حداقل 80 درصدی قدرت هش، میتونیم حدس بزنیم که سگویت شکست خورده بود.
اما یکی از ویژگیهای خوب پروژههای متنباز اینه که حتا اگه همه شکست بخورن، باز یه کسی هست که شکست رو نپذیره :)
شخصی با اسم مستعار Shaolingfry ، از توسعهدهندههای لایتکوین، اعلام کرد که خب؛ مشکل اینجاست که به اشتباه این مفهوم از این طرح برداشت شده که اختصاص قدرت هش به معنی رای دادن به این طرح هست و این یک نوع فشار به ماینرها تحمیل میکنه که در حال تصمیمگیری و نمایندگی از کل اجتماع بیتکوینرها هستند. بیایم به جای استفاده از قدرت هش برای پیادهسازی سگویت، یک روز رو مشخص کنیم و بگیم همهی کاربرایی که تمایل دارن از سگویت استفاده کنن، شروع به استفاده بکنند. منظورمون از کاربر هم کل اجزای سیستمی هست که مبتنی بر اقتصاد بیتکوینیه؛ یعنی افرادی که با بیتکوین تراکنش انجام میدن، کمپانیها، صرافیها، ارائهدهندههای سرویسهای کیفپول؛ نودها و غیره همه از نرمافزار جدید استفاده کنند. در این صورت ماینرها هم مجبور به تبعیت از جمع میشن؛ چون تمایلی به اتلاف منابع خودشون (برق و دستگاه و …) ندارند و زمان و انرژی برای ماین بلوکهای فاقد ارزش مصرف نمیکنند.
ماینر برای اینکه بتونه بلوک باارزش اقتصادی رو ماین کنه، نیاز داره کاری رو انجام بده که اقتصاد ازش میخواد.
درواقع درسته که قدرت هش باعث انتخاب تراکنشهای صحیح (تاییدشده) و گسترش اونها روی بلاک چین میشه، (ینی با قدرت هش هست که تراکنشهای صحیح رو توی بلوکها قرار میدیم و بلوکها رو هم روی بلاک چین) “آما” این نودها هستند که صحیح بودن تراکنش رو بر اساس نرم افزارشون تایید میکنن. در نتیجه نودها میتونن از ماینرها ماثرتر باشن.
خب حالا با این مقدمه نسبتا طولانی میتونیم بفهمیم uasf چیه و چرا اولین روز آگوست هر سال روز آزادی بیتکوین نامگذاری شده.
همونطوری که دیدیم میشه به جای استفاده از قدرت هش برای اعمال یک تغییر در شبکه، از قدرت کاربرها استفاده کنیم. User Activated Soft Fork یا به عبارتی انشعاب خفیف ایجادشده توسط کاربران (و نه ماینرها) ینی همه بیایم و از سگویت استفاده کنیم تا این تغییر پذیرفته بشه.
خوبیِ سافتفورک این هست که کسی تو شبکه برای دیگری مزاحمتی نداره. برای مثال شما میتونین انتخاب کنین که از سگویت استفاده کنین و یا نکنین؛ این مساله برای سایر کاربران شبکه اشکال ایجاد نمیکنه و درواقع تطبیقپذیر با نسخههای قبلی هست. دقیقا میشه تشبیهاش کرد به آپدیتهای گوشیهامون. اگر شما ابزار الکترونیکیتون رو به نسخه جدید آپدیت نکنید، هنوز هم قادر به اجرای نرمافزارها هستید؛ اما مثلا فلان اپلیکیشن امکان استفاده از یک سری ویژگیها رو بهتون نمیده و میگه روی نسخه قدیمی قابل اجرا نیست. شما میتونین بهروزرسانی رو انجام بدین و یا با نسخه فعلی کارتون رو پیش ببرین.
اینجا هم به همین شکله؛ بعضیها ممکن هست با قوانین جدید خودشون رو تطبیق بدن و بعضیها نه؛ اما همه روی شبکه بلاک چیناند و یک نوع پول رو تبادل میکنند. تنها تفاوت در دادههاییه که توسط هر فرد دیده میشه و همینطور فول نودهای به روزنشده اجازه تایید تراکنشها رو نخواهند داشت. (چون کل بلاک چین رو نمیبینن و بهش دسترسی ندارن پس نمیتونن صحتسنجی انجام بدن.)
پس یک آگوست 2017 روزی بود که سافت فورکی توسط کاربرای بیتکوین روی شبکه اعمال میشد؛ با استفاده از سگویت.
بیتکوین هیچ مرکز و یا مدیری نداره؛ کسی براش کار نمیکنه که ماهانه حقوق بگیره. شبکه بیتکوین ازتوسعهدهندههای داوطلب تشکیل شده. پس وقتی میگیم یک آگوست روز استقلال بیتکوینه در واقع منظورمون این هست که حتا زمانی که اعمال یک ویژگی برای ارتقای شبکه نیازمند موافقت یه گروه خاص (تو این مثال ما ماینرها) باشه، باز هم شبکه میتونه با خواست اکثریت کار کنه و این ینی شبکه مستقل از وابستگی هست و امیدواریم همیشه همینطور باقی بمونه :)