يزعم أن OP_IF دائما غير ضروري في البرامج النصية الرئيسية. هذا خطأ. هذا البرنامج النصي المقتبس من @mononautical هو في الواقع أرخص إذا تم تجميعه معا: تتطلب جميع مسارات الإنفاق 4 مفاتيح عامة على أي حال. بعد 4 OP_CHECKSIGADD ، يكون باقي البرنامج النصي أقل من 32 بايت ، لذلك من الأرخص تركه مجمعا. عند فك التجميع ، يمكنك إزالة ذيل البرنامج النصي الذي يتحقق من الأقفال الزمنية ، ولكن أضف 32 بايت إلى كتلة التحكم لأن البرنامج النصي الآن في عمق 1 بدلا من 0. لذلك ، فإن المترجم الذي يقوم بتحسين تكلفة الإنفاق _سوف ينتج البرنامج النصي المجمع (أي شجرة taptree ذات ورقة واحدة) ، لأنه أرخص قليلا حتى في مسار الإنفاق الأساسي (3 من 4). من المرجح أن يرغب المستخدمون الذين يقومون بتحسين الخصوصية حصريا في تقسيمها. بمعنى آخر ، يعد إنتاج أفضل taptree مشكلة تحسين مع متغيرين: تكلفة الإنفاق والخصوصية ، وفي كثير من الأحيان لا يمكنك التحسين لكليهما في نفس الوقت. أتوقع أن معظم المستخدمين لا يحسنون تماما لأي من المتغيرين حصريا ، بل يختارون شجرة taptree بتكلفة جيدة جدا وخصوصية جيدة جدا. بالنسبة للبرنامج النصي الذي يعرضه @mononautical هنا ، فإن شجرة taptree ذات ورقتين فقط ستكون جيدة جدا: المسار الأساسي هو مجرد 3 من 4 بسيط وسيتم استخدامه لمعظم الإنفاق ، ونأمل ألا تصل بقية شروط الإنفاق (ربما يتم تجميعها في ورقة واحدة إلى السلسلة على أي حال. بمجرد وضع MuSig و FROST في المعادلة ، هناك المزيد من المتغيرات: يمكن ل MuSig و FROST خفض التكاليف وتحسين الخصوصية ، لكنهما يزيدان من متطلبات التفاعل وتعقيد التنفيذ. ماذا سيختار المطورون والمستخدمون؟ لا أعلم! الحمقى فقط ليس لديهم شكوك.