نقش سگویت در بیتکوین و تاثیر آن بر تراکنشها
مقدمه
در سال ۲۰۱۷، زمانی که بیت کوین به سرعت در حال رشد بود، یک چالش جدی در این شبکه به وجود آمد: ازدحام شدید و کارمزدهای بالا. صف انتظار تراکنشها طولانی و زمان تأیید آنها کند شده بود و این وضعیت، بسیاری از کاربران را کلافه کرده بود. در قلب این مشکل، یک محدودیت فنی وجود داشت که توسط ساتوشی ناکاموتو برای بیت کوین تعریف شده بود: اندازه یک مگابایتی بلاکها. این محدودیت، ظرفیت شبکه را به شدت محدود میکرد و در عمل، امکان پردازش بیش از ۷ تراکنش در ثانیه وجود نداشت. این وضعیت، جرقه بحثهای داغی را میان توسعهدهندگان و جامعه بیت کوین روشن کرد که در نهایت به راهحلی هوشمندانه و در عین حال بحثبرانگیز به نام آپدیت سگویت (Segregated Witness) منجر شد.
چرا بیت کوین به سگویت نیاز داشت؟

قبل از اینکه به بررسی سگویت بپردازیم، باید دلایلی را که باعث شدند جامعه بیت کوین به فکر چنین تغییری بیندیشد، درک کنیم.
محدودیت اندازه بلاک و ازدحام شبکه
محدودیت اندازه بلاک بیت کوین به یک مگابایت، در ابتدا به عنوان یک راهکار امنیتی برای جلوگیری از حملات اسپم و کنترل رشد بلاکچین در نظر گرفته شده بود. اما با افزایش محبوبیت بیت کوین، این محدودیت به یک مانع بزرگ برای مقیاسپذیری تبدیل شد. تعداد تراکنشها به سرعت از ظرفیت یک مگابایتی بلاکها پیشی گرفت و این امر منجر به ایجاد "صف" تراکنشها در ممپول (Mempool) شد. کارمزد تراکنشها به شدت بالا رفت، زیرا کاربران برای اینکه تراکنششان سریعتر توسط ماینرها تأیید شود، مجبور بودند کارمزد بیشتری پیشنهاد دهند. این وضعیت، استفاده از بیت کوین را برای پرداختهای خرد و روزمره بسیار گران و ناکارآمد کرده بود.
مشکل انعطافپذیری تراکنش (Transaction Malleability)
یکی دیگر از مشکلات اساسی و فنی در بیت کوین، انعطافپذیری تراکنش بود. تراکنش در بیت کوین از دو بخش اصلی تشکیل شده است: دادههای ورودی و خروجی و یک بخش شاهد که شامل امضای دیجیتال است. شناسه تراکنش (Transaction ID)، از هش تمام دادههای آن، از جمله امضا، محاسبه میشود. مشکل در اینجا بود که میتوان بدون تغییر در تراکنش اصلی (ورودی و خروجی)، امضا را به صورت فنی تغییر داد و این تغییر باعث میشد که شناسه تراکنش نیز عوض شود. این انعطافپذیری، یک مشکل بزرگ امنیتی بود که میتوانست باعث ایجاد حملات یا سردرگمی در پروتکل شود. علاوه بر این، این مشکل، پیادهسازی راهحلهای لایه دوم مانند شبکه لایتنینگ را بسیار دشوار و پرخطر میکرد.
مفهوم سگویت چیست؟
سگویت با یک رویکرد کاملاً متفاوت به این مشکلات پاسخ داد.
جداسازی شاهد تراکنش (Witness Segregation)
سگویت (SegWit) که مخفف عبارت (Segregated Witness) به معنی "شاهد جدا شده" است، یک راهحل فنی برای مشکل مقیاسپذیری بیت کوین بود. هسته اصلی سگویت، جداسازی دادههای امضا یا همان شاهد تراکنش (witness data) از دادههای اصلی آن بود. در یک تراکنش سنتی، شاهد تراکنش (که شامل امضای دیجیتال است) حدود ۶۵ درصد از حجم کل تراکنش را به خود اختصاص میدهد. سگویت این دادههای سنگین را به یک ساختار جداگانه منتقل کرد که به صورت منطقی از دادههای اصلی تراکنش جدا بود. این اقدام، حجم تراکنش را به شکل قابل توجهی کاهش داد و باعث شد تراکنشهای بیشتری در یک بلاک جای بگیرند.
افزایش ظرفیت بلاک به صورت مجازی
با جداسازی شاهد تراکنش، سگویت توانست به طور هوشمندانهای ظرفیت بلاک را افزایش دهد، بدون اینکه محدودیت ۱ مگابایتی را به صورت مستقیم تغییر دهد. این کار با معرفی مفهوم جدیدی به نام وزن بلاک (Block Weight) انجام شد. در سیستم جدید، دادههای اصلی تراکنش (مانند ورودیها و خروجیها) با ضریب وزن ۴ و دادههای شاهد با ضریب وزن ۱ محاسبه میشوند. به این ترتیب، مجموع وزن یک بلاک میتواند به ۴ میلیون واحد برسد، اما حجم دادههای اصلی تراکنش که برای تأیید بلاکچین ضروری هستند، همچنان در همان محدوده ۱ مگابایتی باقی میماند. این رویکرد، سگویت را به یک سافت فورک تبدیل کرد که با نسخههای قدیمی بیت کوین نیز سازگار بود.
نحوه عملکرد سگویت

برای درک بهتر نحوه کار سگویت، باید ساختار تراکنش را قبل و بعد از این آپدیت بررسی کنیم.
تراکنشهای سنتی در مقابل سگویت
در ساختار تراکنش سنتی بیت کوین، امضای دیجیتال (شاهد) به عنوان بخشی از ورودی تراکنش در نظر گرفته میشود و در داخل همان بلاک ذخیره میشود. این روش، باعث میشد حجم زیادی از فضای بلاک به امضاها اختصاص یابد. اما سگویت این رویکرد را تغییر داد. در تراکنشهای سگویت، شاهد از دادههای اصلی جدا شده و در یک بخش جداگانه از بلاک قرار میگیرد. این بخش جدید، توسط نودهای قدیمی دیده نمیشود اما توسط نودهای بهروزرسانی شده به رسمیت شناخته میشود. این تفکیک هوشمندانه، باعث میشود که حجم کمتری از فضای ۱ مگابایتی به دادههای تراکنش اختصاص یابد و فضای بیشتری برای تراکنشهای جدید باز شود.
مفهوم وزن بلاک (Block Weight)
همانطور که گفته شد، سگویت به جای اندازه بلاک، مفهوم وزن بلاک را معرفی کرد. در این مدل، یک بلاک میتواند حداکثر ۴ میلیون واحد وزن داشته باشد. هر بایت از دادههای اصلی تراکنش ۴ واحد وزن دارد، در حالی که هر بایت از دادههای شاهد تنها ۱ واحد وزن دارد. این اختلاف وزن به ماینرها انگیزه میدهد که تراکنشهای سگویت را در اولویت قرار دهند، زیرا این تراکنشها فضای بیشتری را برای آنها باز میکنند. این مکانیسم باعث شد که بدون نیاز به افزایش مستقیم اندازه بلاک، تعداد تراکنشهای قابل پردازش در هر بلاک به طور میانگین به ۲ تا ۴ برابر افزایش یابد.
مزایای کلیدی آپدیت سگویت

سگویت فراتر از یک تغییر فنی، مزایای مهمی برای کل اکوسیستم بیت کوین به همراه داشت.
کاهش کارمزد تراکنشها
با افزایش ظرفیت بلاک به صورت مؤثر، عرضه فضای بلاک بیشتر شد و این امر به طور مستقیم به کاهش کارمزد تراکنشها منجر شد. زمانی که فضای بلاک کافی برای همه تراکنشها وجود داشته باشد، نیازی به رقابت شدید برای کارمزد نیست. این کاهش هزینهها، بیت کوین را دوباره برای انجام تراکنشهای کوچکتر و روزمره کاربردیتر کرد. این مزیت، یکی از قابللمسترین تأثیرات سگویت برای کاربران عادی بود که تا پیش از آن، مجبور به پرداخت هزینههای گزاف برای انتقالهای کوچک بودند.
رفع مشکل انعطافپذیری تراکنشها
مهمترین دستاورد فنی سگویت، حل مشکل انعطافپذیری تراکنش بود. با جداسازی امضای دیجیتال از دادههای اصلی تراکنش، شناسه تراکنش (Transaction ID) به یک مقدار ثابت و غیرقابل تغییر تبدیل شد. این امر، امنیت تراکنشها را به شدت افزایش داد و خطرات مربوط به جعل شناسه تراکنش را از بین برد. این حل بنیادین، به عنوان یک پیشنیاز برای ساخت سیستمهای پیچیدهتر و قراردادهای هوشمند در لایههای بالاتر بیت کوین عمل کرد.
امکان پیادهسازی شبکه لایتنینگ
حل مشکل انعطافپذیری تراکنش، در واقع مهمترین دستاورد سگویت بود، زیرا راه را برای پیادهسازی شبکه لایتنینگ (Lightning Network) باز کرد. شبکه لایتنینگ یک راهحل لایه دوم است که امکان انجام تراکنشهای سریع و ارزان را خارج از بلاکچین اصلی فراهم میکند. این شبکه به شدت به عدم تغییر شناسه تراکنش وابسته بود و بدون آپدیت سگویت، پیادهسازی آن تقریباً غیرممکن بود. سگویت به عنوان ستون فقرات شبکه لایتنینگ، امکان انجام میلیونها تراکنش در ثانیه را به صورت آفچین فراهم کرد و به این ترتیب، مشکل اصلی مقیاسپذیری را به شکلی نوآورانه حل کرد.
پیادهسازی سگویت
سگویت نه یک هارد فورک بود و نه یک تغییر ساده؛ بلکه یک سافت فورک هوشمندانه بود.
تفاوت سافت فورک و هارد فورک
برای درک اهمیت پیادهسازی سگویت، باید تفاوت میان سافت فورک (Soft Fork) و هارد فورک (Hard Fork) را بدانیم. یک هارد فورک، یک تغییر ناسازگار با نسخههای قبلی است که نودهای قدیمی را مجبور به بهروزرسانی میکند. اگر این نودها بهروزرسانی نکنند، از شبکه جدا شده و یک بلاکچین جدید ایجاد میشود (مانند بیت کوین کش). در مقابل، یک سافت فورک، یک تغییر سازگار با نسخههای قبلی است. نودهای قدیمی میتوانند بدون هیچ مشکلی به کار خود ادامه دهند، اما از مزایای آپدیت بهرهمند نمیشوند. سگویت به گونهای طراحی شد که نودهای قدیمی بتوانند تراکنشهای سگویت را به عنوان تراکنشهای معتبر تشخیص دهند، حتی اگر دادههای شاهد را در نظر نگیرند.
فرآیند فعالسازی و پذیرش
فعالسازی سگویت یک فرآیند طولانی و پربحث بود. این آپدیت از طریق مکانیسم «توافق سیگنالی» (Signaling Consensus) در شبکه اجرا شد و نیاز به پشتیبانی ۹۵ درصدی از ماینرها داشت. این بحثها منجر به ایجاد انشعابات در جامعه بیت کوین و در نهایت، به هارد فورک بیت کوین کش منجر شد. با این حال، در نهایت، سگویت توانست حمایت لازم را به دست آورد و در سال ۲۰۱۷ به صورت موفقیتآمیز در بلاکچین بیت کوین فعال شد. با این حال، پذیرش سگویت توسط کیف پولها و صرافیها به کندی پیش رفت و زمان زیادی طول کشید تا مزایای کامل آن برای کاربران قابل مشاهده شود.
تأثیر سگویت بر اکوسیستم بیت کوین
سگویت به طور بنیادین، رویکرد بیت کوین به مقیاسپذیری را تغییر داد.
افزایش ظرفیت و تسریع تراکنشها
با وجود اینکه آپدیت سگویت تمامی نودها را مجبور به استفاده از آن نمیکرد، اما با افزایش تدریجی نرخ پذیرش، تأثیر آن بر شبکه قابل مشاهده بود. کارمزد تراکنشها به طور چشمگیری کاهش یافت و زمان انتظار برای تأیید تراکنشها نیز کوتاهتر شد. این بهبودها، کارایی بیت کوین را به عنوان یک سیستم پرداخت افزایش داد و کاربران بیشتری را به استفاده از آن ترغیب کرد. با این حال، این بهبودها موقتی بودند و با افزایش مجدد حجم تراکنشها در سالهای بعد، بحث مقیاسپذیری دوباره به یک موضوع داغ تبدیل شد.
رشد شبکه لایتنینگ و سایر راهکارهای لایه دوم
مهمترین تأثیر بلندمدت سگویت، فعال کردن شبکه لایتنینگ بود. با حل مشکل انعطافپذیری تراکنش، توسعهدهندگان توانستند با اطمینان، بر روی این راهحل نوآورانه کار کنند. امروزه، شبکه لایتنینگ به عنوان یک سیستم پرداخت سریع و ارزان برای بیت کوین در حال رشد است و بسیاری از شرکتها و کسبوکارها از آن استفاده میکنند. سگویت در واقع به بیت کوین اجازه داد تا استراتژی خود را از یک بلاکچین واحد برای تمام تراکنشها، به یک شبکه لایه یک امن و پایدار برای تسویه حسابهای بزرگ، به همراه یک لایه دوم پرسرعت برای پرداختهای کوچک تغییر دهد.
انتقادات و محدودیتهای سگویت
هرچند سگویت بسیاری از مشکلات را حل کرد، اما بدون انتقاد هم نبود.
پیچیدگی فنی و پذیرش آهسته
یکی از بزرگترین انتقادات به سگویت، پیچیدگی فنی آن بود. بسیاری از توسعهدهندگان و کاربران، درک کامل مکانیزم وزن بلاک و جداسازی دادهها را دشوار میدانستند. این پیچیدگی باعث شد که پذیرش سگویت توسط کیف پولها و صرافیها بسیار کند پیش برود، زیرا آنها مجبور بودند زیرساختهای خود را به طور کامل بهروزرسانی کنند. این فرآیند کند، باعث شد که برای مدتی، مزایای سگویت برای همه کاربران قابل دسترسی نباشد.
بحث اندازه بلاک: یک راه حل موقت؟
بسیاری از منتقدان، سگویت را به عنوان یک راهحل موقت و نه دائمی برای مشکل مقیاسپذیری میدیدند. آنها معتقد بودند که افزایش ظرفیت بلاک، به صورت مجازی و از طریق یک ترفند فنی، در نهایت کافی نخواهد بود و بیت کوین در آینده نیاز به یک افزایش مستقیم در اندازه بلاک خواهد داشت. این بحثها همچنان در جامعه بیت کوین ادامه دارد و نشان میدهد که سگویت با تمام مزایایش، نتوانست به طور کامل به این بحث پایان دهد.
نتیجهگیری
آپدیت سگویت یک لحظه تاریخی در توسعه بیت کوین بود. این آپدیت با وجود بحثها و انتقادات فراوان، به صورت هوشمندانه مشکلاتی را حل کرد که مانع رشد و پذیرش بیت کوین میشدند. سگویت با جداسازی دادههای شاهد تراکنش، نه تنها ظرفیت شبکه را افزایش داد و هزینهها را کاهش داد، بلکه مهمتر از همه، مشکل انعطافپذیری تراکنش را حل کرد که به نوبه خود، راه را برای ظهور شبکه لایتنینگ و سایر راهحلهای لایه دوم هموار ساخت. به این ترتیب، سگویت نقش اصلی را در تبدیل بیت کوین از یک سیستم پرداخت کند به یک لایه تسویه حساب جهانی و پایدار، با یک لایه پرداخت سریع، ایفا کرد. این آپدیت نمونه بارزی از چگونگی حل مشکلات در یک شبکه غیرمتمرکز، با استفاده از نوآوریهای فنی است.