در سالهای اخیر، مشکل مقیاسپذیری در طیف گستردهای از شبکههای بلاک چین پدیدار شد. برای مثال شبکه بیت کوین را در نظر بگیرید؛ اکنون تقریباً بیش از یک دهه است که بدون رخ دادن هیچ حادثه بزرگی کار میکند؛ اما زمانهایی وجود داشته که کارمزد تراکنشهای آن سر به فلک کشیدهاند.
به همین خاطر، طرح سگویت (Segwit) یا Segregated Witness بهعنوان یک راهحل امیدوارکننده برای مشکل مقیاسپذیری بیت کوین مطرح شد. آیا سگویت راهحل قابل اعتمادی برای بهبود مقیاسپذیری بلاک چین بیت کوین است؟ اصلاً سگویت چیست و چگونه عمل میکند؟ در این مقاله همراه ما باشید.
سگویت چیست؟
شبکه بیت کوین متشکل از هزاران کامپیوتر است که بهعنوان تاییدکنندهی (Validator) بلاکهای ایجادشده توسط ماینرها کار میکنند. این کامپیوترها گره یا نود (Node) نامیده میشوند که هر کدام فایل تاریخچه کامل تراکنشهای شبکه را نگه میدارند. به این فایل بلاک چین میگویند.
شبکه بیت کوین در زمان بلوغ خود با مشکلات متعددی مواجه شد. یکی از مشکلات اصلی آن این بود که با افزایش شمار تراکنشها، بلاکهای بیشتری به زنجیره میپیوستند. بلاکها هر 10 دقیقه ایجاد میشدند و اندازه آنها حداکثر یک مگابایت (MB) بود. بهدلیل این محدودیت، تنها تعداد معینی از تراکنشها را میشد در یک بلاک درج کرد.
افزایش شمار تراکنشها شبکه را سنگین میکرد و باعث تأخیر در پردازش و تایید تراکنشها میشد. حتی در برخی مواقع، چند ساعت طول میکشید تا تراکنش تایید شوند. اگر طرح سگویت (SegWit) پیادهسازی نمیشد، زمان مورد نیاز برای تایید تراکنشهای بیت کوین با افزایش محبوبیت این ارز دیجیتال و افزایش تعداد معاملات، بهشدت افزایش پیدا میکرد.
آپدیت سگویت توسط توسعهدهنده بیت کوین پیتر ویل (Pieter Wuille) مطرح شد. ویل یکی از بنیانگذاران بلاک استریم (Blockstream)، یک شرکت نرمافزاری متخصص در امنیت دیجیتال برای خدمات مالی است.
پروتکل SegWit تراکنش را به دو بخش یا سگمنت (segment) تقسیم میکند. امضای تراکنش (داده شاهد یا witness) از بخش اصلی حذف میشود، اما بهعنوان یک ساختار جداگانه، در بلاک چین باقی میماند. بخش (سگمنت) اصلی اطلاعات فرستنده و گیرنده را حفظ میکند، درحالیکه بخش witness اسکریپتها و امضاها را نگه میدارد.
در نتیجه این تفکیک دادهها، فضای بیشتری ایجاد میشود و تراکنشهای بیشتری را میتوان به بلاک چین بیت کوین اضافه کرد.
سگویت چگونه کار میکند؟
طرح سگویت راهحلی برای مشکل محدودیت اندازه بلاک چین بود که باعث کند شدن سرعت تراکنش بیت کوین میشد. توسعهدهنده بیت کوین دکتر پیتر ویل پیشنهاد کرد که برای حل این مشکل، امضای شاهد تراکنش (transaction witness) باید از دادههای تراکنش جدا شود.
طرح سگویت امضا (signature) را به خارج از دادههای تراکنش منتقل میکند. این باعث کاهش اندازه مورد نیاز برای ذخیره تراکنش میشود. بیت کوین قبلاً محدودیت اندازه بلاک 1 مگابایتی داشت، اما بعد از آپدیت SegWit، این محدودیت کاهش پیدا کرد.
محدودیت وزن بلاک بیت کوین پس از آپدیت سگویت به زیر 4 میلیون واحد وزنی (WU) تغییر کرد. بلاکی که از سگویت استفاده نمیکند دارای وزن 1 میلیون WU است، درحالیکه بلاک سگویتی دارای محدودیت 4 میلیون WU میباشد. ازآنجاییکه اندازه بلاکهای قدیمی به 1 مگابایت محدود میشد، بسیاری از طرفداران ارزهای دیجیتال معتقدند که 1 مگابایت برابر با 1 میلیون WU (محدودیت بلاک غیرسگویتی) است و محدودیت 4 میلیون WU را با افزایش اندازه بلاک به 4 مگابایت مرتبط میدانند. اگرچه پس از آپدیت سگویت اندازه بلاک افزایش یافت، این محدودیت بر حسب مگابایت نیست.
بهعنوان مثال، بلاک 720399 بیت کوین در 25 ژانویه 2022 استخراج شد. اندازه آن 1.558 مگابایت و وزن آن 3.993 میلیون WU بود. بلاک 720340 بیست و یک دقیقه بعد استخراج شد و اندازه آن 1.457 مگابایت و وزن آن 3.993 میلیون WU بود.
در اوایل همان روز، یک بلاک با اندازه 1.188 مگابایت، با 3.993 WU استخراج شد. این نشان میدهد که لزوماً محدودیت اندازه بلاکی بر حسب مگابایت وجود نداشته، بلکه محدودیتی بر اساس وزن وجود دارد که اندازه پایه و اندازه کل بلاک را در نظر میگیرد.
این باعث ایجاد فضای بیشتری برای دادهها میشود که سرعت اعتبارسنجی تراکنشها را افزایش میدهد. SegWit همچنین راه را برای فعال کردن قراردادهای هوشمند در بیت کوین و ارتقا به نسخه تپروت، (Taproot.10) هموار کرد.
مزایای سگویت چیست؟
سگویت یک ارتقای بزرگ برای شبکه بیت کوین به شمار میرود که مزایای متعددی را به کاربران این شبکه ارائه میکند. این بهروزرسانی امکان افزایش ظرفیت تراکنش، بهبود امنیت و اجرای سایر فناوریهای پیشرفته را فراهم کرده که در ادامه بهصورت دقیقتر به آنها میپردازیم.
حل مشکل چکشخواری تراکنش
طرح سگویت نگرانیهای مربوط به چکشخواری تراکنشهای بیت کوین را برطرف کرد. چکشخواری تراکنش، به توانایی تغییر شناسه تراکنش (TXID) بدون بیاعتبار کردن امضا اشاره دارد که میتواند شناسایی تراکنش را برای شبکه دشوار کند. SegWit چکشخواری تراکنش را با جدا کردن اطلاعات امضا از شناسه تراکنش (TXID) رفع کرد.
کارمزد تراکنش کمتر
آپدیت سگویت محدودیت اندازه بلاک را با حذف دادههای امضا از بلاک تراکنش و ذخیره آن بهطور جداگانه افزایش میدهد. با جداسازی دادههای امضا، اندازه بلاک تراکنش کاهش مییابد و تراکنشهای بیشتری را میتوان در یک بلاک گنجاند. این بهنوبه خود رقابت برای فضای بلاک و کارمزد تراکنش را کاهش میدهد.
سازگاری بهبودیافته
یکی از مزایای طرح سگویت سازگاری بهبودیافته با سایر فناوریها و آپدیتها است. با جدا کردن دادههای امضا از دادههای تراکنش، SegWit امکان استفاده کارآمدتر از فضای بلاک را فراهم کرده که میتواند اجرای آپدیتها و فناوریهای دیگر در شبکه بیتکوین را آسانتر کند.
فعالسازی شبکه لایتنینگ
بهروزرسانی سگویت راه را برای راهاندازی شبکه لایتنینگ (Lightning network) بهعنوان لایه دوم بلاک چین بیت کوین فعال کرد. تا زمانی که SegWit فعال نشده بود، شبکه لایتنینگ قابلیت اجرا نداشت؛ زیرا بهشدت به تراکنشهای تاییدنشده بیت کوین متکی بود و بنابراین تا زمانی که چکشخواری تراکنش دیده میشد، مستعد حمله به حساب میآمد.
نحوه استفاده از سگویت چگونه است؟
انجام تراکنش سگویتی در شبکه بیت کوین در واقع بسیار ساده است و عمده فرایند آن بهصورت خودکار انجام میشود. در ادامه مراحل انجام آن را آوردهایم:
مرحله 1: یک کیف پول انتخاب کنید که از تراکنشهای سگویت پشتیبانی کرده است
از کیف پولهایی که از تراکنشهای سگویت پشتیبانی میکنند میتوان به ولتهای Trezor ،Ledger ،Samourai Wallet ،Electrum و KeepKey اشاره کرد.
مرحله 2: یک حساب کاربری جدید ایجاد کنید
اکنون که کیف پول خود را دانلود کردهاید، زمان آن رسیده است که یک حساب جدید SegWit بسازید تا وجوه خود را به آن منتقل کنید. حتی اگر نرمافزار جدیدی دانلود نکرده یا دستگاه جدیدی نخریدهاید، باید یک حساب کاربری و آدرس جداگانه ایجاد نمایید. این مرحله ممکن است در هر کیف پولی کمی متفاوت باشد، اما این تفاوتها معمولاً جزئی هستند و نباید مشکلی ایجاد کنند. قبل از ایجاد حساب، برخی از کیف پولها از شما میخواهند که ارز دیجیتال و نوع دستگاه خود را برگزینید.
سپس، احتمالاً دو نوع حساب به شما پیشنهاد میشوند:
1- حساب قدیمی شما به نام Legacy account: نیاز به نگرانی نیست، آنها ایمن هستند؛ زیرا آپدیت سگویت هیچ تأثیری روی آنها ندارد. آنها فقط نمیتوانند از ویژگیهای جدید پشتیبانی کنند.
2- حساب سگویت جدید شما: گزینهای که ما در این آموزش روی آن تمرکز خواهیم کرد.
شما همچنین میتوانید چندین حساب SegWit بسازید که این موضوع به کیف پول شما نیز بستگی دارد. درهرصورت، مراحل راهاندازی حساب مشابه هستند.
مرحله 3: یک آدرس SegWit ایجاد کنید
اکنون که یک حساب داریم، نیاز به یک آدرس هم خواهیم داشت. حتماً دستورالعملهای کیف پول خود را در مورد نحوه ایجاد آدرس دنبال کنید. در برخی از ولتها، پس از اتمام ساخت حساب، تنها کاری که باید انجام دهید این است که روی آن کلیک کرده و از طریق دستورات آن را تائید کنید. بااینحال، ممکن است از شما خواسته شود که فرمت آدرس را انتخاب نمایید.
سه نوع آدرس وجود دارند؛ ممکن است دو یا هر سه مورد به شما پیشنهاد شوند و بر اساس قالب آنها فوراً تشخیص خواهید داد که کدام نوع است. تشخیص نوع این آدرسها بهخاطر اینکه هر کدام قابلیت انجام چه کاری را دارند و چه نوع معاملاتی میتوانید با هر یک از آنها انجام دهید، مهم است.
1- آدرس (Legacy P2PKH): این آدرس اصلی بیت کوین است که با عدد 1 شروع میشود. همه کیف پولها از این آدرس پشتیبانی میکنند؛ اما تراکنشهای آن سگویتی نیستند.
2- آدرس (Nested SegWit P2SH-P2WPKH): این آدرس با عدد 3 شروع میشود. گرچه استاندارد سگویت نیست، اما با آن سازگاری کامل دارد. "P2SH Pay To Script Hash" فقط بهمعنای سگویت نمیباشد (میتواند یک آدرس چندامضایی نیز به حساب آید)، بلکه این آدرس ممکن است در دستگاه شما فقط تحتعنوان "SegWit" ظاهر شود. ضمناً، تعداد زیادی از صرافیهای ارزدیجیتال و کیف پول ها از این آدرس پشتیبانی میکنند.
3- آدرس بومی سگویت (bech32): این آدرس با bc1 شروع میشود. این پیشوند صرفاً برای آدرسهای سگویت محفوظ است. برخی از کیف پولها و صرافیها از این آدرس پشتیبانی میکنند.
مرحله 4: بیت کوین را به حساب SegWit جدید خود منتقل کنید
این آخرین مرحله تراکنش سگویت است. برای شروع استفاده از SegWit، باید وجه را منتقل کنید؛ یعنی یک پرداخت P2PKH از حساب Legacy خود به آدرس P2SH-P2WPKH انجام دهید. پس از این مرحله، میتوانید از طریق آدرس P2SH-P2WPKH و با کارمزدهای کمتر، بیت کوین ارسال و دریافت کنید.
محدودیتهای سگویت کدامند؟
مزایای طرح سگویت میتوانند بر معایب آن سایه افکنند. بااینحال، شما میبایست از محدودیتهای این بهروزرسانی که در زیر به آنها پرداختهایم، آگاه باشید:
- همه گرهها از سگویت استفاده نمیکنند: بسیاری از ماینرها سگویت را دوست ندارند. کارمزدهای کمتر تراکنشهای سگویت بر سود آنها تأثیر میگذارند.
- این یک راهحل کوتاهمدت برای مشکلات بلندمدت است: برخی از توسعهدهندگان بیت کوین گله دارند که پروتکل SegWit بهاندازه کافی برای حل مشکل مقیاسپذیری خوب عمل نمیکند. آنها معتقدند که فقط تغییرات عمده در اندازه بلاک چین و نحوه پردازش تراکنشها به این پلتفرم کمک خواهند کرد تا در آینده مقیاسپذیر شود.
- طرح سگویت باعث ایجاد دودستگی در جامعه بیت کوین شده است: اختلافات پیرامون SegWit باعث ایجاد چندین هارد فورک شده که شناختهشدهترین آنها بیت کوین کش (BCH) محسوب میشود.
سگویت شامل چه ارتقایی میشود؟
طرح سگویت بهعنوان یک سافتفورک برای بهبود مقیاسپذیری و حل مشکل چکشخواری تراکنشهای بیت کوین پیادهسازی شد. پروتکل سگویت backward compatible است؛ به این معنی که هنگام استفاده از SegWit با گرههایی که بهروز نشدهاند، مشکلی نخواهید داشت. از سوی دیگر، توسعهدهندگان هارد فورک دیگری را برای اجرای سگویت پیشنهاد کردند که SegWit 2X یا S2X نامیده میشود.
SegWit 2X
قابل توجهترین تفاوت بین SegWit و SegWit 2X مربوط به قابلیتهای اضافی SegWit 2X است. در SegWit 2X، تغییرات مشهودی در دستهبندی تراکنشها بهعلاوه افزایش اندازه بلاک را مشاهده خواهید کرد. بااینحال، توجه به این نکته نیز مهم است که اندازه بلاک بزرگتر بهدلیل حجم بالای داده، بار سنگینتری را بر ماینرها و گرهها تحمیل میکند.
قابل ذکر است، SegWit 2X نیازمند تغییرات اساسی در قوانین حاکمیتی بیت کوین بود و در نهایت، توسعهدهندگان هرگز در مورد پذیرش یا اجرای SegWit 2X به اجماع نرسیدند و این پیشنهاد به حالت تعلیق درآمد.
Nested SegWit و Native SegWit
Native SegWit که به آن bech32 نیز گفته میشود، اساساً یک نسخه ارتقایافته از پروتکل Nested SegWit است. در پروتکل Native SegWit، سرعت تراکنش بهبود یافته، کارمزد تراکنش کمتر است و مکانیزمهای تشخیص خطا بسیار بهتر عمل میکنند.
همچنین تمام آدرسهای bech32 با حروف کوچک هستند که خوانایی آدرس را بهبود میبخشد. توجه به این نکته مهم است که تمام تراکنشهای بلاک چینی بین کیف پولهای SegWit ،non-SegWit و nested SegWit کاملاً با یکدیگر سازگار هستند. از سوی دیگر، ممکن است برخی صرافیها و کیف پولها از سگویت پشتیبانی نکنند. بنابراین، در برخی موارد نمیتوانید مستقیماً به آدرسهای SegWit بیت کوین واریز کنید.
سخن پایانی
هدف طرح سگویت ارتقای پروتکل بیت کوین، جلوگیری از مشکل چکشخواری تراکنش و کاهش زمان تراکنش با افزایش ظرفیت بلاک بود. چکشخواری تراکنش به احتمال تغییر دادههای تراکنش اشاره دارد که منجر به نامعتبر شدن بلاکهای جدید در شبکه میشود. این آپدیت همچنین بهمنظور افزایش سرعت فرایند اعتبارسنجی تراکنشها به کمک درج تراکنشهای بیشتر در یک بلاک، پیادهسازی شد.
اگر شما نیز تا به حال تراکنش سگویتی در شبکه بیت کوین انجام دادهاید، تجربه خود را با ما در بخش نظرات به اشتراک بگذارید.