راه حلی که برای رفع چکشخواری تراکنش اجرا میشود، به عنوان شاهد جدا یا SegWit نامیده میشود . این مقاله توضیح میدهد که چگونه SegWit انعطافپذیری تراکنشها را متوقف کرد و عملکرد توسعه یافته SegWit را تشریح میکند، که امکان معرفی انواع مختلفی از گزینههای مقیاسبندی را فراهم کرد (برای آشنایی با مقیاس بلاک چین، این مقاله را بخوانید ).
مبانی سگویت SegWit
- Segregated Witness یا SegWit پروتکلی است که برای رفع چکشخواری تراکنش پیادهسازی شده است که امکان تغییر شناسههای تراکنش و هشها را فراهم میکند.
- SegWit با مفهوم وزن بلوک تقریباً اندازه بلوک را چهار برابر افزایش می دهد.
- SegWit کارمزد تراکنش ها را کاهش می دهد.
- طراحی آن در پیشنهادات بهبود بیت کوین (BIPs) 141، 148 و 91 ارائه شده است.
- SegWit امکان تنظیم امضاهای Schnorr را فراهم می کند و اجرای شبکه لایتنینگ را تسهیل می کند.
طراحی و توسعه
SegWit توسط توسعه دهنده Pieter Wiulle در کنفرانس مقیاس بیت کوین در دسامبر 2015 مفهوم سازی و ارائه شد، جایی که موضوع اصلی بزرگتر و سریعتر شدن بیت کوین بود. SegWit با وعده باز کردن دری به روی مقیاس بیت کوین، بلافاصله حمایت قابل توجهی از جامعه را به دست آورد.
طراحی SegWit برای اولین بار در پیشنهادات بهبود بیت کوین ( BIPs) 141 و 148 بیان شد. هدف اولیه آن پرداختن به توانایی تغییر امضاها و در نتیجه شناسه تراکنش ها بود که معمولاً به آن چکش خواری تراکنش می گویند . این یک کد معیوب بود که به هر کسی اجازه میداد جزئیات تراکنش کوچک را برای اصلاح هش تراکنش تغییر دهد، که شناسه تراکنش را نیز تغییر داد.
و در حالی که چکشخواری تراکنش امکان تغییر شناسه تراکنش را فراهم میکرد، امکان تغییر محتویات تراکنشهای BTC را فراهم نمیکرد. از آنجایی که فقط امکان تغییر شناسه تراکنش و هش را می داد، چکش خواری تراکنش هرگز واقعاً خطر بزرگی برای پروتکل بیت کوین ایجاد نکرد. با این حال، از توسعه ویژگی های پیچیده تر، به عنوان مثال راه حل های مقیاس بندی مختلف و عملکرد قرارداد هوشمند جلوگیری کرد.
SegWit علاوه بر رفع چکشخواری تراکنش، مفهوم اندازه بلوک را نیز ابداع میکند. در حالی که اندازه بلوک ها در بلاک چین بیت کوین به طور سنتی به 1 مگابایت داده محدود می شد، SegWit با مفهوم جدیدی به نام وزن بلوک بر این اساس استوار است. با وزن بلوک، هر بلوک دارای محدودیت 4 M واحد وزن یا 1 M vbytes است، به این معنی که 1 vbyte برابر با 4 واحد وزن است. در نتیجه، گرههای دارای نرمافزار بهروزشده با پروتکل SegWit میتوانند به طور بالقوه چهار برابر مقدار دادهای را که میتوانند قبل از سافت فورک SegWit ارسال و دریافت کنند . با این حال، به دلیل محدودیتهای مختلف، بلوکها هرگز آنقدر بزرگ نیستند – اندازه متوسط بلوک حدود 1.3 مگابایت میچرخد.
این طراحی مجدد اندازه بلوک همچنین منجر به کاهش هزینه تراکنش می شود . قبل از SegWit، کارمزد تراکنش به عنوان کارمزد به ازای هر اندازه تراکنش تعیین می شد. با معرفی مفهوم وزن بلوک، این به کارمزد به ازای هر واحد وزن تغییر کرد. از آنجایی که SegWit بار روی بلاک چین را کاهش میدهد ، هزینههای لازم برای اعتبارسنجی و افزودن تراکنشها به بلاک چین به همین ترتیب کاهش مییابد.
برای آزمایش عملکرد آن، SegWit برای اولین بار در 10 مه 2017 در لایت کوین فعال شد. هنگامی که عملیاتی شدن آن ثابت شد، در 23 آگوست 2017 نیز روی بیت کوین پیاده سازی شد. از آنجایی که با استفاده از یک سافت فورک پیاده سازی شد، بلاک چین با آن سازگار است. گره هایی که SegWit را پشتیبانی نمی کنند. این بدان معناست که گرههای کامل در شبکه بیتکوین، صرف نظر از اینکه بلاکهایشان چقدر بزرگ است، یک کپی از دفتر کل خواهند داشت.
پایه ای برای جرم گیری
هنگامی که SegWit راه اندازی شد، روش های جدید مقیاس بندی را از نظر راه حل های مقیاس بندی روی زنجیره و خارج از زنجیره فعال کرد.
SegWit امکان پیاده سازی امضاهای Schnorr را فراهم می کند. امضای Schnorr یک امضای دیجیتالی است که توسط الگوریتم امضای Schnorr ایجاد می شود. امنیت آن بر اساس غیرقابل حل بودن مسائل لگاریتمی گسسته است. از آنجایی که کوتاه است، فضای کمتری را در بلاک چین نسبت به امضای سنتی اشغال می کند. این امر بار روی بلاک چین را کاهش می دهد و با استفاده از مقیاس بندی لایه اول، توان عملیاتی شبکه را افزایش می دهد.
اما شاید یکی از ویژگیهای جالبتر که توسط SegWit باز شده است، مقیاسبندی لایه ۲ باشد. اصلاح چکش خواری دری را به روی اجرای ایمن شبکه لایتنینگ باز کرده است . لایتنینگ یک شبکه مجزا است که کانالهایی را بین کاربران مختلف شبکه و اصل شش درجه جدایی ترکیب میکند تا کاربرانی را که قبلاً تراکنش نکردهاند به هم متصل کند. این فناوری مستلزم آن است که فقط موجودی اولیه و نهایی کانال باید روی بلاک چین نوشته شود، اما هیچ یک از تراکنشهای بین آنها وجود ندارد. این کار زنجیره بلوکی را تخلیه می کند، کارمزد تراکنش ها را کاهش می دهد و سرعت شبکه را افزایش می دهد.
اجرای SegWit یک گام کلیدی در افزایش مقیاس پذیری بیت کوین بود. این به مراتب بیشتر از طراحی اولیه خود (حذف انعطاف پذیری تراکنش) پیشی گرفته است و ثابت کرده است که در حمایت از توده های در حال رشد با استفاده از بزرگترین ارز دیجیتال ضروری است. در زمان نگارش این مقاله، بیش از نیمی از تراکنشهای بیتکوین SegWit را پذیرفتهاند که پیشبینی میشود این تعداد در آینده افزایش یابد.