31 / 736M-of-N

Multisig

الموافقة على الدفع باستخدام عدة مفاتيح

لا يلزم أن يعتمد الدفع على مفتاح واحد. تتيح Multisig اشتراط توقيع أي مفتاحين من ثلاثة مفاتيح مستقلة، على سبيل المثال.

تحمي Multisig البيتكوين باشتراط توقيعات عدة مفاتيح محددة لإنفاقه. في قاعدة 2 من 3، يكفي أي مفتاحين من ثلاثة مفاتيح مختلفة. لذلك لا يعني فقدان أحدها بالضرورة ضياع المال، ولا يستطيع سارق يملك مفتاحًا واحدًا إنفاقه وحده. ويتطلب ذلك نسخًا احتياطية صحيحة وفصلًا حقيقيًا بين المفاتيح.

Multisig: محاكي عتبة التوقيعاتتحقّق مما إذا كانت المفاتيح المتبقية في نموذج m من n تكفي لبلوغ عتبة التوقيعات. تصف النتيجة توفر التوقيعات، لا أمان المحفظة أو إمكانية استعادتها بالكامل.

لا تريد أليس أن تعتمد مدخراتها كلها على جهاز واحد. تنشئ محفظة بقاعدة 2 من 3 ومفاتيح مستقلة تسميها A وB وC. يستطيع الزوج A + B أو A + C أو B + C الموافقة على الدفع. كل توقيع هو موافقة قابلة للتحقق رياضيًا ينتجها المفتاح الخاص المعني؛ أما المفتاح نفسه فلا يُرسل إلى الشبكة. إذا فقدت أليس A، تستطيع استخدام B وC بشرط أن تحتفظ أيضًا ببيانات المحفظة اللازمة. ومن يسرق A وحده لا يستطيع إرسال المال بمفرده. ولا ينقسم البيتكوين هنا إلى ثلاث حصص منفصلة؛ بل تحمي القاعدة المشتركة كامل الأموال المعنية. يمكن أن يحتفظ بالمفاتيح ثلاثة أشخاص أو شخص واحد على أجهزة منفصلة. ولا تُنشئ ثلاث نسخ من Seed Phrase نفسها، أي مجموعة كلمات الاسترداد نفسها، ثلاثة مفاتيح مستقلة. [1] [2]

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

يحتاج كل مفتاح مستقل إلى نسخة احتياطية آمنة خاصة به. لكن مجموعتين من الكلمات لا تكفيان تلقائيًا لاستعادة المحفظة كلها. فلا بد أيضًا من الإعدادات المشتركة: عدد التوقيعات المطلوبة، والبيانات العامة للمفاتيح الثلاثة، وترتيبها، وطريقة إنشاء العناوين. يمكن حفظ ذلك في Output Descriptor، وهو وصف تقني دقيق للمحفظة، أو في تصدير مكافئ لإعداداتها. لا يستطيع الوصف العام الخالي من المفاتيح الخاصة توقيع دفعة بمفرده، لكنه قد يكشف العناوين وحركة الأموال، لذا يستحق الحفاظ على خصوصيته أيضًا. تختبر أليس أولًا الاستلام والإرسال والاسترداد بمبلغ صغير. وإذا فقدت A لاحقًا أو اشتبهت في تسربه، فإن حذف الجهاز من التطبيق لا يغير القاعدة القديمة. يجب أن تستخدم المفاتيح المتبقية لنقل الأموال إلى عناوين جديدة جرى التحقق منها وتستند إلى مجموعة مفاتيح جديدة. [4] [6]

تتحمل قاعدة 2 من 3 فقدان مفتاح واحد، أما قاعدة 2 من 2 فلا تتحمل فقدان أي منهما. وفي القاعدة الأولى يستطيع أي زوج الإنفاق، بما في ذلك شخصان يتفقان دون الثالث. لذلك يعتمد الإعداد المناسب على صاحب المال الذي يحميه وعلى الأعطال التي ينبغي أن يصمد أمامها. إذا وضعت أليس جميع الأجهزة والنسخ الاحتياطية في الدرج نفسه، فقد تلغي سرقة واحدة أو حريق فائدة الفصل. كما يزداد العمل المطلوب للتحقق من الدفعات وتوافق المحافظ والاسترداد. وتُكتب شروط الإنفاق هنا في سكربت، أي برنامج قصير. وتشغل معاملة multisig التقليدية القائمة على السكربت مساحة أكبر عادةً من معاملة مماثلة بتوقيع واحد، فتكون رسومها أعلى عند معدل الرسوم نفسه. وقد تكون محفظة بسيطة يجيد المبتدئ استخدامها أكثر أمانًا من إعداد معقد لا يفهمه. [1] [2]

يعني التعبير العام m من n أن المطلوب هو m توقيعات صالحة من n مفاتيح محددة. في Multisig التقليدية القائمة على السكربت، تشكل المفاتيح العامة وهذا الحد المطلوب جزءًا من شرط الإنفاق. يحدد مخرج المعاملة هذا الشرط مباشرة أو يرتبط بالسكربت المعني ارتباطًا تشفيريًا. وعند الإنفاق تتحقق العُقد، وهي حواسيب تراجع الالتزام بقواعد Bitcoin، من التوقيعات المطلوبة وبيانات السكربت؛ فالأمر ليس مجرد إذن من التطبيق. في أوصاف المحافظ، يحتفظ multi بترتيب المفاتيح العامة كما أُدخل، بينما يرتبها sortedmulti وفق قاعدة دقيقة. ويحدد مسار الاشتقاق المفاتيح المعينة التي تحسبها المحفظة من بيانات المفاتيح الأصلية. وقد يؤدي ترتيب خاطئ أو مسارات اشتقاق مختلفة إلى عناوين مختلفة. يتيح الوصف للمحفظة إعادة بناء هذه الشروط، لكنه لا يُخزَّن هو نفسه في البلوكشين كملف إعدادات. يتعلق هذا الشرح بـMultisig التقليدية القائمة على السكربت. ويمكن لبنى أخرى أن تجمع عدة مشاركين خلف توقيع مشترك واحد، ولها قواعدها الخاصة. [3] [4] [7]

مثال · M-of-N

قاعدة 2 من 3

تتطلب Multisig بثلاثة مفاتيح مختلفة توقيعات صالحة من أي اثنين. لا يكفي مفتاح مسروق واحد؛ وبعد فقدان أحدها يمكن الإنفاق بالاثنين الباقيين إذا توفرت بيانات السكربت المطلوبة أيضًا. افصل المفاتيح ونسخها الاحتياطية واحتفظ بـ Output Descriptor الكامل أو سياسة المحفظة المكافئة.

للحصول على صورة أوضح، اقرأ هذا المدخل مع Private Key, محفظة, PSBT. تشير إلى هذا المدخل أيضًا HD Wallet, Cold Storage, Watch-only Wallet, Change Address.

01هل Multisig أكثر أمانًا تلقائيًا من Hardware Wallet واحدة؟

لا. قد تقلل المفاتيح والنسخ المنفصلة جيدًا نقطة الفشل الواحدة، لكن زيادة المشاركين تزيد التعقيد التشغيلي. تحتاج سياسة محفظة متحققًا منها واستردادًا مجرّبًا؛ قد يعرض منسق مشترك مخترق الدفعة الخاطئة نفسها على الجميع.

02هل يجب أن تكون كل مفاتيح Multisig في مكان واحد للتوقيع؟

لا. تتيح PSBT نقل البيانات والتوقيعات بصورة منفصلة دون جمع المفاتيح الخاصة. على كل موقّع التحقق من المستلمين والمبالغ والرسوم. قبل البث يجب إكمال المعاملة بالتوقيعات الصالحة المطلوبة واستيفاء جميع شروط المدخلات الأخرى.

DOC · 001Bitcoin Developer Guide — P2SH Multisigتوثيق DOC · 002BIP 11 — M-of-N Standard Transactionsمصدر أولي DOC · 003BIP 67 — Deterministic key sortingمصدر أولي DOC · 004BIP 383 — Multisig output descriptorsمصدر أولي DOC · 005BIP 174 — Partially Signed Bitcoin Transaction Formatمصدر أولي DOC · 006BIP 380 — Output Script Descriptorsمصدر أولي DOC · 007BIP 327 — MuSig2مصدر أولي
تمت المراجعة: المصادر أولًا · ليست نصيحة استثمارية