تکنولوژی سگویت (Segwit) چیست؟
واژه سگویت، مخفف Segregated Witness است که برای اولین بار توسط یک توسعهدهنده با نام پیتر ویل در کنفرانس Scaling Bitcoin در دسامبر 2015 مطرح شد.این طرح با هدف رفع برخی معضلات بلاکچین بیت کوین ارایه شد که در ادامه به آن میپردازیم.
معضل مقیاسپذیری بیت کوین
تراکنشهای بیت کوین بر روی یک دفترکل غیرقابل تغییر به نام «بلاکچین» ثبت میشوند. در بلاکچین، تراکنشها بهمنظور حفظ ترتیب آنها، در بلاکهایی به هم متصل دستهبندی شدهاند. ظرفیت این بلاکها تا 1 مگابایت محدود است. در نتیجه هر بلاک بیت کوین، به طور متوسط قادر است حدود 2700 تراکنش را در خود جای دهد.
بنابراین زمانی که افراد زیادی در حال معامله یا خرید بیت کوین باشند، یک صف طولانی از تراکنشهایی که منتظر ورود به بلاکچین هستند ایجاد میشود. برای درک بهتر سرعت پردازش تراکنشها در بلاکچین بیت کوین باید اشاره کنیم که سرویس پرداخت Visa به طور معمول 1700 تراکنش در ثانیه را پردازش میکند، درحالی که این برای بیت کوین تنها 5 تراکنش در ثانیه است. پس کاملا قابل انتظار است که این شبکه برای پذیرش انبوه کاربران، دچار مشکل است.
آشنایی با انواع مختلف بلاکچین
معضل انعطافپذیری تراکنشهای بیت کوین
معضل انعطافپذیری تراکنش Malleability))، یکی دیگر از مواردیست که بیت کوین با آن دست به گریبان است. هر تراکنش بیت کوین دارای 3 بخش مهم است:
- ارسال کننده تراکنش (ورودی).
- دریافت کننده تراکنش (خروجی).
- یک امضای دیجیتال که تأیید میکند فرستنده واجد شرایط ارسال کوینها است.
بلاکچین بیت کوین به امضای دیجیتال این اجازه را میدهد تا قبل از تایید شدن تراکنش، تغییر کند. این تغییر امضا به گونهای انجام میشود که از نظر ریاضی همچنان توسط شبکه معتبر است. با این حال اگر یک الگوریتم هش روی آن اجرا شود، نتیجه کاملاً متفاوت خواهد بود.
انعطافپذیری تراکنش چگونه مشکلساز میشود؟
اجازه دهید با یک مثال این شرایط را توضیح دهم. فرض کنید مقدار امضا «3» باشد، اما به جای «3» آن را به «03» یا «3+7-7» تغییر دهیم. ملاحظه میکنید که از نظر منطق ریاضی، مقدار آن تغییر نکرده و این یک امضای معتبر است. اما اگر هر یک از این نسخهها را هش کنم، نتایج متفاوتی دریافت خواهیم کرد. زیرا هش کردن به نحوه نوشتن مقدار بستگی دارد نه خود مقدار.
این مساله موجب انعطافپذیری معامله میشود، یعنی تغییر شناسه تراکنش با تغییر در اطلاعات موجود در کد آن. اساساً هنگام ارسال تراکنش در شبکه، هر نود توانایی تغییر شناسه تراکنش قبل از ارسال آن به نود بعدی را دارد. اما این اتفاق به چند دلیل مشکلساز است:
- اگر بخواهید راهکارهای لایه دوم را در بستر شبکه بیتکوین ارائه دهید، باید مطمئن شوید که هیچکس نمیتواند اطلاعات لایه اول را تغییر دهد.
- در صورت خرج کردن یا پذیرش وجوه تایید نشده، تغییر شناسه تراکنش میتواند مشکلاتی مانند سوءاستفاده از برخی کاربران را ایجاد کند.
فرض کنید علی مبلغی را به پیمان پرداخت کرده که هنوز تایید نشده است (تراکنش X). پیمان از این تراکنش تایید نشده برای خرید آنلاین یک محصول از فروشگاه اینترنتی (تراکنش Y) استفاده میکند. این فروشگاه منتظر هیچ تاییدی برای تراکنش Y نمیشود و محصول خود را برای پیمان ارسال میکند. اکنون تراکنش Y نامعتبر است زیرا به شناسه تراکنشی متکی است (تراکنش X) که دیگر وجود ندارد. اما فروشگاه علیرغم اینکه پولی به او پرداخت نشده، کالا را برای پیمان ارسال کرده است. بنابراین پیمان توانسته به نوعی از فروشگاه اینترنتی سوءاستفاده کند.
سگویت چگونه عمل میکند
سگویت در حقیقت یک افزایش سایز بلاک است. بلاکهای غیر سگویت که با عنوان لگاسی Legacy)) شناخته میشوند، مجموعاً 1 مگابایت فضا برای تمامی دادهها (ورودی، خروجی، امضا و غیره) دارند. از سوی دیگر، بلاکهای سگویت از یک بلاک تراکنش پایه و یک بلاک ضمیمه تشکیل شدهاند و دارای سایز بزرگتر (تا 4 مگابایت) هستند.
بلاکهای سگویت، امضای دیجیتال و سایر دادهها (دادههای شاهد) را به بلاک ضمیمه منتقل میکنند. بنابراین بلاک تراکنش پایه، صرفاً شامل اطلاعات مربوط به فرستنده و گیرنده است و فضای آزاد بیشتری خواهد داشت. این کار باعث میشود تراکنشهای بیشتری در بلاک 1 مگابایتی قرار گیرند.
بلاک ضمیمه (3 مگابایت) شامل تمام دادههای شاهد است که وجود آنها در بلاک تراکنش پایه اجباری نیست. این فرمت جدید که سگویت برای بلاکها فرهم کرده به دو هدف اصلی سرانجام میشود:
- انتقال امضای دیجیتال به خارج از بلاک تراکنش پایه: به این ترتیب اگر شخصی امضای تراکنش را تغییر دهد، روی شناسه تراکنش تاثیری نخواهد داشت. (رفع مشکل انعطافپذیری تراکنش)
- کاهش دادههای پایه تراکنش: از آنجایی که داده شاهد تا 65 درصد از حجم تراکنش را به خود اختصاص میدهند، انتقال آنها به خارج از بلاک تراکنش پایه موجب میشود تراکنشهای بیشتری در یک بلاک 1 مگابایتی قرار گیرند. (افزایش مقیاسپذیری)
سگویت یک سافت فورک است
ممکن این سوال برای شما مطرح شود که چرا سگویت مستقیما سایز بلاک را به 4 مگابایت افزایش نداده است؟ دلیل آن این است که توسعهدهندگان میخواستند از ایجاد هارد فورک در شبکه بیت کوین اجتناب کنند. پروتکل بیت کوین به طور خاص بر اساس سایز بلاکهای 1 مگابایتی بنا شده است. بنابراین توسعهدهندگان مجبور بودند راهحلی بیابند که با بلاکهای قدیمی هم سازگار باشد.
از این رو، راهحل بلاک 1 مگابایتی با یک «بلاک ضمیمه» 3 مگابایتی، چیزیست که در پروتکل فعلی بیت کوین هم قابل اجرا است. با این حساب، نودهای قدیمی فقط بلاک تراکنش پایه 1 مگابایتی را بدون بلاک ضمیمه دریافت میکنند. نودهای سگویت هم هر دو بلاک پایه و ضمیمه (در مجموع تا ۴ مگابایت) را دریافت کرده و میتوانند تراکنشها را به طور کامل تأیید کنند. این سازگاری با نسخههای پیشین، اصطلاحاً سافت فورک نامیده میشود و نیازی به بروزرسانی نودها ندارد. این بدین معناست که حتی اگر سالها روند ارتقا تمامی نودها طول بکشد، شبکه همزمان میتواند به کارخود ادامه دهد.
سایر مزایای سگویت
سگویت همچنین به رفع معضلات فنی دیگری که لزوماً کاربر نهایی را تحت تأثیر قرار نمیدهد میپردازد. در زیر لیست برخی مزایای سگویت را مشاهده میکنید:
- رفع مقیاسپذیری خطی
- امضای مقادیر ورودی
- افزایش امنیت چندامضاییها از طریق فرمت P2SH
- کاهش رشد خروجی خرج نشده (UTXO)
- نسخهگذاری اسکریپت (Script versioning)
- افزایش ظرفیت/سایز بلاک
کیف پولهایی که سگویت را پشتیبانی میکنند:
تعدادی از کیف پول های معتبر از سگویت پشتیبانی میٰکنند که لیست آن را میتوانید در ادامه مشاهده کنید. شما میتوانید بعد از معامله بیت کوین در صرافی های معتبر دارایی بیت کوین خود را به این کیف پول منتقل کنید:
لجر نانو اس (Ledger Nano S)، ترزور (Trezor)، الکتروم (Electrum)، کوینومی (Coinomi)، کوین بیس (Coinbase)، بیت گو (BitGo)، گرین آدرس (GreenAddress)، تراست والت (Trust Wallet)، بیت باکس (BitBox)، اکسودوس (Exodus)، سامورایی والت (Samourai Wallet) و سگویت آدرس (Segwitaddress) که کیف پول کاغذی سگویت است.
صرافیهایی که از سگویت پشتیبانی میکنند:
صرافیهای جمینی (Gemini)، کراکن (Kraken)، لوکال بیت کوینز (LocalBitcoins)، بیت استمپ (Bitstamp)، بیتفینکس (Bitfinex)، بیت اونیک (Bitonic) و هیتبیتیسی (HitBTC) از آدرسهای سگویت بیت کوین پشتیبانی میکنند.
آیا بروزرسانی های بیت کوین موجب افزایش قیمت آن می شود؟
بله، با هر بروزرسانی شبکه بیت کوین، هجوم معاملهگران برای خرید بیت کوین بیشتر میشود. شما میتوانید با پیگیری اخبار بهروزرسانیها و بعد از خواندن نظرات متخصصین این حوزه، اقدام به خرید بیت کوین از والکس (https://wallex.ir/markets/btc ) کنید. والکس یک صرافی ارز دیجیتال ایرانی است که به شما خدمات خرید و فروش لحظهای بیت کوین و سایت ارزهای دیجیتال را همگام با قیمت جهانی عرضه میکند.