انعطاف‌پذیری و افزایش ظرفیت بلاک (Block Capacity) از مشکلات برجسته‌ای بود که برای بیت کوین به‌وجود آمد. اما برای حل این دو مشکل چه راهکاری پیاده‌سازی شد؟
سگویت (Segwit) همان راه نجات بیت کوین از دو مشکل مطرح شده بود که در آگوست سال 2017 اجرا شد. این طرح را پیتر وایلی (Pieter Wuille) مدیرعامل Blockstream به عنوان یک نسخه به‌روز و کارآمد برای بیت کوین ارائه داد. در ادامه این مقاله از تتر ایران با کلیات این طرح آشنا می‌شویم.

شبکه بلاکچین و ساختار بلاک در بیت کوین

سگویت و بیت کوین

قبل از آشنایی با سگویت باید با ساختار شبکه بیت کوین آشنا شوید. شبکه بیت کوین متشکل از هزاران کامپیوتر است که وظیفه تایید بلاک‌های تولید شده توسط ماینرها را برعهده دارند. این کامپیوترها نود بیت کوین نامیده می‌شوند و هر کدام مدارک مربوط به اطلاعات هر تراکنش موجود در بلاک را نگه می‌دارند.
بلاک‌ها ظرفیت محدودی دارند و به طور حدودی اطلاعات مربوط به 2500 تراکنش را ذخیره می‌کنند. زمانی که ظرفیت یک بلاک تکمیل شود، توسط هش رمزنگاری به بلاک‌های قبلی اتصال پیدا می‌کند. این روند به صورت مداوم تکرار شده و باعث ایجاد شبکه بلاکچین بیت کوین می‌شود.
اطلاعاتی که در این بلاک‌ها وجود دارد، شامل: اطلاعات فرستنده و گیرنده، کلیدهای خصوصی و عمومی و امضای دیجیتال برای تایید تراکنش می‌شود. واضح است که تمامی این اطلاعات حجم زیادی از بلاک را اشغال می‌کنند. می‌توان بلاک را یک صفحه از دفتر کل دانست چرا که تمام اطلاعات و داده‌های مرتبط با شبکه بیت کوین را در خود جای داده است.
با گسترش استفاده از شبکه بلاکچین و محبوبیت رمز ارزها، مشکلات مختلفی دامن بیت کوین را گرفت که در ادامه به مشکلات موجود و راه‌حل آن‌ها اشاره می‌کنیم.

مشکلات موجود در بلاکچین بیت کوین

در این قسمت به دو نمونه از مشکلات مهم بیت کوین می‌پردازیم که زمینه‌ساز طرحی به نام Segwit شد.
مشکل اول: افزایش ظرفیت بلاک (Block Capacity)
یکی از مشکل‌های مربوط به بیت کوین، افزایش تراکنش‌های بیشتر بود که به تعداد بلاک‌های موجود در زنجیره اضافه می‌کرد. در این شبکه، بلاک‌ها هر 10 دقیقه ساخته می‌شوند و سایز آن‌ها تا حدود یک مگابایت محدود شده است. بر طبق این محدودیت، تعداد معینی از تراکنش‌ها می‌توانند به یک بلاک اضافه شوند.
افزایش تراکنش‌ها و بلاک‌ها منجر به سنگین‌تر شدن شبکه می‌شد که نتیجه آن تاخیر در پردازش‌ها و کند شدن سرعت برای تایید اعتبار تراکنش‌ها بود. در برخی موارد، چند ساعت طول می‌کشید که تایید اعتبار یک تراکنش انجام شود. در این زمان مشکل اول یعنی عدم وجود فضا برای افزایش ظرفیت بلاک (Block Capacity) تشخیص داده شد.
مشکل دوم: انعطاف‌پذیری (Malleability)
انعطاف‌پذیری (Malleability) از دیگر مشکل‌های اساسی بود که بیت کوین با آن روبه‌رو شد. این نقص اجازه می‌داد هرکس بتواند تغییرات کوچکی را در شناسه تراکنش انجام دهد به طوری که محتوای بلاک تغییر نکند. تصور کنید امضای دیجیتالی که تشکیل شده از اعداد و حروف است به نحوی تغییر پیدا کند که ارزش ریاضی آن عوض نشود. شناسه تراکنش عددی متفاوت خواهد بود. این درحالی است که در محتوای تراکنش چیزی تغییر نمی‌کند. این ویژگی انعطاف‌پذیری شبکه بلاکچین بیت کوین را نشان می‌دهد.
شاید در نگاه اول حل این مشکل چنان حیاتی به نظر نرسد، اما همین تغییرات و دستکاری‌های کوچک از توسعه ویژگی‌های پیچیده‌تر، مثل: پروتکل‌های لایه دوم (شبکه لایتنینگ) و قراردادهای هوشمند جلوگیری می‌کرد. این مشکلات باعث شد که یک نسخه به‌روز و پیشرفته برای حل مشکلات بیت کوین ایجاد شود.

راه حلی به نام سگویت (Segwit)

سگویت چیست؟

افراد فعال در حوزه ارز دیجیتال مدت طولانی چشم ‌انتظار راه‌حلی بودند که مشکلات بیت کوین را برطرف کند. سگویت (Segwit) طرحی بود که توسط پیتر وایلی (Pieter Wuille) مدیر عامل Blockstream برای برطرف کردن این مشکلات ارائه شد. در صورت عدم پیاده‌سازی طرح سگویت، اعتبارسنجی تراکنش‌های بیت کوین کندتر انجام می‌شد. این در حالی بود که محبوبیت ارز دیجیتال سیر صعودی داشت و تعداد تراکنش‌های موجود رو به افزایش بود. این ایده ابتدا روی لایت کوین و سپس روی بیت کوین اجرا شد.

آشنایی با سگویت (Segwit)

سگویت یا Segregated Witness یک سافت فورک است که به تغییر قالب بیت کوین اشاره می‌کند. قسمت اول کلمه Segwit به واژه Segregate اشاره دارد به معنای تفکیک و قسمت دوم آن Witnesses به معنای شاهدان یا همان امضاهای موجود در تراکنش‌ها است.
سگویت دو هدف بسیار مهم را دنبال می‌کند؛ یکی ارتقاء پروتکل بیت کوین برای محافظت از انعطاف‌پذیری و دیگری کاهش زمان تراکنش با افزایش ظرفیت بلاک. همچنین ادعا شد که این طرح بتواند با ذخیره تراکنش‌های بیشتر در یک بلاک، به فرآیند اعتبارسنجی را سرعت بخشد.

نقش سگویت در حل مشکلات بیت کوین

  • گفته شده که هزاران دلیل و هدف پشت استفاده از طرح Segregated Witness است اما ضروری است که بدانیم این طرح دقیقا چه کاری انجام می‌دهد.
  • فرآیند انتقال بیت کوین زمانی شروع می‌شود که یک کاربر درخواستی را به شبکه ارسال کند. این درخواست شامل آدرس عمومی کاربر، مقدار بیت کوین ارسالی و هزینه تراکنش برای ماینرها است.
  • هنگامی که یک کاربر مقداری بیت کوین برای کاربر دیگری ارسال می‌کند، به دو داده احتیاج دارد: یک لینک آدرس و یک کلید خصوصی. آدرس عمومی همان نشانه دیجیتالی برای اشخاصی است که معامله را انجام می‌دهند. هر کاربر یک آدرس عمومی برای ارسال و دریافت بیت کوین دارد که برای کل شبکه قابل مشاهده است. اما کلیدهای خصوصی برای همه فاش نمی‌شوند. این کلیدها برای تایید اینکه آدرس‌های عمومی متعلق به یک کاربر هستند، استفاده می‌شوند.
  • در مرحله بعد، ماینرها تراکنش‌ها را پردازش می‌کنند. داده‌ها به خطی از کد رایانه‌ای به نام شناسه تراکنش تبدیل و به اصطلاح اطلاعات هر دو کاربر رمزگذاری می‌شود. سپس تراکنش‌ها به ترتیب در صف قرار می‌گیرند تا زمانی که ظرفیت بلاک را پر کنند و یک بلاک کامل ایجاد شود.
  • بعد از این مرحله، بلاک بین گره‌ها یا کامپیوترها توزیع می‌شود. اگر بیش از نیمی از گره‌ها تایید کنند که اطلاعات آن‌ها معتبر هستند، بلاک تایید شده و در زنجیره بلاکچین قرار می‌گیرد. اتمام این مرحله نشانه انتقال موفقیت‌آمیز بیت کوین بین معامله‌گران است.
  • با گذشت زمان و با محبوبیت بیشتر بیت کوین، تعداد تراکنش‌ها در شبکه زیاد و سرعت پردازش بیت کوین کندتر شد. در این زمان بود که توسعه‌دهندگان دریافتند که مشکل به اندازه بلاک‌های درون بلاکچین مرتبط است.
  • سگویت راه‌حلی بود که مشکل محدودیت اندازه بلاکچین را برطرف می‌کرد. در واقع این طرح توانست سرعت پردازش بیت کوین را تا حد زیادی کاهش دهد. دکتر پیتر ویل توسعه‌دهنده بیت کوین پیشنهاد داد که برای حل این مشکل بهتر است امضای دیجیتال از بدنه اصلی داده‌های تراکنش جدا شود.

چگونگی عملکرد Segwit

حداکثر اندازه بلاک در پروتکل اصلی 1 مگابایت است که تعداد تراکنش‌های قابل پردازش بیت کوین را به تقریبا 7 مورد در ثانیه محدود می‌کند. این محدودیت برای جلوگیری از رشد بالقوه بیت کوین ایجاد شده بود و قصد داشت از تبدیل بیت کوین به یک سیستم پرداخت با حجم بالا جلوگیری کند. در حالی که تعداد تراکنش‌های بیت کوین به طور روزانه در حال افزایش بود، سگویت برای رفع اشکال در انعطاف‌پذیری (Malleability) و همچنین افزایش ظرفیت بلاک (Block Capacity) بیت کوین ایجاد شد.
Segwit همانطور که از نامش پیداست، تراکنش را به دو قسمت مجزا تقسیم می‌کند. قسمت اول پروتکل تفکیک‌کننده که تمام داده‌های مربوط به امضای معامله در بلاک بیت کوین را حذف می‌کند. امضای معامله یکی از حجیم‌ترین داده‌ها و چیزی حدود 65 درصد بلاک را در بر گرفته است. نتیجه تفکیک داده‌ها، افزایش فضا تا حدود 4 برابر برای تراکنش‌های ذخیره شده در هر بلاک خواهد بود. این در صورتی است که اطلاعات در یک ساختار جداگانه به عنوان بخشی از بلاکچین باقی می‌مانند.
طرح Segregated Witness سازوکاری را برای انتقال امضاها به خارج از داده‌های تراکنش فراهم کرد تا باعث کاهش فضای ذخیره‌سازی هر تراکنش شود. همانطور که در بالا اشاره کردیم، بلاک‌ها دچار محدودیت 1 مگابایتی بودند که با اجرای این طرح دستخوش تغییر شدند تا امروز که این بلاک‌ها افزایشی برابر با 4 مگابایت دارند. این به‌روزرسانی باعث شد که بیت کوین فضای بیشتری برای ذخیره داشته باشد و سرعت پردازش داده‌ها افزایش یابد.
به زبان ساده، سگویت فرآیندی است که نحوه ذخیره داده‌ها را تغییر می‌دهد تا موجب افزایش سرعت در شبکه بیت کوین شود. این طرح با هدف حذف اطلاعات امضا دیجیتال و انتقال آن به خارج از بلاک تراکنش، وضعیت ثابت و پایدارتری را ایجاد کرد و باعث حل مشکل انعطاف‌پذیری شد.

مزایا و معایب سگویت

افزایش تعداد تراکنش‌ها در هر بلاک، کمک به فعال‌سازی پروتکل لایتنینگ، کاهش کارمزد تراکنش‌ها، کاهش زمان تایید تراکنش‌ها، افزایش درآمد ماینرها به دلیل تراکنش‌های بیشتر از مزایای استفاده سگویت است. اما در مقابل، معایبی نیز وجود دارد. پیاده‌سازی پیچیده‌تر، افزایش استفاده از منابع، مشکلات مربوط به نگهداری و تعمیر که در این مدل بیشتر است از معایب مهم این طرح به‌شمار می‌رود.

امنیت و میزان کارایی Segwit

فعالان دنیای ارز دیجیتال هنوز درباره مفید بودن یا نبودن این طرح با هم به بحث و مجادله می‌پردازند. اما افزایش امنیت در شبکه بلاکچین و کاهش زمان لازم برای انجام تراکنش‌ها به نفع بلاکچین، ماینرها و تمام کامپیوترها یا گره‌ها است که پذیرش طرح Segregated Witness را راحت‌تر می‌کند. این طرح باعث ارتقای بیت کوین شده و امکان اعتبارسنجی سریع‌تر را ایجاد می‌کند.
سگویت امنیت بیت کوین را با جلوگیری از انعطاف‌پذیری (Malleability) افزایش می‌دهد و با انتقال امضاها مشکل تغییر داده‌ها در بلاک را برطرف می‌کند.

نسخه‌های متفاوت بیت کوین

برای خرید، فروش و مبادله بیت کوین می‌توان از سه آدرس متفاوت استفاده کرد که آدرس سگویت یکی از این آدرس‌ها است. در ادامه به سه نسخه بیت کوین و تفاوت‌های آن‌ها اشاره می‌کنیم.

  • لگاسی (P2PKH)
    لگاسی اولین فرمت بلاکچین بود که با عدد 1 شروع می‌شد. لگاسی یا P2PKH (Pay-to-Pubkey Hash) آدرسی است که نرخ مبادلات بالاتری دارد و به همین دلیل مبادلات لگاسی ازکارمزد بالاتری برخوردار هستند.
    به طور مثال: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2، از نمونه‌های آدرس لگاسی است که هنوز بدون هیچ مشکلی کارایی دارد. امکان ارسال ارز از این آدرس به دیگر آدرس‌ها وجود دارد.
  • آدرس P2SH
    این آدرس با عدد 3 شروع می‌شود، مثل: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy، برای این آدرس وظیفه سنگین‌تر و پیچیده‌تری در نظر گرفته شده است. آدرس‌های P2SH (Pay To Script Hash) برای تراکنش‌هایی با چند امضا کاربرد دارند یعنی برای تایید تراکنش به امضای چند کاربر نیاز است و بهتر است که افراد عادی درگیر این آدرس نشوند. برای ارسال ارز به آدرس‌های دیگر مثل: لگاسی سگویت نیز می‌توان از این آدرس استفاده کرد.
  • سگویت (bech32)
    آدرسی که در تمام این مقاله در مورد آن صحبت کردیم، سگویت یا bech32 است که تفاوت‌هایی با دو نسخه قبلی دارد. این آدرس‌ها با  bc1 شروع می‌شوند و به نسبت دیگر آدرس‌ها طول بلندتری دارند. در گذشته، پشتیبانی از آدرس bech32  در صرافی‌های کمتری امکان‌پذیر بود اما به تدریج تعداد صرافی‌هایی که از این آدرس پشتیبانی می‌کنند، بیشتر شد. طبق آمار 1.3 از کاربران با bech32 خرید و فروش ارز دیجیتال را انجام ‌می‌دهند.

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