سگویت (Segwit) چگونه موجب بهبود بلاکچین بیت کوین میشود؟
بیت کوین این پادشاه رمزارزها که با حضور خود مسیر را برای سایر ارزهای دیجیتال هموار کرد، همیشه عاری از مشکل نبوده و توسعهدهندگان سعی در بهبود و رفع معایب آن داشتهاند. یکی از تلاشهای عمده برای رفع مشکل مقیاسپذیری در بیت کوین، سگویت است.سگویت، مخفف عبارت Segregated Witness به معنای شاهد تفکیک شده است که برای اولین بار توسط توسعهدهندهای با نام پیتر ویل در سال 2015 ارایه شد. این تکنولوژی در حقیقت سازوکاری برای بهینهسازی بلاکچین بیت کوین است که موجب افزایش سایز بلاکها و رفع ایراداتی چون ظرفیت پایین پردازش تراکنش و انعطافپذیری معاملات میشود.
سرعت پردازش تراکنش
بنابراین زمانی که افراد زیادی در حال معامله یا خرید بیت کوین باشند، یک صف طولانی از تراکنشهایی که منتظر ورود به بلاکچین هستند ایجاد میشود. برای درک بهتر سرعت پردازش تراکنشها در بلاکچین بیت کوین، باید اشاره کنیم که سرویس پرداخت Visa به طور معمول 1700 تراکنش در ثانیه را پردازش میکند، درحالی که این برای بیت کوین تنها 5 تراکنش در ثانیه است. پس کاملا قابل انتظار است که این شبکه برای پذیرش انبوه کاربران، دچار مشکل است.
انعطافپذیری تراکنش
1. ارسال کننده تراکنش (ورودی).
2. دریافت کننده تراکنش (خروجی).
3. یک امضای دیجیتال که تأیید میکند فرستنده واجد شرایط ارسال کوینها است.
انعطاف پذیری تراکنش چگونه مشکلساز میشود؟
اجازه دهید با یک مثال این شرایط را توضیح دهم. فرض کنید مقدار امضا «3» باشد، اما به جای «3» آن را به «03» یا «3+7-7» تغییر دهیم. ملاحظه میکنید که از نظر منطق ریاضی، مقدار آن تغییر نکرده و این یک امضای معتبر است. اما اگر هر یک از این نسخهها را هش کنم، نتایج متفاوتی دریافت خواهیم کرد. زیرا هش کردن به نحوه نوشتن مقدار بستگی دارد نه خود مقدار.
این مساله موجب انعطاف پذیری معامله میشود، یعنی تغییر شناسه تراکنش با تغییر در اطلاعات موجود در کد آن، که این اتفاق به چند دلیل مشکلساز است:
1. اگر بخواهید راهکارهای لایه دوم را در بستر شبکه بیتکوین ارائه دهید، باید مطمئن شوید که هیچکس نمیتواند اطلاعات لایه اول را تغییر دهد.
2. در صورت خرج کردن یا پذیرش وجوه تایید نشده، تغییر شناسه تراکنش میتواند مشکلاتی مانند سوءاستفاده برخی کاربران را ایجاد کند.
فرض کنید آلیس مبلغی را به باب پرداخت کرده که هنوز تایید نشده است (تراکنش X). باب از این تراکنش تایید نشده برای خرید آنلاین یک محصول از چارلی (تراکنش Y) استفاده میکند. چارلی منتظر هیچ تاییدی برای تراکنش Y نمیشود و محصول خود را برای باب ارسال میکند. اکنون تراکنش Y نامعتبر است زیرا به شناسه تراکنشی متکی است (تراکنش X) که دیگر وجود ندارد. اما چارلی علیرغم اینکه پولی به او پرداخت نشده، کالا را برای باب ارسال کرده است. بنابراین باب توانسته به نوعی از چارلی سوءاستفاده کند.
راهکار پیشنهادی سگویت چیست؟
سگویت در حقیقت یک افزایش سایز بلاک است. بلاکهای غیر سگویت که با عنوان لگاسی Legacy)) شناخته میشوند، مجموعاً 1 مگابایت فضا برای تمامی دادهها (ورودی، خروجی، امضا و غیره) دارند. از سوی دیگر، بلاکهای سگویت از یک بلاک تراکنش پایه و یک بلاک ضمیمه تشکیل شدهاند و دارای سایز بزرگتر (تا 4 مگابایت) هستند.
بلاکهای سگویت امضای دیجیتال و سایر دادهها (دادههای شاهد) را به بلاک ضمیمه منتقل میکنند. بنابراین بلاک تراکنش پایه، صرفاً شامل اطلاعات مربوط به فرستنده، گیرنده است و فضای آزاد بیشتری خواهد داشت. این کار باعث میشود تراکنشهای بیشتری در بلاک 1 مگابایتی قرار گیرند.
بلاک ضمیمه (3 مگابایت) شامل تمام دادههای شاهد است که وجود آنها در بلاک تراکنش پایه اجباری نیست. این فرمت جدید که سگویت برای بلاکها معرفی کرده به دو هدف اصلی منتهی میشود:
1. انتقال امضای دیجیتال به خارج از بلاک تراکنش پایه:
به این ترتیب اگر شخصی امضای تراکنش را تغییر دهد، روی شناسه تراکنش تاثیری نخواهد داشت. (رفع مشکل انعطافپذیری تراکنش)2. کاهش دادههای پایه تراکنش:
از آنجایی که داده شاهد تا 65 درصد از حجم تراکنش را به خود اختصاص میدهند، انتقال آنها به خارج از بلاک تراکنش پایه موجب میشود تراکنشهای بیشتری در یک بلاک 1 مگابایتی قرار گیرند.چرا به سگویت، سافت فورک میگویند؟
به این ترتیب راهحل بلاک 1 مگابایتی با یک «بلاک ضمیمه» 3 مگابایتی، چیزی است که در پروتکل فعلی بیت کوین هم قابل اجرا است. با این حساب، نودهای قدیمی فقط بلاک تراکنش پایه 1 مگابایتی را بدون بلاک ضمیمه دریافت میکنند. نودهای سگویت هم هر دو بلاک پایه و ضمیمه (در مجموع تا ۴ مگابایت) را دریافت کرده و میتوانند تراکنشها را به طور کامل تأیید کنند. این سازگاری با نسخههای پیشین، اصطلاحاً سافت فورک نامیده میشود و نیازی به بروزرسانی نودها ندارد. این بدین معناست که حتی اگر سالها روند ارتقا تمامی نودها زمان ببرد، شبکه همزمان میتواند به فعالیت خود ادامه دهد.
مقایسه سگویت و لگاسی:
-
• حداکثر سایز بلاک یک تراکنش لگاسی 1 مگابایت است، در حالی که تراکنشهای سگویت دارای حداکثر سایز بلاک 4 مگابایتی هستند.
• تراکنشهای لگاسی در معرض حملات انعطافپذیری قرار دارند.
• تراکنشهای لگاسی از نظر فضای ذخیره شده، بزرگتر هستند و بنابراین برای تأیید به کارمزد بالاتری نیاز دارند.
• آدرسهای سگویت با «3» و آدرسهای لگاسی با «1» شروع میشوند.