نص بيتكوين

تعريف

لغة برمجة Bitcoin Script هي لغة برمجة تعتمد على بنية المكدس، وغير مكتملة تورينج، وتستخدم لتحديد الشروط التي بموجبها بيتكوين المعاملات يمكن إنفاقها. إنه نظام برمجة نصية بسيط ولكنه قوي مُدمج في كل مُخرجات معاملات بيتكوين (نص برمجي للقفل أو scriptPubKey) ومُدخلات (نص برمجي لفتح القفل أو scriptSig)، مما يُتيح شروط إنفاق قابلة للبرمجة دون تعريض شبكة بيتكوين لمخاطر منصة العقود الذكية الكاملة تورينج. يُمكّن Bitcoin Script محافظ متعددة التوقيعالمعاملات المحددة بوقت، العقود المقيدة بالتجزئة، قنوات الدفع، والتبادلات الذرية - كل ذلك دون الحاجة إلى سلسلة كتل للأغراض العامة.

 الأصل والتاريخ

التاريخالحدث/الفعالية
2008قام ساتوشي ناكاموتو بتصميم برنامج بيتكوين كجزء من تصميم الورقة البيضاء لبيتكوين
2009تم نشر سكربت بيتكوين في كتلة التكوين الأولى لبيتكوين؛ الدفع إلى المفتاح العام (P2PK) هو أول نوع من أنواع السكربتات
2012BIP 16: تم تقديم Pay-to-Script-Hash (P2SH)، مما يتيح استخدام نصوص استرداد معقدة
2015تمت إضافة خاصية التحقق من وقت القفل (CLTV) لتمكين قفل المعاملات بشكل مطلق في وقت محدد
2016تمت إضافة CHECKSEQUENCEVERIFY (CSV) لتمكين قفل الوقت النسبي لقنوات الدفع
2017يقدم SegWit تقنية Pay-to-Witness-Public-Key-Hash (P2WPKH) و P2WSH
2021يُقدّم تحديث Taproot (BIP 340/341/342) توقيعات Schnorr وMAST عبر Tapscript
2023تستخدم أرقام ترتيب البيتكوين لغة البرمجة النصية لتضمين البيانات في بيانات الشهود
2023يشتد النقاش حول إحياء BIP 347 (OP_CAT) بشأن التوسعات المحتملة للنصوص

 "تم تقييد لغة برمجة بيتكوين سكريبت عمدًا - وهذه ميزة وليست عيبًا. البساطة هي الأمان." - جريج ماكسويل، مطور أساسيات بيتكوين

 كيف تعمل هذه التقنية؟

 تنفيذ سكربت معاملة بيتكوين ═ ... OP_EQUALVERIFY OP_CHECKSIG (Standard P2PKH — Pay to Public Key Hash)

نص فتح القفل (scriptSig) - مقدم من المنفق:

التنفيذ (القائم على المكدس): يبدأ المكدس فارغًا

  1. يدفع → المكدس: [توقيع]
  2. يدفع → المكدس: [التوقيع، المفتاح العام]
  3. OP_DUP: نسخة مكررة من الأعلى → المكدس: [sig, pubKey, pubKey]
  4. OP_HASH160: قمة التجزئة → المكدس: [sig, pubKey, pubKeyHash]
  5. يدفع → المكدس: [التوقيع، المفتاح العام، تجزئة المفتاح العام، المتوقع]
  6. OP_EQUALVERIFY: قارن → المكدس: [التوقيع، المفتاح العام] (إذا كانا متساويين)
  7. OP_CHECKSIG: التحقق من التوقيع → المكدس: [صحيح]

النتيجة: صحيح = المعاملة صحيحة و UTXO يتم إنفاقه

أنواع البرامج النصية: P2PK → الدفع إلى المفتاح العام (قديم) P2PKH → الدفع إلى تجزئة المفتاح العام (الأكثر شيوعًا) P2SH → الدفع إلى تجزئة البرنامج النصي (متعددة التوقيعات، معقدة) P2WPKH → SegWit الأصلي (bech32) P2TR → الدفع إلى Taproot (الأكثر كفاءة/خصوصية) ═══════════════════════════════════════════════════════ 

نوع البرنامج النصيتنسيق العنوانالحلول المقترحةالخصوصية
P2PK(لا يوجد عنوان قياسي)بيتكوين الأصلي، عملات ساتوشيمنخفض
P2PKH1… (Base58)المدفوعات القياسية بتوقيع واحدمنخفض
P2SH3… (Base58)نصوص معقدة متعددة التوقيعات
متوسط
P2WPKHbc1q… (bech32)SegWit الأصلي، رسوم أقل
متوسط
P2WSHbc1q… (bech32)نصوص SegWit الأصلية
متوسط
P2TRbc1p… (bech32m)الجذر الرئيسي، نص تاب، الترتيباتمرتفع

 بعبارات بسيطة

  1. قفل و مفتاح: كل ​​مخرج من مخرجات البيتكوين له قفل (نص برمجي للقفل) - لإنفاقه، يجب عليك تقديم المفتاح الصحيح (نص برمجي لفك القفل) الذي يفي بالشروط.
  2. آلة تكديسيتم تنفيذ البرنامج النصي عن طريق دفع القيم إلى مكدس وتشغيل العمليات - إنه بسيط ويمكن التنبؤ به، وهو ليس كاملاً تورينج عن قصد لمنع الحلقات اللانهائية.
  3. مثال على التوقيعات المتعددة: يتطلب نص برمجي متعدد التوقيعات من 2 من 3 توقيعات مفتاح خاص محددة لفتح الأموال - يستخدم لخزائن الفريق والمحافظ الآمنة.
  4. خصوصية تابروتيقوم برنامج Taproot بإنشاء توقيعات متعددة معقدة و نصوص العقود الذكية تبدو مطابقة تمامًا للمعاملات البسيطة ذات التوقيع الواحد على سلسلة الكتل - مما يحسن الخصوصية.
  5. حدود متعمدةعلى عكس لغة Solidity الخاصة بـ Ethereum، لا يمكن لـ Bitcoin Script الوصول إلى البيانات الخارجية أو التكرار أو استدعاء العقود الأخرى - مما يجعلها قابلة للتنبؤ وآمنة.

 أمثلة من العالم الحقيقي

سيناريونوع البرنامج النصيبينيفت كوزميتيكس
تبادل المحفظة الساخنةP2SH توقيع متعدد 2 من 3يتطلب استخدام مفتاحين من أصل ثلاثة - يحمي من سرقة المفتاح الواحد
قناة شبكة البرقHTLC (عقد مقفل زمنيًا باستخدام التجزئة)يُمكّن من إجراء مدفوعات فورية خارج سلسلة الكتل باستخدام عملة البيتكوين
مبادلة ذرية BTC↔LTCكروماتوغرافيا سائلة عالية الأداء على كلا السلسلتينتبادل موثوق عبر السلاسل بدون وسيط
الميراث المقيد بالوقتتحقق من وقت القفللا يمكن إنفاق الأموال إلا بعد تاريخ محدد
نقش ترتيبيبيانات شاهد P2TRنقش البيانات/الرموز غير القابلة للاستبدال في برنامج Taproot Witness

 المزايا

ميزةالتفاصيل
الأمن والحمايةيمنع التصميم غير الكامل لتورينغ مسارات الهجوم المعقدة المحتملة في العقود الذكية
القدرة على التنبؤيتم تنفيذ كل نص برمجي بشكل حتمي مع حساب محدود.
التعبيريةيُمكّن من استخدام التوقيعات المتعددة، وأقفال الوقت، وHTLCs الكافية لشبكة Lightning
الكفاءةتتميز البرامج النصية بصغر حجمها، مما يقلل من بيانات المعاملات والرسوم.
الخصوصية (تابروت)شروط إنفاق معقدة لا يمكن تمييزها عن المدفوعات البسيطة

 العيوب والمخاطر

المخاطرة الماليةالتفاصيل
وظائف محدودةلا يمكن تنفيذ التعقيد DeFi ، أوراكل، أو عقود ذكية عشوائية
تعقيد البرنامج النصيتُعدّ البرامج النصية المتقدمة متعددة التوقيعات معقدة التنفيذ بشكل صحيح.
مشاكل التنسيق القديمتتمتع أنواع البرامج النصية القديمة (P2PK، P2PKH) بخصوصية أقل من البدائل الحديثة
رموز العمليات المعطلةتم تعطيل العديد من رموز العمليات القوية (OP_CAT، OP_CHECKSIGFROMSTACK) لأسباب أمنية
مخاطر أخطاء البرمجة النصيةقد تؤدي الأخطاء في البرامج النصية المخصصة إلى تجميد الأموال بشكل دائم

نصائح لإدارة المخاطر:

  • اختبر دائمًا تطبيقات البرامج النصية المخصصة على شبكة الاختبار قبل الشبكة الرئيسية.
  • استخدم عناوين P2TR (Taproot) للحصول على أفضل خصوصية وتوافق مستقبلي
  • بالنسبة للمحافظ متعددة التوقيعات، استخدم التطبيقات المعروفة (مثل Bitcoin Core وSparrow Wallet) بدلاً من البرامج النصية المخصصة.
  • خزّن نصوص استرداد الأموال (P2SH) بأمان — فأنت بحاجة إليها لإنفاق الأموال

 الأسئلة الشائعة

س: لماذا لا تُعتبر لغة برمجة بيتكوين كاملة تورينج؟

ج: تسمح خاصية اكتمال تورينج بحلقات لا نهائية، وهو أمر خطير في سلسلة الكتل حيث يجب على جميع العقد تنفيذ كل نص برمجي. يضمن عدم اكتمال بيتكوين سكريبت المتعمد إنهاء النصوص البرمجية بشكل متوقع، مما يمنع هجمات حجب الخدمة ويجعل التحقق الرسمي من النصوص البرمجية ممكنًا.

س: ما هو HTLC في لغة برمجة بيتكوين؟

أ: عقد التجزئة المقفل زمنيًا (HTLC) هو برنامج نصي يسمح باستلام الدفعة عن طريق الكشف عن سر (صورة أصلية) يتم تجزئته إلى قيمة محددة مسبقًا، أو رد المبلغ إلى المرسل بعد انقضاء مهلة زمنية. تُعد عقود التجزئة المقفلة زمنيًا (HTLC) اللبنة الأساسية لشبكة Lightning.

س: كيف يُحسّن Taproot برنامج Bitcoin Script؟

أ: يقدم Taproot (BIP 340/341/342) توقيعات Schnorr التي تتيح تجميع المفاتيح، وMAST (أشجار بناء الجملة المجردة المرمزة) عبر Tapscript مما يتيح البرامج النصية المعقدة مع الكشف عن الفروع المنفذة فقط، وجعل جميع مخرجات Taproot تبدو متطابقة خارجيًا - مما يحسن الخصوصية والكفاءة بشكل كبير.

نصيحة من UPay: عند إعداد محفظة بيتكوين، استخدم عناوين Taproot (bc1p…) للحصول على أفضل مزيج من الخصوصية والكفاءة والتوافق المستقبلي. تدعم معظم المحافظ الحديثة مثل Sparrow وPhoenix عناوين Taproot بشكل أصلي.

تنويه: هذا المحتوى مخصص للأغراض التعليمية فقط ولا يشكل نصيحة مالية أو فنية.

يو باي - إنشاء موسوعة العملات المشفرة

الأخبار و الأحداث