19 / 736BIP141

SegWit

Segregated Witness؛ فصل بيانات التحقق من الإنفاق

تعديل سهّل بناء معاملات تعتمد على معاملات أخرى، وخفّض السعة المحتسبة لبيانات التوقيع داخل الكتلة.

غيّر SegWit قواعد Bitcoin بفصل بيانات إثبات الحق في الإنفاق، مثل التوقيعات، عن الجزء المستخدم لحساب المعرّف الأساسي للمعاملة. وغيّر أيضًا طريقة قياس سعة الكتل. بالنسبة للمستخدم، قد يعني ذلك مدفوعات تستغل المساحة بكفاءة أكبر؛ وبالنسبة للمطوّر، طريقة أكثر موثوقية لربط معاملة بأخرى.

عند الإرسال، تحدد المحفظة الأموال التي تنفقها مما استُقبل سابقًا، والمبالغ الجديدة التي تذهب إلى المستلم وإليك كباقٍ عند الحاجة. وعليها كذلك إثبات حقها في إنفاق تلك الأموال. هذه وظيفة التوقيعات وبيانات التحقق الأخرى. وضعها SegWit في جزء يسمى witness. المقصود بهذا المصطلح هنا دليل استيفاء شروط الإنفاق، وليس شخصًا يشهد على الدفع. لم تُحذف البيانات ولم تُنقل إلى خارج Bitcoin: فالعُقد التي تطبّق قواعد SegWit ما زالت تتحقق منها. [1]

تتابع المحفظة الدفع باستخدام المعرّف txid. وتستخدمه معاملة لاحقة أيضًا للإشارة إلى الأموال التي تريد إنفاقها. في السابق، كان تغيير بعض بيانات التوقيع قد يغيّر txid دون تغيير المستلمين أو المبالغ. وكان ذلك يعقّد بناء سلسلة من المدفوعات التي لم تتأكد بعد. يحسب SegWit قيمة txid دون witness، لذا لا يؤدي تغيير witness وحده إلى تغييرها. ولحماية المعاملة كلها من هذه المشكلة، يجب أن تستخدم جميع مدخلاتها SegWit. أما تغيير المستلم أو المدخلات فقد يغيّر txid أيضًا. ساعد ثبات هذه المراجع كذلك Lightning Network، وهي شبكة للدفع عبر قنوات دفع. وهناك معرّف ثانٍ، هو wtxid، يشمل witness. [1] [4]

أدخل SegWit مقياس الوزن بدل احتساب كل البايتات بالتساوي. يكلف بايت البيانات الأساسية 4 وحدات وزن، ويكلف بايت witness الإضافي وحدة واحدة. وحد الكتلة كاملة هو 4,000,000 وحدة. مثلًا، معاملة تضم 100 بايت أساسي و100 بايت witness إضافي تزن 500 وحدة، وحجمها الافتراضي 125 vB. يُستخدم هذا الحجم لحساب الرسم عند اختيار معدل بوحدة sat/vB. لذلك يعتمد التوفير على تركيب المعاملة، بينما يظل الطلب على مساحة الكتل مؤثرًا في المعدل. ولا يعني حد الوزن أن جميع الكتل لها الحجم نفسه بالميغابايت أو أن كل دفعة SegWit ستكون أرخص. [1]

في شبكة Bitcoin الرئيسية، تبدأ عناوين SegWit الأصلية من الإصدار 0 بـ bc1q. ويميز P2WPKH وP2WSH نوعين من شروط الإنفاق: دفعة عادية يتحكم فيها مفتاح، ودفعة تعتمد على سكربت، أي مجموعة من القواعد. ويمكن أيضًا تغليف SegWit داخل صيغة P2SH الأقدم بعنوان يبدأ بالرقم 3؛ لكن الرقم 3 وحده لا يثبت استخدام SegWit. يستخدم Taproot الإصدار 1 من witness وعناوين bc1p. إذن لا تشير البادئة bc1 إلى نوع واحد من المدفوعات. للاستخدام اليومي، تحقق من دعم المحفظة المرسلة للصيغة ومن عنوان المستلم كاملًا؛ لا تَعِد أي من هذه البادئات وحدها بإخفاء الهوية. [1] [2] [3]

صُمم التغيير بوصفه Soft Fork: تشديدًا للقواعد متوافقًا مع القواعد الأقدم. لكن العقدة القديمة لا تتحقق بنفسها بالكامل من شروط SegWit الجديدة. ويرتبط witness بالكتلة تشفيريًا عبر سجل يسمى witness commitment في coinbase، أول معاملة في الكتلة. لذلك ليست التوقيعات مرفقًا اختياريًا يمكن تجاهله عند التحقق الكامل. ويعبّر BIP 141 عن الوزن أيضًا بأنه ثلاثة أمثال الحجم الأساسي مضافًا إليها الحجم الإجمالي؛ أما الحجم الافتراضي فهو الوزن مقسومًا على أربعة مع التقريب لأعلى. هاتان طريقتان لوصف نظام الاحتساب نفسه، وليستا حدّين مختلفين. [1]

للحصول على صورة أوضح، اقرأ هذا المدخل مع معاملة, Transaction Fees, Lightning Network, Taproot. تشير إلى هذا المدخل أيضًا معاملة, Transaction Fees, Taproot, Lightning Network.

DOC · 001BIP 141: Segregated Witnessمصدر أولي DOC · 002BIP 341: witness version 1مصدر أولي DOC · 003BIP 350: Bech32m for witness version 1 and laterمصدر أولي DOC · 004Bitcoin Core: Segregated Witness benefitsمصدر أولي
تمت المراجعة: المصادر أولًا · ليست نصيحة استثمارية