سگویت(SegWit) چیست؟
ایدهی سگویت(SegWit)، نخستین مرتبه توسط پیتر ویل در کنفرانس مقیاسپذیری بیتکوین(Scaling Bitcoin Conference) در سال 2015 مطرح گشت. ویل توسعهدهندهی بیتکوین و بنیانگذار شرکت Blockstream است که در حوزهی امنیت دیجیتال برای خدمات مالی فعالیت میکند.
پیشنهاد سگویت برای رفع مشکل تغییرپذیری تراکنشها
ویل سگویت را به صورت یک وصله(در توسعهی نرمافزاری بستههای رفع آسیب پذیری، وصله(Patch) نامیده میشوند) برای رفع مشکل تغییرپذیری تراکنشها(Transaction Malleability) در پروتکل بیتکوین پیشنهاد کرد.
فرض کنید جولی قصد دارد در یک معامله 10 بیتکوین به لوسی ارسال کند، تغییرپذیری تراکنشها، امکان تغییر Witness Data(امضاء کلید خصوصی که اثبات میکند جولی 10 بیتکوین برای ارسال در اختیار دارد) تراکنش را پیش از تایید تراکنش درشبکه برای لوسی ایجاد میکند. تغییر شناسهی تراکنش(Transaction ID) بدون تغییر خود تراکنش موجب میگردد همچنان 10 بیتکوین از جولی به لوسی ارسال شود. هنگامی که تراکنش جایگزین در شبکه تایید شود، تراکنش اصلی را کنسل میکند. در این مرحله مهاجم(لوسی) با جولی تماس گرفته و اظهار میکند 10 بیتکوین را دریافت نکرده است(در صورتی که واقعا دریافت کرده است). جولی با بررسی متوجه خواهد شد تراکنش اصلی ارسال نشده و تراکنش را با کارمزد بیشتری ارسال میکند. تراکنش جدید توسط شبکه پردازش شده و لوسی 10 بیتکوین بیشتر دریافت میکند.
جولی، ماینرها و شبکهی بلاکچین راهی برای کشف این موضوع در اختیار ندارند و هنگامی که تراکنش در شبکه تایید میشود، قابل تغییر و یا حذف نیست.
ویل برای حل مشکل تغییرپذیری تراکنشها، SegWit را پیشنهاد کرد. در حقیقت وی با ارائهی این وصله پیشنهاد کرد که برای توقف استفاده از Witness Data به منظور تغییر شناسهی تراکنشها توسط مهاجم، آن را از تراکنش حذف کنیم.
معنی سگویت
SegWit با عبارت کامل Segregated Witness نوشته میشود که در آن Segregate به معنای حذف و یا جداسازی است، بنابراین SegWit به معنای حذف Witness Data است.
در حقیقت سگویت یک زنجیرهی جانبی برای ذخیرهسازی Witness Data خارج از بلاکچین اصلی ایجاد میکند. این عمل از تغییر شناسهی تراکنش توسط مهاجم جلوگیری میکند.
سگویت همچنین بهطور هوشمندانه با نسخههای پیشین خود سازگار است. یعنی گرههایی که با پروتکل سگویت بیتکوین بهروزرسانی شدهاند، میتوانند همراه با گرههایی که بروزرسانی نشدهاند در شبکه فعالیت کنند. این نوع بروزرسانی فورک نرم(Soft Fork) نامیده میشود، بروزرسانیهایی که با نسخهی پیشین خود سازگار نیستند فورک سخت(Hard Fork) نامیده میشوند. فورکهای سخت میتوانند شبکه را تقسیم کرده و موجب تولد رمزارزهای جدید شوند.
ویل سگویت را طوری طراحی کرد که با نسخههای پیشین خود سازگار باشد، به همین دلیل مجبور گردید Witness Data را همچنان در بلاکچین اصلی ذخیره کند. وی به عنوان راه حل تمامی Witness Dataها را در زنجیرهی جانبی سگویت رمزگذاری و سپس این کد را در بلاکچین اصلی ذخیرهسازی کرد.
پیشنهاد سگویت بحث گستردهای را در جامعهی بیتکوین ایجاد کرد و پیادهسازی آن دو سال بهطول انجامید. سرانجام سگویت در 23 آگوست 2017 به پروتکل بیتکوین اعمال گردید. همان وصله در 10 می 2017 در پروتکل لایتکوین نیز اعمال شد.
سگویت مشکل تغییرپذیری تراکنشها را مرتفع ساخت و ایجاد برخی بهبودها را در پروتکل بیتکوین امکانپذیر کرد. با این وجود انتقادات بسیاری وجود داشت و تمامی کاربران شبکهی بیتکوین از تغییرات استقبال نکردند. برخی از اعضای جامعهی بیتکوین با سگویت مخالفت کرده و رمزارزهای رقیب خود را ایجاد کردند.
افزایش مقیاسپذیری شبکه بیتکوین
مقیاسپذیری(Scalability)، به صورت توانایی پردازش حجم بالایی از تراکنشها بدون کاهش سرعت تراکنشها توصیف میشود. شبکهی مقیاسپذیر با گسترش ابعاد میتواند تراکنشها را سریعتر پردازش کند. متاسفانه اغلب رمزارزها با افزایش تعداد کاربران تراکنشها را آهستهتر پردازش میکنند.
به دلیل پردازش تراکنشها با اجماع(بیش از نیمی از گرههای شبکهی بیتکوین پیش از اضافه شدن تراکنش به بلاکچین باید آن را تایید کنند)، رمزارزها دارای مشکل مقیاسپذیری هستند. با افزایش تعداد گرهها، زمان دستیابی به توافق یا اجماع افزایش مییابد.
برگشت به صفحهی اصلی کریپتوپدیا