یکی از سوالات متداول علاقمندان به دنیای بلاکچین، نحوه بروزرسانیها و اصلاحات باگهای بیت کوین است. در بازار ارزهای دیجیتال، هزاران رمزارز مختلف با ایدههای گوناگون وجود دارد که هر کدام از قواعد مخصوص به خود تبعیت میکنند. به طوری که نحوه عملکرد هر یک بهطور کامل با دیگری متفاوت است. این مجموعه قواعد را پروتکل مینامند. اما این توضیحات چه ارتباطی به سگویت (Segwit) میتواند داشته باشند؟ اصلا سگویت چیست و چه مشکلی را در بلاکچین بیتکوین حل میکند؟
اینها سوالاتی هستند که در این مطلب قصد رمزگشایی از آنها را داریم. بنابراین، برای کسب اطلاع بیشتر در خصوص بروزرسانیهای بیتکوین و نکات مربوط به سگویت (Segwit) ما را تا انتهای مطلب همراهی کنید.
سگویت چیست؟
ارزهای دیجیتال مانند اغلب نرمافزارهای کامپیوتری نیازی مبرم به آپدیت و ارتقا دارند. به این معنی که باگها و نواقصی که در هر نسخه ظاهر میشوند، باید در بروزرسانیهای مختلف برطرف گردند. به همین منظور است که بسیاری از کاربران هنگام خاموش کردن سیستم یا لپتاپ، نرمافزارهای کامپیوتری خود را با پیغام «خاموش به همراه آپدیت» مشاهده میکنند.
این مسئله در دنیای بلاکچین و ارزهای دیجیتال نیز صدق میکند؛ به گونهای که هرگاه یک ارز دیجیتال نیاز به آپدیت داشته باشد، باید در پروتکل آن تغییراتی اعمال گردد. اکنون میتوانیم به سوال سگویت چیست؟ پاسخی روشن دهیم:
سگویت (Segwit) به عنوان آپدیتی مهم در سال ۲۰۱۷ میلادی توسط توسعهدهندگان ارشد بیت کوین در پروتکل آن ارائه شد.
ایده سگویت از کیست؟
ایده سگویت (Segwit) برای اولینبار توسط یکی از توسعهدهندگان مطرح بیتکوین به نام پیتر ویل (Peter Weill) در کنفرانس بیت کوین در سال ۲۰۱۵ پیشنهاد شد.
پیتر ویل یکی از توسعهدهندگان بیت کوین و یکی از بنیانگذاران بلاکاستریم (Blockstream) است. بلاکاستریم به عنوان یک شرکت نرمافزاری پیشرو در زمینه امنیت دیجیتال خدمات مالی فعالیت میکند.
ویل، سگویت (Segwit) را جهت رفع باگهای پروتکل بیتکوین پیشنهاد کرد. این ایده در قالب یک پچ (Patches) دیجیتالی در کنفرانس بیت کوین در سال ۲۰۱۵ مطرح گشت. در توسعه نرمافزار، به برطرفکردن باگها به اصطلاح پچ (Patches) گفته میشود.
مشکلی که پیتر ویل قصد برطرف کردن آن را داشت «چکش خواری تراکنش» نام داشت. چکشخواری فرایندی زیرکانه و حرفهای است که با کمی تغییرات جزئی در اطلاعات تراکنش بیتکوین میتوان از کاربران بیتکوین سرقت کرد.
چکش خواری بیت کوین چیست؟
چکش خواری بیت کوین چیست؟
قبل از این که در خصوص چکش خواری تراکنش بحث کنیم، ابتدا توجه شما را به مثال زیر جلب میکنیم:
سیامک قصد دارد تعداد ۱ بیت کوین به کارن ارسال کند. برای تحقق این امر، مراحل زیر باید به ترتیب طی شوند:
مرحله اول:
اقدام برای ارسال وجه: سیامک وارد کیف پول خود شده و روی ارز دیجیتال بیت کوین خود کلیک میکند. گزینه ارسال (Send) را فشار داده و آدرس بیت کوین کیف پول کارن را در قسمت آدرس دریافت وجه (Recipient Address) وارد میکند. در قسمت تعداد بیت کوین (Amount BTC) نیز مقدار بیت کوین مورد نیاز خود را وارد کرده و دکمه ادامه (Continue) فشار میدهد. با این کار یک درخواست به شبکه بلاکچین، جایی که ماینرها قرار دارند، ارسال میگردد.
بهطور خلاصه، درخواست شامل آدرس عمومی کارن، تعداد ۱ واحد بیتکوین برای ارسال و هزینه کارمزد برای ماینرها میشود. از طرفی، این درخواست شامل امضای کلید خصوصی سیامک نیز میشود که توسط آن ثابت میکند که موجودی او برای ارسال تعداد یک بیت کوین کافی است. این امضا داده امضای تراکنش نام دارد.
مرحله دوم:
ایجاد شناسه تراکنس: ماینرها تراکنش را پردازش و اطلاعات سیامک و کارن را به شکل رمزگذاریشده در کنار هم قرار میدهند. یعنی اطلاعات را تبدیل به کدهای کامپیوتری تحت عنوان «شناسه تراکنش» در یک بلاک جداگانه میکنند.
مرحله سوم:
ایجاد صفهای تراکنش جهت پردازش تراکنش: در این هنگام درخواست ارسال وجه سیامک به کارن توسط ماینرهای شبکه جهت تایید مورد پردازش قرار میگیرد و برای تحقق این امر مستلزم دریافت تایید از سوی ۵۱ درصد از ماینرها میباشد.
زمان تایید تراکنش از سوی ماینرها بستگی به رقم کارمزد تعیین شده از سوی سیامک دارد. هر چقدر رقم کارمزد پایینتر باشد، ماینرها تمایلی از خود برای پردازش آن از خود نشان نمیدهند. به همین سبب، ممکن است فرایند پردازش و تایید تراکنش از سوی ماینرها ساعتها یا حتی چند روز طول بکشد.
اینجاست که تمامی توسعهدهندگان بیتکوین تا پیش از آپدیت سگویت به کاربران توصیه میکردند از کارمزدهای بالا برای تسریع در تایید تراکنش استفاده کنند.
مرحله چهارم:
بلاک تایید میشود: پس از تایید شناسه تراکنس توسط بیش از نیمی از ماینرها، بلاک یا همان شناسه تراکنش در بلاکچین ثبت و برای همیشه در حافظه آن بایگانی میشود. اکنون کارن یک بیتکوین دریافت میکند.
به این طریق تراکنشهای بیت کوین انجام میشوند. اکنون وقت آن رسیده تا مشکل چکش خواری را برای شما بیان کنیم و بگوییم که چگونه کارن میتواند از باگ چکش خواری به نفع خود استفاده کند تا سیامک را فریب دهد تا به جای ارسال یک بیت کوین، دو بیت کوین ارسال کند.
دلیل طرح ایده آپدیت سگویت
دلیل طرح ایده آپدیت سگویت
یادتان هست که گفتیم اگر مقدار کارمزد تعیین شده از سوی ارسالکننده پایین باشد، ماینرها تمایلی از خود برای تایید تراکنش نشان نمیدهند؟
باگهایی که در کد بیت کوین وجود دارند این امکان را به کارن میدهند تا جزئیات یا بهتر است بگوییم دادههای تراکنش سیامک را پیش از آن که در شبکه تایید شوند، تغییر دهد. یعنی کارن به لطف دیر تایید شدن تراکنش توسط ماینرها این فرصت را دارد تا کدهای تراکنش را تغییر دهد.
این کار موجب میشود تا شناسه تراکنش سیامک فارغ از این که خود تراکنش تغییر کند، دچار اصلاح شود. به گونهای که شناسه تراکنش هنوز همان یک بیت کوین به نظر برسد.
هنگامی که این تراکنشِ اصلاح شده به تایید ماینرهای شبکه برسد، تراکنش اصلی را لغو و کارن به دروغ مدعی میشود که هنوز مبلغی به کیف پول او واریز نشده است. او این ادعا را به استناد شناسه تراکنش تقلبی، که خود آن را با تغییرات اصلاح کرده، به سیامک ثابت میکند و او را وادار میسازد تا مجدد مبلغ را ارسال کند.
سیامک شبکه را بررسی و میبیند که حق با کارن است و تراکنش اصلی ناموفق بوده است. اکنون سیامک تصمیم میگیرد مبلغ را دوباره به آدرس کیف پول کارن ارسال کند، اما اینبار ترجیح میدهد از هزینه کارمزد بیشتری استفاده کند تا تراکنش زودتر تایید شود.
تراکنش دوباره فرایند تایید خود را در شبکه طی میکند و این بار به لطف کارمزد بالا خیلی زود تایید و به دست کارن میرسد؛ با این تفاوت که کارن اکنون به جای یک بیتکوین، دو بیتکوین دارد.
متاسفانه سیامک، ماینرها و سایر اعضای شبکه متوجه این موضوع نشدند. به محض این که تراکنشها تایید و در بلاکچین ثبت شوند امکان تغییر یا حذف آنها دیگر وجود نخواهد داشت.
آپدیت سگویت و برطرف کردن مشکل چکش خواری بیت کوین
سگویت (Segwit) مشکل چکشخواری تراکنش بیتکوین را تا حدی برطرف کرد و برخی از دادههای پروتکل را ارتقا بخشید. اما با این حال این بهروزرسانی نتوانست نظر توسعهدهندگان را به خود جلب کند و با گذشت چهار سال از اعمال آن هنوز هم منتقدان زیادی دارد.
عملکرد سگویت بسیار ساده است. همانطور که گفتیم، دادههای امضا میتوانند شناسه تراکنش را تغییر دهند. پیتر ویل برای جلوگیری از این باگ پیشنهاد حذف دادههای امضا را از تراکنش ارائه کرد.
حال میتوانیم مفهوم سگویت (Segwit) را درک کنیم. سگویت (Segwit) کوتاه شده عبارت (Segregated Witness) است. درواقع واژه (Segregate) به معنی حذف یا جداسازی و واژه (Witness) به معنی امضا که معنی کامل آن (حذف دادههای امضا) میشود.
حذف دادههای امضا با ایجاد یک زنجیره جانبی، امکان ذخیره دادههای آنها را خارج از بلاکچین اصلی به ماینرها میدهد. این کار موجب میشود تا شناسههای تراکنش توسط کاربران متقلب تغییر پیدا نکنند.
ویژگیهای آپدیت سگویت
ویژگی هوشمندانهای که سگویت (Segwit) دارد این است که قادر است با تمامی اطلاعات گذشته شبکه همگامسازی شود. یعنی نودهایی که با پروتکل سگویت بروزرسانی میشوند، هنوز میتوانند با نودهایی که بهروزرسانی نگشتهاند، کار کنند. به این شیوه از بهروزرسانی در شبکه بلاکچین انشعاب نرم (Soft Fork) گفته میشود.
اما، آپدیتهایی که با اطلاعات گذشته همگام نمیشوند انشعاب سخت (Hard Fork) نام دارند. آپدیتهایی که به شیوه انشعاب سخت صورت میپذیرند، میتوانند بلاکچینها را برای تولید ارزهای دیجیتال جدید از یکدیگر جدا کنند. به همین سبب، پیتر ویل تلاش میکرد آپدیت سگویت (Segwit) را طوری طراحی کند که با اطلاعات گذشته سازگار باشد. او برای تحقق این امر نیاز داشت تا سگویت (Segwit) را به شکلی طراحی کند که دادههای امضا بعد از اعمال بهروزرسانی، در بلاکچین اصلی باقی بمانند.
راه حل او برای این کار ذخیره تمامی دادههای امضا روی بلاکچین جانبی سگویت (Segwit) به صورت رمزگذاریشده بود؛ بهطوری که پس از انجام این کار، یک نسخه کپی شده از آن در بلاک چین اصلی ذخیره شود.
مقیاس پذیری بیت کوین توسط آپدیت سگویت
سگویت (Segwit)، شبکه بیت کوین را به طرز شگفتانگیزی تحت تاثیر قرار داد. در واقع این آپدیت به طور تصادفی مقیاسپذیری شبکه بیت کوین را ارتقا بخشید.
دادههای امضا در هر بلاک حدود ۶۵ درصد از فضای داخلی به اشغال خود درمیآوردند. به طوری که با حذف آن توسط آپدیت سگویت (Segwit)، بلاکهای بیت کوین فضای بیشتری جهت ذخیره اطلاعات تراکنش بدست آوردند.
در حال حاضر در زمان نگارش این مطلب، هر بلاک بیتکوین دارای حجمی معادل با ۴ مگابایت است که ۱ مگابایت از آن به اطلاعات ذخیره شده تراکنش روی بلاکچین اصلی و ۳ مگابایت آن به داده امضای ذخیره شده بر روی بلاک چین جانبی اختصاص داده شده است. بهطور کلی، سگویت (Segwit) به شبکه این اجازه را میدهد تا تراکنشهای بیشتری بدون نیاز به تغییر حجم کلی بلاک چین بیت کوین پردازش شود.
افزایش خرید بیت کوین پس از به روزرسانی سگویت
بعد از آن که سگویت (Segwit) روی شبکه بیت کوین اعمال شد، نرخ خرید و فروش حرفه ای ارز دیجیتال در صرافیهای مختلف توسط معاملهگران بیشتر شد. چراکه آنها دیگر خیالشان از بابت مشکل چکش خواری بیت کوین راحت بود و دیگر دغدغهای از بابت از دست رفتن سرمایههایشان توسط هکرها نداشتند.
سوالات متداول
آیا بروزرسانی های بیت کوین موجب افزایش قیمت آن می شود؟
بله، با هر بروزرسانی شبکه بیت کوین، هجوم معاملهگران برای خرید بیت کوین بیشتر میشود.
آیا سگویت توانسته مشکل چکش خواری بیت کوین را به طور کامل حل کند؟
بله، با حذف دادههای امضا با ایجاد یک زنجیره جانبی، امکان ذخیره دادههای آنها در خارج از بلاکچین اصلی به ماینرها داده شده و مشکل چکش خواری برطرف گردیده است.