سگویت Segwit چیست و عملکرد آن به چه صورت است؟

سگویت Segwit  چیست و عملکرد آن به چه صورت است؟

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

ارزهای دیجیتال مانند اغلب نرم‌افزار‌های کامپیوتری نیازی مبرم به آپدیت و ارتقا دارند. به این معنی که باگ‌ها و نواقصی که در هر نسخه ظاهر می‌شوند، باید در بروزرسانی‌های مختلف برطرف گردند. به همین منظور است که بسیاری از کاربران هنگام خاموش‌ کردن سیستم یا لپ‌تاپ، نرم‌افزارهای کامپیوتری خود را با پیغام «خاموش به همراه آپدیت» مشاهده می‌کنند.

این مسئله در دنیای بلاک‌چین و ارزهای دیجیتال نیز صدق می‌کند؛ به گونه‌ای که هرگاه یک ارز دیجیتال نیاز به آپدیت داشته باشد، باید در پروتکل آن تغییراتی اعمال گردد.

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

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

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

در این قسمت به دو نمونه از مشکلات مهم بیت کوین می‌پردازیم که زمینه‌ساز طرحی به نام سگویت Segwit شد.

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

ایده سگویت Segwit از کیست؟

ایده سگویت (Segwit) برای اولین‌بار توسط یکی از توسعه‌دهندگان مطرح بیت‌کوین به نام پیتر ویل (Peter Weill) در کنفرانس بیت کوین در سال ۲۰۱۵ پیشنهاد شد.

پیتر ویل یکی از توسعه‌دهندگان بیت‌ کوین و یکی از بنیان‌گذاران بلاک‌استریم (Blockstream) است. بلاک‌استریم به عنوان یک شرکت نرم‌افزاری پیشرو در زمینه امنیت دیجیتال خدمات مالی فعالیت می‌کند.

ویل، سگویت (Segwit) را جهت رفع باگ‌های پروتکل بیت‌کوین پیشنهاد کرد. این ایده در قالب یک پچ (Patches) دیجیتالی در کنفرانس بیت کوین در سال ۲۰۱۵ مطرح گشت. در توسعه نرم‌افزار، به برطرف‌کردن باگ‌ها به اصطلاح پچ (Patches) گفته می‌شود.

مشکلی که پیتر ویل قصد برطرف کردن آن را داشت «چکش خواری تراکنش» نام داشت. چکش‌خواری فرایندی زیرکانه و حرفه‌ای است که با کمی تغییرات جزئی در اطلاعات تراکنش بیت‌کوین می‌توان از کاربران بیت‌کوین سرقت کرد.

دلیل طرح ایده آپدیت سگویت Segwit

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

این کار موجب می‌شود تا شناسه تراکنش سیامک فارغ از این که خود تراکنش تغییر کند، دچار اصلاح شود. به گونه‌ای که شناسه تراکنش هنوز همان یک بیت کوین به نظر برسد.

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

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

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

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

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

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

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

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

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

مقیاس پذیری بیت کوین توسط آپدیت سگویت Segwit

سگویت (Segwit)، شبکه بیت کوین را به طرز شگفت‌انگیزی تحت تاثیر قرار داد. در واقع این آپدیت به طور تصادفی مقیاس‌پذیری شبکه بیت کوین را ارتقا بخشید.

داده‌های امضا در هر بلاک حدود ۶۵ درصد از فضای داخلی به اشغال خود درمی‌آوردند. به طوری که با حذف آن توسط آپدیت سگویت (Segwit)، بلاک‌های بیت کوین فضای بیشتری جهت ذخیره اطلاعات تراکنش بدست آوردند.

در حال حاضر در زمان نگارش این مطلب، هر بلاک بیت‌کوین دارای حجمی معادل با ۴ مگابایت است که ۱ مگابایت از آن به اطلاعات ذخیره شده تراکنش روی بلاک‌چین اصلی و ۳ مگابایت آن به داده امضای ذخیره شده بر روی بلاک چین جانبی اختصاص داده شده است. به‌طور کلی، سگویت (Segwit) به شبکه این اجازه را می‌دهد تا تراکنش‌های بیشتری بدون نیاز به تغییر حجم کلی بلاک چین بیت کوین پردازش شود.

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

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

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

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

ثبت دیدگاه

کد امنیتی

0دیدگاه

دیدگاهی ثبت نشده است.

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