36 / 736CHG

Change Address

عنوان لاستلام باقي الدفع

عنوان في محفظتك يستقبل الجزء غير المستخدم من الدفعة. يتيح لك إنفاق جزء من مبلغ تلقّيته والاحتفاظ بالباقي.

Change Address هو العنوان الذي تستخدمه المحفظة لإعادة الباقي عند الدفع. ينفق البيتكوين المبالغ المختارة كاملةً. وبعد خصم الدفعة والرسم، ترسل المحفظة الباقي عادةً إلى مخرج جديد تملكه. تظل الأموال لك، لكنها تُسجل في مخرج آخر وغالبًا بعنوان جديد.

تلقّت أليس سابقًا 120 000 sat، وهي أصغر وحدات البيتكوين، وتريد دفع 100 000 sat. تتكوّن أموالها في مثالنا من UTXO واحد، أي مخرج من معاملة سابقة لم يُنفق بعد. يصبح هذا المخرج مدخلًا للدفعة ويُنفَق كاملًا. مع رسم قدره 2 000 sat، يحصل المستلم على 100 000 sat وتذهب 18 000 sat المتبقية إلى مخرج جديد لمحفظة أليس. يشبه ذلك الدفع بورقة نقدية أكبر واستلام الباقي، لكن المبلغين يُوزّعان في معاملة واحدة. لا تنتظر أليس أن يعيد لها المستلم شيئًا. تختار المحفظة عادةً عنوان الباقي بنفسها. لذلك قد يعرض المستكشف عنوانَي وجهة رغم أنها دفعت لشخص واحد. وبعد التأكيد، يصبح الباقي UTXO جديدًا بمعرّف مخرج خاص به يسمى outpoint، وليس قطعة لم تُنفق من المخرج القديم. يجمع outpoint بين معرّف المعاملة txid وموضع المخرج داخل تلك المعاملة. ويمكنها استخدامه لاحقًا مثل بقية أموالها. [1]

يحدد سكربت scriptPubKey شروط إنفاق المخرج، ولا يشرح سبب إرسال المال. تحتوي الكتلة على مبالغ وسكربتات scriptPubKey، لا على تسميات للدافع أو المستلم أو الباقي. تتعرّف المحفظة على مخارج الباقي الخاصة بها من سجلات الاشتقاق، بينما يقدّر مستكشف البلوك تشين أو المحلل غرضها. لا يمكن الاعتماد على ترتيب المخارج أو على قاعدة أن المخرج الثاني هو الباقي. قد تخلو المعاملة من الباقي، أو تحتوي على مخرج واحد له، أو عدة مخارج يتحكم فيها المرسل، أو مخارج لعدة مشاركين. لذلك تعبّر تسمية change عن علاقة المخرج بالمحفظة، وليست صفة مستقلة مسجلة في البروتوكول. [1]

الاستدلال هنا تقدير مبني على قرائن غير مباشرة. تسمح Payjoin وCoinJoin لعدة مشاركين بإنشاء معاملة معًا، ولذلك قد تخطئ التقديرات البسيطة. وBIP وثيقة اقتراح تقني أو معيار. من طرق الاستدلال الشائعة اعتبار المخرج باقيًا إذا كان نوع سكربته مطابقًا للمدخلات، أو كان مبلغه غير مُقرَّب، أو استخدم عنوانًا جديدًا، أو وافقت قيمته حساب المبلغ المتبقي. قد تنجح هذه التقديرات في دفعة عادية ذات مخرجين وتربط عمليات إنفاق لاحقة، لكن لكل منها أمثلة مضادة. يتعمد BIP78 Payjoin إضعاف افتراض أن المدخلات تخص مالكًا واحدًا، وكذلك التعرف على الباقي من نوع السكربت أو المبلغ المُقرَّب. وتضيف CoinJoin والمدفوعات المجمعة والتحويلات بين عناوين الشخص نفسه مزيدًا من الالتباس. يجب أن يبيّن التقدير درجة عدم اليقين والأدلة المساندة؛ فالاستدلال وحده ليس إثباتًا من البروتوكول ولا إثباتًا للملكية القانونية. [4] [14]

PSBT حزمة تضم مسودة معاملة وبيانات إضافية يمكن أن تتبادلها المحفظة وجهاز التوقيع. وتتطلب Multisig الموافقة وفق قاعدة تشمل عدة مفاتيح. تتيح بيانات اشتقاق المفاتيح وفق BIP32 في مخارج PSBT لجهاز التوقيع المادي أو غير المتصل التحقق من الباقي المقترح. يجب أن يشتق الجهاز المخرج المعني بنفسه ويتحقق من توافقه مع قواعد المحفظة نفسها. يشرح BIP174 التحقق في حالة المفتاح الواحد وكذلك Multisig؛ وعند تعدد التواقيع لا يكفي أن يحتوي المخرج على مفتاح محلي واحد. قد يستبدل منسق خبيث يجمع المعاملة مخرج الباقي بمخرج يملكه، أو يخفي المتبقي في رسوم مبالغ فيها. لذا تحقق قبل التوقيع من مخارج المستلمين وإجمالي الرسوم وكل مخرج يُدّعى أنه للباقي على شاشة موثوقة. [5]

للحساب، نرمز للأموال المختارة بـ I، ولدفعات المستلمين بـ R، وللرسم بـ F، وللباقي بـ C: C = I − R − F. وRPC واجهة برمجية لإرسال أوامر إلى العقدة. تحدد Coin Selection، أي عملية اختيار UTXO، المدخلات والرسوم والباقي المحتمل معًا. ولا تحتاج مجموعة المدخلات المطابقة تمامًا للمبلغ المطلوب إلى مخرج للباقي. في غير ذلك، تقارن المحفظة المتبقي بتكلفة إنشاء المخرج وإنفاقه لاحقًا. يمكن لاستدعاء RPC fundrawtransaction في Bitcoin Core إضافة مخرج واحد للباقي على الأكثر، وهو يعيد موضعه. وعند إرسال جميع الأموال المختارة إلى المستلمين، لا يُنشأ الباقي عمدًا. يغيّر الاختيار اليدوي عبر Coin Control المدخلات المستخدمة، ومن ثم قيمة الباقي، لكن كل مدخل مختار يُستهلك بالكامل. لذلك تحقق من المدخلات النهائية ومبالغ المستلمين والرسوم والباقي، لا من مبلغ الدفع وحده. [9] [10] [13]

تشتق HD Wallet مفاتيح وعناوين كثيرة من قيمة سرية ابتدائية واحدة. يحدد مسار الاشتقاق العنوان المراد حسابه، وتشير BIP إلى وثيقة اقتراح تقني أو معيار. تشتق HD Wallet عادةً عناوين الاستلام من الفرع الخارجي وعناوين الباقي من الفرع الداخلي. يحدد BIP44 القيمة change=0 للفرع الخارجي وchange=1 للفرع الداخلي. ومن أمثلة المسارات في حساب SegWit الأصلي m/84'/0'/0'/0/i وm/84'/0'/0'/1/i. هذا اصطلاح تتبعه المحافظ، وليس قاعدة إجماع؛ ويمكن للمحفظة القائمة على الواصفات استخدام قواعد أخرى. يحد العنوان الداخلي الجديد من إعادة استخدام العناوين. وإعادة المتبقي إلى العنوان الأصلي تظل صحيحة، لكنها تربط سجل المدفوعات وقد تسهّل نسبته إلى شخص معين. [2] [3]

يمثل xpub أدناه مفتاحًا عامًا موسعًا يستطيع اشتقاق بيانات عامة فرعية، لكنه لا يستطيع توقيع الدفعات بنفسه. وseed هي القيمة السرية الابتدائية لاشتقاق المفاتيح. يصف واصف المخرج نوع السكربت والمفاتيح وبيانات أصلها وقاعدة اشتقاق العناوين اللاحقة. يمكن للزوج wpkh([fingerprint/84h/0h/0h]xpub…/0/*) و…/1/* وصف فرعي الاستلام والباقي؛ ويتيح BIP389 التعبير عن عدة فروع بصيغة مشتركة. تخبر العلامة internal المحفظة بالواصف الذي تستخدمه للباقي، لكنها لا تغيّر السكربت الناتج نفسه. عند الاستعادة، قد لا تكفي قيمة seed وحدها للعثور على جميع الأموال. فمن دون بيانات الحساب ونوع السكربت وطريقة الاشتقاق، قد تتجاوز المحفظة مخارج باقي صحيحة رغم أن المفاتيح اللازمة ما زالت موجودة. [6] [7] [8]

Dust هو اسم يطلق على مخرج صغير جدًا يُقيّم وفق قواعد العقدة لتمرير المعاملات. يُحسب الحد المعني من نوع المخرج، والحجم التقديري للبيانات اللازمة لإنفاقه لاحقًا، ومعدل dust relay feerate القابل للضبط. وليس عددًا واحدًا من satoshi ينطبق على الجميع، ولا حظرًا تفرضه قواعد الإجماع. قد ترفض المحفظة إعادة الباقي حتى لو تجاوز هذا الحد، عندما تتوقع أن تكلفة إنشاء المخرج وإنفاقه لاحقًا ستزيد على المبلغ المعاد. يعتمد هذا الحد الاقتصادي على معدل الرسوم الحالي وتقدير المعدل المستقبلي وحجم السكربت. عدم إنشاء الباقي يزيد الرسوم الحالية؛ أما إنشاء مخرج ضئيل جدًا فقد يجعل إنفاقه لاحقًا باهظ التكلفة. [12]

يستبدل Replace-by-fee (RBF) المعاملة غير المؤكدة بمعاملة أخرى ذات رسوم أعلى. يمكن لاستدعاء RPC bumpfee في Bitcoin Core تغطية الفرق بتقليل الباقي أو إضافة مدخلات أو إنشاء مخرج جديد للباقي. وإذا انخفض الباقي عن حد قواعد العقدة أو الجدوى الاقتصادية، فقد يختفي. ينشئ إنفاق باقي غير مؤكد معاملة لاحقة تعتمد على المعاملة الأصلية؛ وقد يؤدي استبدال الأصلية إلى إبطال هذا الارتباط. لكن الأمر bumpfee يرفض الاستبدال إذا كانت المحفظة أو mempool العقدة، أي مجموعة معاملاتها غير المؤكدة، تحتوي بالفعل على معاملة تنفق أحد مخارج الدفعة الأصلية. أما CPFP (Child Pays for Parent) فتعتمد على إنشاء معاملة لاحقة بدل استبدال الأصلية. تنفق هذه المعاملة مخرجًا من الدفعة الأصلية تتحكم فيه المحفظة، وتدفع رسومًا أعلى. بذلك يرتفع معدل الرسوم للمعاملتين مجتمعتين، مما يشجع المعدّنين على تأكيدهما معًا. ما دامت البدائل لم تُحسم، لا تعتبر txid غير المؤكد أو مرجع المخرج outpoint نهائيًا. [11] [15]

تحتاج الاستعادة إلى العثور على عناوين الاستلام وعناوين الباقي معًا. في محفظة معتادة بتوقيع واحد، تكفي عادةً Seed Phrase (كلمات الاستعادة) الصحيحة، وpassphrase المستخدمة إن وُجدت، وإعدادات متوافقة. وseed هي القيمة السرية الابتدائية لاشتقاق المفاتيح، أما passphrase فهي كلمة مرور إضافية إذا اخترت استخدامها. لذا لا يحتاج كل مستخدم إلى تدوين الواصفات يدويًا. لكن الإعدادات الخاصة أو Multisig، حيث تحدد عدة مفاتيح صلاحية الموافقة، قد تتطلب أكثر من الكلمات وحدها. احتفظ بوصف المحفظة أيضًا: الشبكة والحساب ونوع السكربت وقواعد الاشتقاق، وفي Multisig المفاتيح العامة الموسعة xpub لجميع المشاركين وترتيبها وعدد التوقيعات المطلوب. إذا غاب الفرع /1/* فقد تفوت الاستعادة مخارج الباقي وتعرض رصيدًا أقل. راجع العناوين والمخرجات المعروفة في الفرعين، ونطاق الاشتقاق وبداية فحص السجل. وينبغي أن يؤكد اختبار الاستعادة إمكانية إعداد دفعة وتوقيعها بصورة صحيحة أيضًا. [2] [6] [7]

للحصول على صورة أوضح، اقرأ هذا المدخل مع عنوان بيتكوين, UTXO, Coin Control, محفظة, Coin Selection, HD Wallet. تشير إلى هذا المدخل أيضًا عنوان بيتكوين, Coin Control, خصوصية Bitcoin, الهوية المستعارة.

DOC · 001Bitcoin Developer Guide — Transactionsتوثيق DOC · 002BIP 32 — Hierarchical Deterministic Walletsمواصفة DOC · 003BIP 44 — Multi-Account Hierarchyمواصفة DOC · 004BIP 78 — Payjoinمواصفة DOC · 005BIP 174 — Partially Signed Bitcoin Transaction Formatمواصفة DOC · 006BIP 380 — Output Script Descriptorsمواصفة DOC · 007BIP 389 — Multipath Descriptor Key Expressionsمواصفة DOC · 008Bitcoin Core — Output Descriptorsتوثيق DOC · 009Bitcoin Core — Coin Selection Implementationتوثيق DOC · 010Bitcoin Core RPC — fundrawtransactionتوثيق DOC · 011Bitcoin Core RPC — bumpfeeتوثيق DOC · 012Bitcoin Core — Transaction Relay Policyتوثيق DOC · 013Bitcoin Optech — Coin Selectionتوثيق DOC · 014Meiklejohn et al. — A Fistful of Bitcoinsتوثيق DOC · 015Bitcoin Optech — Child Pays for Parentتوثيق
تمت المراجعة: المصادر أولًا · ليست نصيحة استثمارية