بستن

سگویت (SegWit) چیست و چه کاربردی دارد؟

سگویت یا SegWit (مخفف عبارت Segregated Witness)، راه حلی طراحی شده برای حل مشکل انعطاف پذیری تراکنش بیت کوین و ارتقا سطح مقیاس پذیری آن است. بنابراین، از سگویت برای تغییر شکل تراکنش بیت کوین استفاده می شود.

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

این طرح به وسیله شرکت Blockstream و تیم توسعه مشتری Bitcoin Core ارائه شده است. فورک نرم شرق، یکی از پیشنهادهای ارائه شده در طرح بهبود بیت کوین BIP بوده است.

این پیشنهاد تحت عنوان BIP-141 و با نام “Segregated Witness (Consensus Layer)” ارائه شد. با ارائه این طرح، بیت کوین بهبود یافته و مشکلات انعطاف پذیری تراکنش ها و مقیاس پذیری شبکه بیت کوین حل شد.

اما، استفاده از این طرح فراتر از بیت کوین گسترش پیدا کرده است. بلاک چین هایی همانند ،Litecoin ،DigiByte VertCoin و EOS نیز از این طرح استفاده می کنند.

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

تاریخچه و پیدایش سگویت SegWit

سگویت چیست

در دوران رونق ارزهای دیجیتال، بیت کوین با برخی از مشکلات مواجه بود. این مشکلات مربوط به ساختار کاری تراکنش ها بوده است.

این محدودیت ها بیشتر در هنگام مواجه شدن بیت کوین با تراکنش های سطح بالا دیده می شد. در نتیجه، بیت کوین قادر به مدیریت و انجام تراکنش ها نبود.

ارائه 7 یا 8 تراکنش در ثانیه برای پاسخ گویی به نیاز های کاربران و گسترش روز افزون شبکه کافی نبود.

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

این مسئله نیز موقعیت غیرقابل قبول دیگری را برای بیت کوین ایجاد کرد. برای حل این مشکل، توسعه دهندگان Bitcoin Core و Blockstream دست به کار شدند.

پس از تلاش های بسیار، SegWit در 21 دسامبر 2015 به وسیله توسعه دهندگان آن یعنی اریک لومبروزو، جانسون لائو و پیتر ویللی ارائه شد.

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

در حالی که بلاک های حاوی تراکنش ها در ساختار دیگری قرار دارند. این فرآیند در هر ساختار و زمانی انجام می شود. این موضوع به لطف وجود ساختار درختی merkle امکان پذیر است.

مشکلات حل شده به وسیله SegWit

مشکلات حل شده به وسیله SegWit

انعطاف پذیری بیت کوین

انعطاف پذیری، در واقع امکان تغییر کد یا سریال به وسیله شخص ثالث است. در این وضعیت شخص ثالث، کد یا سریال را به طور دلخواه و مطابق با منافع خود تغییر می دهد.

اساسا، در بیت کوین این ویژگی نوعی حمله منع خدمات (DoS) در نظر گرفته می شود. زیرا انعطاف پذیری منجر به جایگزینی شناسه تراکنش (TXID) در یک تراکنش تایید نشده می شود.

این مشکل به دلیل خاصی در بیت کوین ایجاد می شود. در بیت کوین، هش های امضا از اسکریپت امضا (scriptSig) محافظت نمی کنند.

این اسکریپت شامل امضای نوع (secp256k1) بوده و بدون آن امکان ورود وجود ندارد. علاوه بر این، محاسبه TXID به گونه ای مشکل ساز انجام می شود.

این روش احتمال تغییر شناسه یک تراکنش تایید نشده را به وسیله شخص ثالث مخرب افزایش می دهد. این دو مشکل، باعث آسیب پذیری شبکه می شوند.

در نتیجه حمله کننده قادر به تغییر دلخواه TXID می باشد. در حالی که تراکنش در حالت تایید نشده قرار دارد. در صورت ردیابی یک TXID مشخص در شبکه، امکان پیدا شدن آن وجود ندارد. زیرا، این شناسه تغییر کرده است.

این مسئله باعث بی اعتمادی دریافت کننده نسبت به ارسال کننده و شبکه می شود.

برای تشریح بهتر و ساده تر وضعیت بیان شده در قسمت قبل، به این مثال توجه کنید.

صبا به انجام یک تراکنش با دانیال می پردازد. پول دریافت شده از این تراکنش، به وسیله دانیال برای پرداخت به شیما از طریق تراکنش دوم مورد استفاده قرار می گیرد.

در همین زمان، در اثر اشتباه یا عمل خرابکارانه شخص ثالث، TXID تراکنش انجام شده بین صبا و دانیال تغییر کرده و با TXID دیگری تایید می شود.

بنابراین، پرداختی دانیال به شیما نامعتبر شده و رد می شود. در این شرایط صداقت افراد و اعتماد دو جانبه بین آنها، نقش اساسی و مهمی را ایفا خواهند کرد.

در صورت صادق بودن دنیل، وی پول ها را به ماریا بر می گرداند. در غیر این صورت، ارزهای دیجیتال را در نزد خود نگه می دارد.

با این مثال ساده، می توان مشکل انعطاف پذیری را به طور کامل مشاهده کرد. پس از رسیدن پول ها به مقصد تعیین شده، پول ها با TXID دیگری غیر از ایجاد کننده تراکنش یعنی صبا تایید می شوند.

در ادامه، دانیال متوجه ناپدید شدن تراکنش خود از شبکه می شود. این اتفاق در اثر تغییر شناسه، بدون تایید تراکنش مورد نظر انجام شده است.

در نتیجه، تراکنش های وابسته نیز نامعتبر خواهند بود. زیرا تراکنش های جدید وابسته به تراکنش قدیمی هستند.

مقیاس پذیری بیت کوین

حل مشکل مقیاس پذیری بیت کوین توسط سگویت

مقیاس پذیری، بدترین مشکلی بوده که توسعه دهندگان و حمایت کنندگان بیت کوین با آن مواجه شده اند.

در زمان ترافیک بالای شبکه بیت کوین، عملکرد آن بسیار دورتر از عملکرد مورد انتظار است، یعنی انجام تراکنش ها به صورت سریع و کم هزینه است.

گسترش شبکه بیت کوین، محدودیت زیادی را برای آن ایجاد کرده است. به همین دلیل، تایید تراکنش ها زمان زیادی را در بر می گیرد.

علاوه بر این، هزینه بالای دریافتی برای هر کمیسیون، مانعی برای انجام تراکنش های با پرداخت اندک در بیت کوین شده است.

این فاجعه کوچک به نظر می رسد. اما، هزینه زیادی را برای جامعه حمایت کننده بیت کوین در سطح جهان ایجاد کرده است. انتظار جهانی از بیت کوین، برخورداری از تکنولوژی پرداختی امن و سریع است.

به همین منظور، توسعه دهندگان SegWit به دنبال حل این مشکل بوده و ساختار جدیدی را برای مقیاس پذیری شبکه تعیین کرده اند.

پیشنهاد ارائه شده به وسیله سگویت، جداسازی اسکریپت های تراکنش، امضا و قرار دادن آنها در یک ساختار جدید است.

در عین حال، امکان افزایش مقدار بلاک ها تا 1.8 MB نیز وجود دارد. در حالی که مقدار فعلی آنها 1 MB است. این موضوع تاثیر قابل توجهی در مقیاس پذیری و تعداد تراکنش های انجام شده در هر بلاک بیت کوین دارد.

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

این وضعیت، اثر بسیار مثبتی بر کاهش هزینه های کمیسیون و سرعت تایید تراکنش ها داشته است.

همچنین، SegWit امکان ایجاد سیستم مقیاس پذیری جدید را به وسیله غلبه بر مشکل انعطاف پذیری و امضاها در داخل بلاک ها به وجود آورده است.

از موارد مهم استفاده از این طرح می توان به شبکه پرطرفدار Lightning اشاره کرد. Lightning Network از راه حل ارائه شده برای مشکل مقیاس پذیری طراحی شده به وسیله Blockstream، استفاده می کند.

این شبکه از همان شکل سگویت برای انجام تراکنش ها در داخل کانال های خود استفاده می کند. این وضعیت به طور مشخص و مستقیم در documentation RFC شبکه Lightning قرار می گیرد.

تاثیر SegWit بر بیت کوین

تاثیر SegWit بر بیت کوین

SegWit تغییرات کاملا مشخصی را در نحوه مدیریت تراکنش های بیت کوین به وجود آورده است. به عبارت دیگر، این طرح یک فورک نرم در شبکه بیت کوین ایجاد کرده است.

این فورک نرم امکان فعالیت نودهای لگسی (ارتقا نیافته) و نودهای سگویت را به طور همزمان فراهم می کند. این عمل بدون تاثیر منفی بر روی کارکرد شبکه یا امنیت آن انجام می شود.

به عبارت دیگر، SegWit امکان ایجاد بلاک هایی با اندازه های بزرگ را برای بیت کوین مهیا می کند. یکی از بزرگ ترین تغییرات ساختاری انجام شده به وسیله سگویت در بیت کوین، تغییر اندازه بلاک ها از 1 MB تا 4 MB است.

به این ترتیب، سگویت به روزرسانی بسیار مهمی در اندازه های بلاک های بیت کوین انجام می دهد. انجام این به روزرسانی بدون نیاز به ایجاد فورک سخت و مواجه با عواقب آن صورت می گیرد.

یکی دیگر از تغییرات مهم انجام شده به وسیله SegWit، تولید نوع جدیدی از آدرس های بیت کوین است. این آدرس ها، به نام آدرس های سگویت شناخته شده و با “Bc1” یا “3” شروع می شوند.

به طور همزمان، پیشنهاد ارائه شده به وسیله سگویت، پایه های مورد نیاز برای ایجاد شبکه Lightning را فعال کرده است. زیرا، وجود SegWit برای ایجاد ساختار جدید ضروری است.

در این ساختار جدید، مصونیت تراکنش های خارج از زنجیره در برابر حمله انعطاف پذیری تضمین می شود. این حالت، در وایت پیپر شبکه Lightning به طور کامل و به همراه جزئیات تشریح شده است.

مزایای SegWit

از میان مزیت های سگویت، می توان به موارد زیر اشاره کرد:

  • جلوگیری از حمله انعطاف پذیری : این طرح از حمله انعطاف پذیری جلوگیری می کند. این موضوع از طریق جداسازی اطلاعات امضا از سایر اطلاعات در یک تراکنش انجام می شود.
  • افزایش اندازه بلاک : سگویت، اندازه بلاک ها را تا حداکثر 4 MB افزایش می دهد.
  • ارائه اختیاری امضای تراکنش : در این طرح ارائه امضای تراکنش یا witness data اختیاری است. این اطلاعات برای اعتبارسنجی تراکنش به وسیله نودها ضروری خواهند بود. اما برای تایید آنها، نیازی به ارائه این اطلاعات نخواهد بود.
  • بهبود کارایی SPV ها : استفاده از این طرح موجب بهبود عملکرد (تایید پرداخت ساده) SPV ها شده است. زیرا، اندازه تست های تاییدی و استفاده از پهنای باند کاهش می یابد.
  • ایجاد ساختار جدید برای پروتکل های مقیاسی پذیری : این طرح به ایجاد ساختارهای جدید برای پروتکل های مقیاس پذیری پس از حل مشکل انعطاف پذیری اقدام می کند. همانند آنچه که در شبکهLightning انجام شده است.
  • کاهش کمیسیون های شبکه : استفاده از این طرح باعث کاهش رقابت برای در اولویت قرارگرفتن نرخ هش در بین کاربران می شود. همین موضوع، هزینه های کمیسیون های شبکه را کاهش می دهد.

کیف پول های سازگار با SegWit

کیف پول های سازگار با SegWit

برای بهره مندی کاربران بیت کوین از تراکنش های SegWit، استفاده از کیف پول های سازگار با آن ضروری است. این کیف پول ها برای کاربران آدرس های لگسی یا سگویت را برای انجام تراکنش ها فراهم می کنند.

در میان کیف پول های بیت کوین ارائه دهنده این قابلیت، می توان به موارد زیر اشاره کرد:

  • Ledger : این شرکت سازنده کیف پول های سخت افزاری پشتیبانی کننده از ارزهای دیجیتال متنوع است. علاوه بر این، کیف پول های تولید شده از قابلیت راه اندازی SegWit برای بیت کوین برخوردار هستند. این موضوع باعث کاهش سطح امنیتی کیف پول نشده است.
  • Trezor : شرکت دیگر سازنده کیف پول های سخت افزاری بوده که تولیدات آن از SegWit پشتیبانی می کنند.
  • BitcoinCore : کیف پول اصلی تیم توسعه بیت کوین بوده که از SegWit پشتیبانی می کند. این قابلیت از نسخه 0.13.1 به بعد در آن ایجاد شده است.
  • Bitcoin Armory : این کیف پول با استفاده از زبان برنامه نویسی Python ایجاد شده و از SegWit پشتیبانی می کند. این کیف پول را می توان در سیستم های عامل ویندوز، لینوکس و Mac OS نصب کرد.
  • Electrum : این کیف پول در تلفن های دارای سیستم عامل اندروید و همچنین ویندوز، لینوکس و Mac OS قابل دسترسی است. این کیف پول در سال 2011 فعال شده و از آن زمان تاکنون یکی از کیف پول های مورد اعتماد کاربران در جامعه بیت کوین بوده است.

این کیف پول به صورت منبع باز بوده و از SegWit پشتیبانی می کند. همچنین، امکان تعیین کمیسیون های تراکنش برای کاربران در آن فراهم شده است.

فعال کردن SegWit در شبکه بیت کوین

در 21 جولای 2017 به روزرسانی جدیدی از سوی استخراج کنندگان بیت کوین ارائه شد. در این دوره، استخراج کنندگان از پروتکل قرار گرفته در پیشنهاد بهبود بیت کوین پیروی می کردند.

همین موضوع منجر به ایجاد به روزرسانی جدید و فعال شدن نهایی SegWit شد. این طرح بر اثر کارها و اقدامات لوک داشجیر اجرای موفقیت آمیزی داشت.

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

در نهایت، در 23 آگوست 2017، SegWit به طور رسمی هنگام استخراج بلاک 481.822 و حمایت 99,95 درصدی شبکه فعال شد.

واکنش شما چیست؟
0پسندیدن0نپسندیدن0دوست داشتنی0خنده دار
0 0 امتیاز
امتیازدهی
عضویت
اعلان برای
guest

0 دیدگاه ها
قدیمی ترین ها
جدیدترین ها بیشترین امتیاز
نظردهی درون متنی
نمایش همه دیدگاه ها