راه حلی که برای رفع چکشخواری تراکنش اجرا میشود، به عنوان شاهد جدا یا SegWit نامیده میشود . این مقاله توضیح میدهد که چگونه SegWit انعطافپذیری تراکنشها را متوقف کرد و عملکرد توسعه یافته SegWit را تشریح میکند، که امکان معرفی انواع مختلفی از گزینههای مقیاسبندی را فراهم کرد (برای آشنایی با مقیاس بلاکچین، این مقاله را بخوانید ).
مبانی سگویت SegWit
- Segregated Witness یا SegWit پروتکلی است که برای رفع چکشخواری تراکنش پیادهسازی شده است که امکان تغییر شناسههای تراکنش و هشها را فراهم میکند.
- SegWit با مفهوم وزن بلوک تقریباً اندازه بلوک را چهار برابر افزایش میدهد.
- SegWit کارمزد تراکنشها را کاهش میدهد.
- طراحی آن در پیشنهادات بهبود بیتکوین (BIPs) 141، ۱۴۸ و ۹۱ ارائه شده است.
- SegWit امکان تنظیم امضاهای Schnorr را فراهم میکند و اجرای شبکه لایتنینگ را تسهیل میکند.
طراحی و توسعه
SegWit توسط توسعهدهنده Pieter Wiulle در کنفرانس مقیاس بیتکوین در دسامبر ۲۰۱۵ مفهوم سازی و ارائه شد، جایی که موضوع اصلی بزرگتر و سریعتر شدن بیتکوین بود. SegWit با وعده باز کردن دری به روی مقیاس بیتکوین، بلافاصله حمایت قابل توجهی از جامعه را به دست آورد.
طراحی SegWit برای اولین بار در پیشنهادات بهبود بیتکوین ( BIPs) 141 و ۱۴۸ بیان شد. هدف اولیه آن پرداختن به توانایی تغییر امضاها و در نتیجه شناسه تراکنشها بود که معمولاً به آن چکش خواری تراکنش میگویند . این یک کد معیوب بود که به هر کسی اجازه میداد جزئیات تراکنش کوچک را برای اصلاح هش تراکنش تغییر دهد، که شناسه تراکنش را نیز تغییر داد.
و در حالی که چکشخواری تراکنش امکان تغییر شناسه تراکنش را فراهم میکرد، امکان تغییر محتویات تراکنشهای BTC را فراهم نمیکرد. از آنجایی که فقط امکان تغییر شناسه تراکنش و هش را میداد، چکش خواری تراکنش هرگز واقعاً خطر بزرگی برای پروتکل بیتکوین ایجاد نکرد. با این حال، از توسعه ویژگیهای پیچیده تر، به عنوان مثال راه حلهای مقیاس بندی مختلف و عملکرد قرارداد هوشمند جلوگیری کرد.
SegWit علاوه بر رفع چکشخواری تراکنش، مفهوم اندازه بلوک را نیز ابداع میکند. در حالی که اندازه بلوکها در بلاکچین بیتکوین به طور سنتی به ۱ مگابایت داده محدود میشد، SegWit با مفهوم جدیدی به نام وزن بلوک بر این اساس استوار است. با وزن بلوک، هر بلوک دارای محدودیت ۴ M واحد وزن یا ۱ M vbytes است، به این معنی که ۱ vbyte برابر با ۴ واحد وزن است. در نتیجه، گرههای دارای نرمافزار بهروزشده با پروتکل SegWit میتوانند به طور بالقوه چهار برابر مقدار دادهای را که میتوانند قبل از سافت فورک SegWit ارسال و دریافت کنند . با این حال، به دلیل محدودیتهای مختلف، بلوکها هرگز آنقدر بزرگ نیستند – اندازه متوسط بلوک حدود ۱.۳ مگابایت میچرخد.
این طراحی مجدد اندازه بلوک همچنین منجر به کاهش هزینه تراکنش میشود . قبل از SegWit، کارمزد تراکنش به عنوان کارمزد به ازای هر اندازه تراکنش تعیین میشد. با معرفی مفهوم وزن بلوک، این به کارمزد به ازای هر واحد وزن تغییر کرد. از آنجایی که SegWit بار روی بلاکچین را کاهش میدهد ، هزینههای لازم برای اعتبارسنجی و افزودن تراکنشها به بلاکچین به همین ترتیب کاهش مییابد.
برای آزمایش عملکرد آن، SegWit برای اولین بار در ۱۰ مه ۲۰۱۷ در لایت کوین فعال شد. هنگامی که عملیاتی شدن آن ثابت شد، در ۲۳ آگوست ۲۰۱۷ نیز روی بیتکوین پیادهسازی شد. از آنجایی که با استفاده از یک سافت فورک پیادهسازی شد، بلاکچین با آن سازگار است. گرههایی که SegWit را پشتیبانی نمیکنند. این بدان معناست که گرههای کامل در شبکه بیتکوین، صرف نظر از اینکه بلاکهایشان چقدر بزرگ است، یک کپی از دفتر کل خواهند داشت.
پایهای برای جرم گیری
هنگامی که SegWit راهاندازی شد، روشهای جدید مقیاس بندی را از نظر راه حلهای مقیاس بندی روی زنجیره و خارج از زنجیره فعال کرد.
SegWit امکان پیادهسازی امضاهای Schnorr را فراهم میکند. امضای Schnorr یک امضای دیجیتالی است که توسط الگوریتم امضای Schnorr ایجاد میشود. امنیت آن بر اساس غیرقابل حل بودن مسائل لگاریتمی گسسته است. از آنجایی که کوتاه است، فضای کمتری را در بلاکچین نسبت به امضای سنتی اشغال میکند. این امر بار روی بلاکچین را کاهش میدهد و با استفاده از مقیاس بندی لایه اول، توان عملیاتی شبکه را افزایش میدهد.
اما شاید یکی از ویژگیهای جالبتر که توسط SegWit باز شده است، مقیاسبندی لایه ۲ باشد. اصلاح چکش خواری دری را به روی اجرای ایمن شبکه لایتنینگ باز کرده است . لایتنینگ یک شبکه مجزا است که کانالهایی را بین کاربران مختلف شبکه و اصل شش درجه جدایی ترکیب میکند تا کاربرانی را که قبلاً تراکنش نکردهاند به هم متصل کند. این فناوری مستلزم آن است که فقط موجودی اولیه و نهایی کانال باید روی بلاکچین نوشته شود، اما هیچ یک از تراکنشهای بین آنها وجود ندارد. این کار زنجیره بلوکی را تخلیه میکند، کارمزد تراکنشها را کاهش میدهد و سرعت شبکه را افزایش میدهد.
اجرای SegWit یک گام کلیدی در افزایش مقیاس پذیری بیتکوین بود. این به مراتب بیشتر از طراحی اولیه خود (حذف انعطاف پذیری تراکنش) پیشی گرفته است و ثابت کرده است که در حمایت از تودههای در حال رشد با استفاده از بزرگترین ارز دیجیتال ضروری است. در زمان نگارش این مقاله، بیش از نیمی از تراکنشهای بیتکوین SegWit را پذیرفتهاند که پیشبینی میشود این تعداد در آینده افزایش یابد.