PSBT v2 هو صيغة BIP 370 لتبادل معاملة Bitcoin غير مكتملة والمعلومات اللازمة لتوقيعها. يشير الرقم إلى إصدار حاوية PSBT، وليس تلقائياً إلى إصدار المعاملة أو طريقة جديدة للتحقق في الشبكة.
يحتوي PSBT v0 وفق BIP 174 على معاملة عامة غير موقّعة. ينقل BIP 370 بيانات بنائها إلى حقول مستقلة. وبذلك يستطيع المشاركون إضافة مدخلات ومخرجات بعد إنشاء الحاوية وفق القواعد. لا يبيح ذلك تعديل الأجزاء الموقّعة اعتباطياً، ولا يجعل الملف نفسه دفعة مالية. [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format]
يجب أن تكون قيمة PSBT_GLOBAL_VERSION هي 2، وأن يغيب PSBT_GLOBAL_UNSIGNED_TX. يحدد الحقل الإلزامي PSBT_GLOBAL_TX_VERSION إصدار المعاملة بصورة مستقلة؛ وتتضمن الخريطة العامة أيضاً عددي المدخلات والمخرجات. تغيير رقم الإصدار وحده في ملف قديم لا ينتج PSBT v2 صالحاً. [BIP 370 — PSBT Version 2]
يجب أن يحدد المدخل TXID السابق وفهرس المخرج الذي يُنفق. ويجب أن يحتوي المخرج على المبلغ بوحدة satoshi وscriptPubKey؛ وعند الإضافة يُحدّث العدد العام المقابل أيضاً. غياب sequence للمدخل يعني 0xffffffff. لا تحل بيانات البناء هذه محل التحقق من معلومات UTXO أو المواد الأخرى التي يحتاجها جهاز التوقيع. [BIP 370 — PSBT Version 2]
في PSBT_GLOBAL_TX_MODIFIABLE يسمح البت 0 بتعديل المدخلات والبت 1 بتعديل المخرجات. ينبه البت 2 إلى وجود توقيع SIGHASH_SINGLE: يجب الحفاظ على اقتران مدخله بمخرجه عند الفهرس المقابل. وعلى المنشئ فحص التواقيع الفعلية؛ فتفعيل العلم وحده لا يجعل تعديلاً غير صالح آمناً. [BIP 370 — PSBT Version 2]
لتحديد nLockTime يُختار نوع متطلب متوافق مع جميع المدخلات ثم أعلى قيمة له. إذا أمكن النوعان تكون الأولوية لارتفاع الكتلة؛ ولا يُضاف مدخل غير متوافق. عند غياب متطلبات المدخلات تُستخدم القيمة العامة الاحتياطية أو الصفر. لا يجوز لمدخل جديد تغيير nLockTime إذا كانت هناك تواقيع بالفعل. [BIP 370 — PSBT Version 2]
يحدّث الموقّع الأعلام وفق SIGHASH. من دون SIGHASH_ANYONECANPAY يمنع تعديل المدخلات؛ ومن دون SIGHASH_NONE يمنع تعديل المخرجات، ومع SIGHASH_SINGLE يعلّم الاقتران المطلوب. بعد الإنهاء يركّب المستخرج معاملة الشبكة من الحقول. البث وقبول الشبكة خطوتان لاحقتان، وليسا صفتين للحاوية المنقولة. [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]
لا يمكن تبديل PSBT v0 وv2 مباشرة. يستلزم التحويل إلى v0 بناء المعاملة غير الموقّعة والالتزام بقواعد حقول ذلك الإصدار. يعرّف BIP 371 معلومات Taproot بصورة منفصلة لكلا الإصدارين. لذلك لا يثبت دعم PSBT أو Taproot وحده أن المحفظة تستطيع استيراد PSBT v2 وتوقيعه وتصديره. [BIP 370 — PSBT Version 2] [BIP 371 — Taproot Fields for PSBT]
قارن على جهاز موثوق المستلمين والمبالغ ومخرج الباقي الخاص بك والرسوم مع قصدك الأصلي. تحقق من معلومات UTXO والبرامج النصية وSIGHASH المستخدم؛ فبيانات اشتقاق المفاتيح وحدها لا تثبت ملكية المخرج. تجربة المسار عبر المنسق والجهاز المحددين تختبر التوافق، لا سلامة كل المعاملات المستقبلية. [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]
للحصول على صورة أوضح، اقرأ هذا المدخل مع PSBT, Hardware Wallet, Multisig, Taproot.