تعريف
لغة برمجة Bitcoin Script هي لغة برمجة تعتمد على بنية المكدس، وغير مكتملة تورينج، وتستخدم لتحديد الشروط التي بموجبها بيتكوين المعاملات يمكن إنفاقها. إنه نظام برمجة نصية بسيط ولكنه قوي مُدمج في كل مُخرجات معاملات بيتكوين (نص برمجي للقفل أو scriptPubKey) ومُدخلات (نص برمجي لفتح القفل أو scriptSig)، مما يُتيح شروط إنفاق قابلة للبرمجة دون تعريض شبكة بيتكوين لمخاطر منصة العقود الذكية الكاملة تورينج. يُمكّن Bitcoin Script محافظ متعددة التوقيعالمعاملات المحددة بوقت، العقود المقيدة بالتجزئة، قنوات الدفع، والتبادلات الذرية - كل ذلك دون الحاجة إلى سلسلة كتل للأغراض العامة.
الأصل والتاريخ
| التاريخ | الحدث/الفعالية |
| 2008 | قام ساتوشي ناكاموتو بتصميم برنامج بيتكوين كجزء من تصميم الورقة البيضاء لبيتكوين |
| 2009 | تم نشر سكربت بيتكوين في كتلة التكوين الأولى لبيتكوين؛ الدفع إلى المفتاح العام (P2PK) هو أول نوع من أنواع السكربتات |
| 2012 | BIP 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) - مقدم من المنفق:
التنفيذ (القائم على المكدس): يبدأ المكدس فارغًا
- يدفع → المكدس: [توقيع]
- يدفع → المكدس: [التوقيع، المفتاح العام]
- OP_DUP: نسخة مكررة من الأعلى → المكدس: [sig, pubKey, pubKey]
- OP_HASH160: قمة التجزئة → المكدس: [sig, pubKey, pubKeyHash]
- يدفع → المكدس: [التوقيع، المفتاح العام، تجزئة المفتاح العام، المتوقع]
- OP_EQUALVERIFY: قارن → المكدس: [التوقيع، المفتاح العام] (إذا كانا متساويين)
- OP_CHECKSIG: التحقق من التوقيع → المكدس: [صحيح]
النتيجة: صحيح = المعاملة صحيحة و UTXO يتم إنفاقه
أنواع البرامج النصية: P2PK → الدفع إلى المفتاح العام (قديم) P2PKH → الدفع إلى تجزئة المفتاح العام (الأكثر شيوعًا) P2SH → الدفع إلى تجزئة البرنامج النصي (متعددة التوقيعات، معقدة) P2WPKH → SegWit الأصلي (bech32) P2TR → الدفع إلى Taproot (الأكثر كفاءة/خصوصية) ═══════════════════════════════════════════════════════
| نوع البرنامج النصي | تنسيق العنوان | الحلول المقترحة | الخصوصية |
| P2PK | (لا يوجد عنوان قياسي) | بيتكوين الأصلي، عملات ساتوشي | منخفض |
| P2PKH | 1… (Base58) | المدفوعات القياسية بتوقيع واحد | منخفض |
| P2SH | 3… (Base58) | نصوص معقدة متعددة التوقيعات | متوسط |
| P2WPKH | bc1q… (bech32) | SegWit الأصلي، رسوم أقل | متوسط |
| P2WSH | bc1q… (bech32) | نصوص SegWit الأصلية | متوسط |
| P2TR | bc1p… (bech32m) | الجذر الرئيسي، نص تاب، الترتيبات | مرتفع |
بعبارات بسيطة
- قفل و مفتاح: كل مخرج من مخرجات البيتكوين له قفل (نص برمجي للقفل) - لإنفاقه، يجب عليك تقديم المفتاح الصحيح (نص برمجي لفك القفل) الذي يفي بالشروط.
- آلة تكديسيتم تنفيذ البرنامج النصي عن طريق دفع القيم إلى مكدس وتشغيل العمليات - إنه بسيط ويمكن التنبؤ به، وهو ليس كاملاً تورينج عن قصد لمنع الحلقات اللانهائية.
- مثال على التوقيعات المتعددة: يتطلب نص برمجي متعدد التوقيعات من 2 من 3 توقيعات مفتاح خاص محددة لفتح الأموال - يستخدم لخزائن الفريق والمحافظ الآمنة.
- خصوصية تابروتيقوم برنامج Taproot بإنشاء توقيعات متعددة معقدة و نصوص العقود الذكية تبدو مطابقة تمامًا للمعاملات البسيطة ذات التوقيع الواحد على سلسلة الكتل - مما يحسن الخصوصية.
- حدود متعمدةعلى عكس لغة 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 بشكل أصلي.
تنويه: هذا المحتوى مخصص للأغراض التعليمية فقط ولا يشكل نصيحة مالية أو فنية.
يو باي - إنشاء موسوعة العملات المشفرة










