Segwit چیست؟

Segwit چیست؟

Segwit چیست؟

اگر به رمز ارز ها علاقه مند هستید ،به هیچ وجه پیش از این به دنبال  “Segregated Witness” یا Segwit نبوده اید. برخی تصور می کنند که این امر انقلابی در بیت کوین ایجاد می کند. در حالی که برخی از آن چنان ناامید شده اند که ترجیح می دهند راه خود را با شکل کاملاً جدیدی از بیت کوین به نام Bitcoin Cash دنبال کنند!

برای درک این موضوع  ابتدا باید برخی مفاهیم اصلی را به اتفاق مطالعه کنیم.

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

فرض کنید آلیس می خواهد تعداد مشخصی بیت کوین برای باب ارسال کند. سیستم معاملات در بیت کوین چگونه کار می کند؟ معاملات بیت کوین بسیار متفاوت از معاملات کیف پول فیات است. اگر آلیس می خواست ۲ دلار به باب بدهد به صورت فیزیکی ۲ دلار از کیف پولش برداشته و به باب می داد. اما در بیت کوین این ان نقل و انتقال بسیار متفاوت است . شما به صورت فیزیکی هیچ بیت کوین ندارید آنچه شما دارید اثبات داشتن بیت کوین است.

دو موضوع دیگر وجود دارد که باید بدانید:

  • ماینرها معاملات شما را با قرار دادن داده ها در داخل ماین هایی که مسدود کرده اند ، اعتباردهی می کنند که در ازای دادن این سرویس ،آنها هزینه معامله را می گیرند.
  • وقتی صحبت از ارز FIAT می شود ،شما واقعاً پیگیری نمی کنید که چگونه و از کجا آن یادداشت خاص را تهیه کرده اید. به عنوان مثال. همین حالا کیف پول خود را باز کنید و تمام اسکناس های موجود در آن را بیرون بیاورید. آیا می توانید بگوببد دقیقاً هر اسکناس و سکه را از کجا تهیه کنید؟ این احتمال وجود دارد که شما این کار را نکنید. با این حال در بیت کوین ، تاریخچه تک تک معاملات بیت کوین مورد توجه قرار می گیرد.

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

SegWit یک نسخه بزرگ برای بیت کوین بود. این کد در سال ۲۰۱۵ منتشر شد و سرانجام Segwit در آگوست ۲۰۱۷ از طریق بیت کوین فعال گردید

ورودی معامله

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

بنابراین ،فرض کنید آلیس نیاز به بیت کوین از معاملات زیر را دارد که ما آنها را (TX (0) ، TX (1 و (TX (2 می نامیم. این سه معامله با هم جمع می شوند و این تراکنش ورودی را به شما می دهد که ما آن را TX (ورودی) می نامیم.

که ورودی از لحاظ نمودار به این شکل خواهد بود :

 این ورودی یک معامله است.  بیایید بررسی کنیم که خروجی معامله چگونه خواهد بود.

خروجی معامله

این خروجی اساساً دارای بیت کوین خواهد بود که باب دارای معامله پس از انجام معاملات و هرگونه تغییر باقیمانده است که پس از آن به آلیس ارسال می شود. این تغییر سپس به مقدار ورودی وی برای کلیه معاملات بعدی تبدیل می شود.

نمودار خروجی معامله به این شکل است:

اکنون ، این یک تراکنش بسیار ساده است که فقط یک خروجی دارد (به غیر از CHANGE) تراکنش هایی وجود دارد که با چندین خروجی امکان پذیر است.

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

شرایط معامله

  • TX (ورودی)> TX (خروجی). تراکنش ورودی باید همیشه بیشتر از تراکنش خروجی باشد. در هر معامله کسری بین ورودی و خروجی (خروجی + تغییر) هزینه معامله ای است که ماینرها دریافت می کنند. بنابراین:                                                                         هزینه های معامله = TX (ورودی) – TX (خروجی) + change
  • در قسمت ورودی: TX (0) + TX (1) + TX (2) = TX (ورودی). اگر آلیس بودجه لازم برای انجام معاملات را نداشته باشد .استخراج کنندگان به سادگی معاملات را رد می کنند.
  • باب باید نشان دهد که می تواند اثبات مورد نیاز برای دریافت بیت کوین را ارائه دهد. آلیس معاملات را با آدرس عمومی باب قفل خواهد کرد. وی برای باز کردن قفل معاملات و دسترسی به هزینه های خود نیاز به تولید کلید خصوصی (private key) خود دارد.
  • آلیس همچنین باید بررسی کند که در وهله اول از حقوق لازم برای ارسال بیت کوین برخوردار است. روشی که وی انجام می دهد این است که با امضای دیجیتالی خود معامله را امضا می کند (یا همان private key). هر کسی می تواند با استفاده از کلید عمومی خود رمزگشایی کند و تأیید کند که این آلیس بود که داده ها را ارسال کرده است. این مدرک “داده های امضا” نامیده می شود. این را بخاطر بسپارید زیرا بعداً این بسیار مهم خواهد شد.

بنابراین نام این معامله چه خواهد بود؟

ورودی (شامل داده های امضا) و داده های خروجی با استفاده از الگوریتم هش SHA 256 با هم جمع می شوند و هش می شوند. هش خروجی نامی است که به این تراکنش داده می شود.

کد جزئیات معامله

این شکل معامله در فرم کد است. فرض کنید آلیس می خواهد ۰.۰۰۱۵ BTC برای باب ارسال کند و برای این کار ورودی هایی را ارسال می کند که ارزش ۰.۰۰۱۵۷۷۰ BTC دارند. جزئیات معامله به این شکل است:

اولین چیزی که میبینید :

آیا نام معامله با نام مستعار هش مقدار ورودی و خروجی است.

Vin_sz تعداد داده های ورودی است زیرا آلیس داده ها را فقط با استفاده از یکی از معاملات قبلی خود ارسال می کند  یعنی ۱.

Vout_sz 2 است زیرا تنها خروجی ها Bob و تغییر هستند.

این داده های ورودی است:

قسمت اول داده ها حاکی از آن است که باب در حال دریافت ۰.۰۰۱۵ BTC است.

قسمت دوم نشان می دهد که ۰.۰۰۰۰۵۱۲۰ BTC همان چیزی است که آلیس به عنوان تغییر در آن برمی گردد.

حالا یادتون میاد که داده های ورودی ۰.۰۰۱۵۷۷۰ BTC  چقدر بود؟ این بزرگتر از (۰.۰۰۱۵ + ۰.۰۰۰۰۵۱۲۰) است. کسری این دو مقدار هزینه معامله ای است که معدن کاران در حال جمع آوری آن هستند.

بنابراین ، آناتومی یک معامله ساده است.

قبل از اینکه ادامه دهیم ،بیایید درباره نوع خاصی از معاملات به نام معامله Coinbase بحث کنیم. در واقع اولین داده معامله است که در بلاک است و نشان دهنده پاداش استخراج است که ماینرها با استخراج بلوک دریافت می کنند. در حال حاضر ، پاداش ۱۲.۵ BTC است. این تراکنش ها داده ورودی ندارند و فقط داده های خروجی دارند. این را بخاطر بسپارید زیرا بعداً این مهم خواهد شد.

مشکل مقیاس پذیری چیست؟

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

با این حال Satoshi Nakamoto بنیانگذار (Bitcoin)  مجبور شد این حد را اضافه کند زیرا آنها حمله احتمالی DoS (حمله انکار سرویس) را که هکرها و ترول ها می توانند به بلاکچین تحمیل کنند ،پیش بینی کردند. آنها ممکن است بلوک ها را با معاملات اسپم پر کنند ، و ممکن است بلوک هایی را که ممکن است غیر ضروری باشد بزرگ می کنند تا سیستم را مسدود کنند. در نتیجه بلوک ها به اندازه ۱ مگابایت محدودیت داشتند.

این در ابتدا قابل اجرا بود ، اما هرچه محبوبیت آن بیشتر و بیشتر می شد ، تعدادی از معاملات شروع به جمع شدن کردند. این نمودار تعداد معاملات انجام شده را در هر نشان می دهد :

همانطور که مشاهده می کنید تعداد معاملات ماهانه فقط در حال افزایش است و با محدودیت اندازه بلوک ۱mb ،در حال حاضر بیت کوین فقط ۴.۴ تراکنش در ثانیه را مدیریت می کند. یکی از بزرگترین دلایلی که حجم معاملات را زیاد می کند و فضای زیادی را اشغال می کند ، اطلاعات امضایی است که در آن وجود دارد (که ما به شما گفتیم این را در ذهن داشته باشید چون در ادامه مهم خواهد بود). واقعیت این است که ۶۵٪ فضایی که معامله استفاده می کند توسط داده های امضا اشغال می شود.

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

این سیستم “جایگزینی توسط هزینه” را معرفی کرد. اصولاً این نحوه کارکرد این سیستم  آسان است. فرض کنید آلیس ۵ بیت کوین برای باب ارسال می کند اما معامله به دلیل عقب ماندگی انجام نمی شود. او نمی تواند معامله را حذف کند زیرا بیت کوین های یک بار مصرف شده هرگز نمی توانند برگردند. پس او می تواند معامله دیگری با ۵ بیت کوین با باب انجام دهد اما این بار با هزینه های معاملاتی که به اندازه کافی بالا می رود تا ماینرها را برای تایید معاملات شما تحریک کند. همانطور که معدنچیان معامله وی را در بلوک قرار می دهند ، معامله قبلی را نیز رونویسی کرده و آن را باطل می کند.

در حالی که سیستم “جایگزینی توسط هزینه” برای استخراج کنندگان سودآور است ،اما برای کاربران که انجام چنین کاری خوب نیست بسیار ناخوشایند است. در اینجا نمودار زمان انتظار وجود دارد که کاربر در صورت پرداخت حداقل هزینه های ممکن معامله مجبور به گذراندن آن خواهد بود:

 

اگر کمترین هزینه معامله ممکن را پرداخت کنید ، برای انجام معامله خود باید ۱۳ دقیقه منتظر بمانید.

یک راه حل احتمالی که برای سرعت بخشیدن به معاملات تصور می شد ، معرفی Lightning Network بود.

شبکه رعد و برق چیست؟

netwok رعد و برق یک سیستم پرداخت خرد خارج از زنجیره است که برای کارایی سریع تراکنش ها در بلاکچین طراحی شده است. این مقاله توسط جوزف پون و تاد درایجا در مقاله سفید خود طراحی شده است که هدف آن حل محدودیت اندازه بلوک و مشکلات تاخیر معامله است. این در بالای بیت کوین عمل می کند و اغلب به عنوان “لایه ۲” شناخته می شود.

همانطور که جیمی سونگ در مقاله متوسط ​​خود یادداشت می کند:

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

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

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

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

اکنون ، ممکن است از خود بپرسید که چه چیزی باعث تغییر شناسه تراکنش می شود؟ این امر ما را به یک اشکال جالب در سیستم بیت کوین با عنوان “انعطاف پذیری معامله” می رساند.

قابلیت انعطاف پذیری معامله چیست؟

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

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

به عنوان مثال. این تست را که ما با SHA-256 یا الگوریتم هش کردن مورد استفاده در بیت کوین انجام دادیم بررسی کنید:

می بینیم که؟

ما فقط “T” را از بزرگ به حروف کوچک تبدیل کرده ایم ، و ببینید چه کاری برای خروجی انجام داد!

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

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

چرا انعطاف پذیری معامله اتفاق می افتد؟

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

فرض کنید باب می خواهد آلیس ۳ BTC برای او بفرستد. آلیس یک معامله ۳ BTC را به آدرس عمومی Bob آغاز می کند و سپس آن را برای تأیید به استخراج کنندگان می فرستد. در حالی که معامله در صف انتظار است ، باب با استفاده از قابلیت انعطاف پذیری معامله امضای آلیس را تغییر می دهد و شناسه معامله را تغییر می دهد.

اکنون این احتمال وجود دارد که این معامله دستکاری شده قبل از تأیید آلیس تأیید شود که به نوبه خود معامله آلیس را رونویسی می کند. وقتی باب ۳ بیت کوین خود را بدست آورد ،می تواند به سادگی به آلیس بگوید که ۳ BTC را که بدهکارش بود دریافت نکرد. سپس آلیس خواهد دید که معامله اش انجام نشده است و آیا آنها دوباره آن را ارسال می کنند. در نتیجه باب به جای ۳ BTC با ۶ BTC درنهایت ظاهر می شود.

اشتراک گذاری این مقاله

ارسال نظر

آدرس ایمیل شما منتشر نخواهد شد.