PSBT تنسيق معياري لنقل معاملة Bitcoin قيد الإعداد بين المحافظ والأجهزة التي تفحصها وتوقّعها. والاسم اختصار لـ Partially Signed Bitcoin Transaction، أي معاملة Bitcoin موقعة جزئيًا، لكن الملف قد لا يحتوي أي توقيع بعد. وهو ينقل المسودة والبيانات المساندة والتوقيعات، لا المفاتيح الخاصة. وحين تكتمل المواد المطلوبة يمكن استخراج معاملة عادية لإرسالها إلى الشبكة. التوقيع الرقمي موافقة يمكن التحقق منها، تُنشأ باستخدام مفتاح خاص، أي بيانات سرية تتيح لحاملها التوقيع. ولا يُكشف المفتاح نفسه في هذه العملية.
تريد آنا إرسال 60 000 sat إلى بافل، أي ستين ألفًا من أصغر وحدات البيتكوين. تستخدم محفظتها مخرجًا سابقًا تلقته ولم تنفقه بعد، قيمته 100 000 sat. المخرج سجلّ يحدد المبلغ وشروط إنفاقه. في هذا المثال تقترح المحفظة 60 000 sat لبافل و39 000 sat تعود إلى آنا كباقي المبلغ، وتترك 1 000 sat للرسوم. حتى الآن، ليست هذه سوى تعليمات. يضعها التطبيق في ملف PSBT وتنقله إلى المحفظة المادية، عبر كابل أو رمز QR أو بطاقة ذاكرة بحسب الجهاز. تفحص آنا الدفعة على شاشة الجهاز وتوافق على التوقيع. ما يعود هو التوقيع، وليس المفتاح السري. لذلك لا يلزم إعداد الدفعة على الجهاز نفسه الذي يملك صلاحية توقيعها. [1] [4]
امتداد الملف .psbt لا يجعل الدفعة آمنة تلقائيًا. فقد يكون الحاسوب الذي أنشأه مخترقًا أو مضبوطًا بصورة خاطئة. تقارن آنا جهة الاستلام بالعنوان الذي حصلت عليه من بافل، وتراجع المبلغ وإجمالي الرسوم وعودة الباقي إلى محفظتها. ومع المحفظة المادية تتبع الشاشة الموثوقة للجهاز وإجراءات الشركة المصنّعة. يفحص برنامج التوقيع أيضًا البيانات المساندة وما الذي يلتزم به التوقيع. ويصف المصطلح التقني sighash أجزاء المعاملة التي يحميها التوقيع من التغيير. لا ينبغي للمبتدئ الموافقة على نمط غير مألوف من دون فهمه. إذا كان العنوان خاطئًا أو تعذر التحقق من الرسوم، فالحل مراجعة المسودة، لا تجاوز الفحص. [1]
في محفظة Multisig تتطلب توقيعين من ثلاثة، تستطيع آنا إضافة التوقيع الأول وبافل الثاني، كلٌّ على جهازه. لا يحتاجان إلى تبادل كلمات الاسترداد أو الاتصال في الوقت نفسه. يجمع المنسّق، وهو التطبيق الذي ينظم العملية، مواد الدفعة نفسها ويدمج التوقيعات. ومع ذلك يجب على كل موقّع التحقق من موافقة الدفعة لقصده؛ فالمنسّق لا يقرر نيابة عنه. يسمي BIP 174 منشئ المسودة creator، ومكمّل البيانات updater، وصاحب التوقيع signer، ومَن يدمج النسخ المتطابقة في المعاملة combiner. أما finalizer فيجمع البيانات النهائية التي تحقق شروط إنفاق المدخلات، ويستخرج extractor المعاملة العادية الموجهة للشبكة. غالبًا يؤدي برنامج واحد عدة أدوار. هذه أسماء مهام، وليست اشتراطًا لوجود ستة مشاركين. [1] [4]
قد يكشف PSBT العملات التي تنوي إنفاقها، ومن تدفع له، وقيمة الباقي، والروابط بين العناوين. وقد يحتوي أيضًا على xpub، أي بيانات عامة لاشتقاق مفاتيح عامة إضافية، ومنها عناوين عند تطبيق قواعد المحفظة، أو مسارات اشتقاق تحدد مواضع المفاتيح في بنية المحفظة. لا ترسله إلى خدمة عشوائية على الويب لمجرد قراءة محتواه. وقد يتيح PSBT الموقّع لشخص آخر إكمال المعاملة المحددة التي أذنت بها وبثها، إذا توافرت كل المواد اللازمة. حذف نسختك لا يلغي التوقيع. كذلك لا يحل الملف محل Seed Phrase (كلمات النسخة الاحتياطية لاستعادة المفاتيح) أو نسخة احتياطية كاملة لإعداد Multisig: فهو يخدم دفعة معينة، لا استرداد المحفظة عمومًا. [1] [4]
إضافة توقيع لا تعني أن الشبكة تعرف بالدفعة. بعد تجميع المعاملة النهائية، يجب أن يبثها أحد. العقدة حاسوب يشغّل برنامجًا يتحقق من معاملات Bitcoin وكتله. تفحصها العقدة وفق قواعد الشبكة وسياسة قبول المعاملات لديها، وقد يدرجها معدّن في كتلة. نقص توقيع، ومدخل سبق إنفاقه، ورسوم غير كافية، مشكلات مختلفة لا يحلها زر «إكمال» بمفرده. اختبر توليفتك الفعلية من التطبيق والجهاز ونوع المحفظة قبل الاعتماد على العملية. في Bitcoin Core 29 يستطيع analyzepsbt إظهار البيانات أو التوقيعات الناقصة. ويمكن لـ finalizepsbt إنتاج المعاملة المكتملة؛ أما إرسالها فخطوة لاحقة. وحتى النجاح في إكمالها لا يعني تأكيدها داخل كتلة. [4] [5] [6]
يعرّف BIP 174 تنسيق PSBT بوصفه تنسيقًا ثنائيًا تُحفظ فيه المعلومات في أزواج مفتاح وقيمة. والمفتاح هنا معرّف حقل، وليس بالضرورة مفتاحًا خاصًا للبيتكوين. تصف خريطة عامة المعاملة كلها، وتصف خرائط المدخلات المخرجات التي ستُنفق، بينما تصف خرائط المخرجات ما سيُنشأ من مخرجات جديدة. إلى جانب المسودة، يمكن أن تحتوي على نصوص برمجية تحدد شروط الإنفاق، ومعلومات أصل المفاتيح، وتوقيعات جزئية. يمكن حفظ البيانات في ملف .psbt أو تمثيلها باستخدام Base64، وهو ترميز يحوّل البيانات الثنائية إلى نص. Base64 ليس تشفيرًا. وPSBT ليس نوعًا جديدًا من المعاملات في قواعد Bitcoin: تتلقى الشبكة المعاملة الناتجة، لا ملف العمل كله. [1]
يحتاج الجهاز البعيد عن الشبكة إلى معرفة ما يُطلب منه توقيعه. UTXO هو مخرج سابق لم يُنفق بعد، ويشير إليه مدخل جديد. يستطيع Non-Witness UTXO حمل المعاملة السابقة كاملة، بينما يحمل Witness UTXO المخرج المعين بقيمته وشروطه. وتعتمد الأدلة المطلوبة على نوع المدخل وقواعد برنامج التوقيع. تشمل الفحوص معرّف المعاملة السابقة والمخرج المطابق، والعلاقات بين النصوص البرمجية، وقبول نمط sighash. لا يجوز اعتبار غياب المبلغ رسومًا صفرية، ولا اعتبار نقص الأدلة تحققًا ناجحًا. أكمل البيانات عبر إجراء موثوق بدل تخمينها. [1]
يصف إصدار PSBT بنية التنسيق، لا عدد التوقيعات ولا إصدار معاملة Bitcoin نفسها. يحفظ PSBT v0 المعاملة غير الموقعة في حقل عام؛ وإذا غاب رقم إصدار PSBT فالمقصود v0. أما PSBT v2 المحدد في BIP 370 فيستبعد ذلك الحقل، ويفصل المعلومات اللازمة لبناء المعاملة في حقول مستقلة. يدعم ذلك إضافة مدخلات ومخرجات ضمن التعديلات المسموح بها والقيود التي تفرضها التوقيعات القائمة. ولا يعني إمكان إعادة كتابة دفعة موقعة بحرية. يجب أن يفهم الطرفان الإصدار المستخدم؛ لذا فإن عبارة «يدعم PSBT» لا تصف التوافق بدقة كافية. [2]
يضيف BIP 371 المعلومات اللازمة لـ Taproot، بما فيها التوقيعات والنصوص البرمجية وأصول المفاتيح. وتعمل هذه الحقول مع كلٍّ من PSBT v0 وPSBT v2. لذلك قد تتعامل محفظة مع Taproot بالتنسيق الأول من دون دعم الثاني. وبالمثل، لا يعني دعم v2 وحده أن الجهاز يعالج كل سيناريوهات Taproot. التوقيع عبر مسار المفتاح والإنفاق عبر فرع من النص البرمجي طريقتان مختلفتان لتحقيق شروط مخرج Taproot. وبالنسبة إلى المستخدم، يقود ذلك إلى سؤال مباشر: هل تستطيع توليفتي الفعلية معالجة الدفعة التي أريد توقيعها؟ تجيب الوثائق والإجراءات المجربة، لا اختصار في قائمة المزايا. [3]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Multisig, Hardware Wallet, Cold Storage, Output Descriptor. تشير إلى هذا المدخل أيضًا Multisig, Cold Storage, Hardware Wallet, Watch-only Wallet.