0Pricing
Cryptology Academy · درس

Bitcoin Script والتحقق من توقيعات UTXO

تتبّع نصوص الدفع إلى تجزئة المفتاح العام (P2PKH) وتوقيع ECDSA

Bitcoin Script والتحقق من توقيعات UTXO درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

نموذج UTXO

يستخدم Bitcoin مخرجات المعاملات غير المُنفقة (UTXOs). كل UTXO هو عملة تحتوي على برنامج قفل (scriptPubKey). ولإنفاقها، يقدّم المُنفِق برنامج فتح (scriptSig) يستوفي شروط برنامج القفل. وتتميز UTXOs بأنها ذرّية — إما مُنفقة أو غير مُنفقة، ولا يمكن إنفاق جزء منها.

Bitcoin Script

Bitcoin Script هي لغة تعتمد على المكدس وغير مكتملة تورنغ. تُنفَّذ البرامج بدفع البيانات وتشغيل رموز التشغيل. لا توجد حلقات ولا استدعاءات递归 — لذا تنتهي البرامج دائمًا. يمنع هذا القيد المتعمد هجمات حجب الخدمة، ويجعل التحقق من البرنامج ذا تعقيد O(n) بالنسبة إلى طول البرنامج.

P2PKH: الدفع مقابل تجزئة المفتاح العام

نوع المخرجات الأكثر شيوعًا. scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG. scriptSig: . التنفيذ: ادفع التوقيع والمفتاح العام، ثم انسخ المفتاح العام، وطبّق hash160، وقارن النتيجة بالتجزئة المضمّنة، وتحقق من توقيع ECDSA. إذا نجحت جميع الخطوات، تصبح العملة قابلة للإنفاق.

تتبّع تنفيذ P2PKH

تتبّع المكدس في P2PKH: ادفع ؛ ادفع ؛ OP_DUP → ادفع نسخة؛ OP_HASH160 → طبّق hash160 على العنصر العلوي؛ ادفع ؛ OP_EQUALVERIFY → أخرج عنصرين، وافشل إذا لم يكونا متساويين؛ OP_CHECKSIG → أخرج التوقيع والمفتاح العام، وتحقق من ECDSA، ثم ادفع TRUE أو FALSE. ينجح البرنامج إذا كانت النتيجة TRUE.

ECDSA في Bitcoin

يستخدم Bitcoin خوارزمية ECDSA على المنحنى secp256k1 (منحنى Koblitz، y^2 = x^3 + 7 mod p). يكون المفتاح الخاص d ∈ [1, n-1]. والمفتاح العام Q = d*G. Sign(m): قيمة k عشوائية؛ r = (k*G).x mod n؛ s = k^{-1}(H(m)+r*d) mod n. التوقيع = (r, s). ويُرمَّز بترميز DER داخل scriptSig.

أنواع SIGHASH

تلتزم توقيعات Bitcoin بأجزاء محددة من المعاملة: SIGHASH_ALL (الافتراضي): توقيع جميع المدخلات والمخرجات. SIGHASH_SINGLE: توقيع المخرج المناظر فقط. SIGHASH_NONE: عدم توقيع أي مخرجات (وهو خطر). SIGHASH_ANYONECANPAY: توقيع المدخل الخاص بالموقّع فقط — ما يتيح إجراء معاملات تعاونية.

P2SH: الدفع مقابل تجزئة البرنامج

يتيح P2SH إخفاء شروط الإنفاق المعقدة خلف تجزئة. scriptPubKey: OP_HASH160 OP_EQUAL. scriptSig: . التنفيذ: التحقق من أن hash(redeemScript) == scriptHash، ثم تنفيذ redeemScript. يتيح ذلك التوقيع المتعدد دون كشف الشروط حتى وقت الإنفاق.

توقيع متعدد (2 من 3)

redeemScript: OP_2 OP_3 OP_CHECKMULTISIG. scriptSig: OP_0 . يعمل OP_0 على تجاوز خطأ في OP_CHECKMULTISIG، إذ يُخرج عنصرًا إضافيًا من المكدس. ويتطلب التوقيع المتعدد 2 من 3 أي توقيعين من أصل ثلاثة.

SegWit وP2WPKH

ينقل الشاهد المنفصل (Segregated Witness، أو SegWit، وفق BIP-141) التوقيعات من scriptSig إلى حقل witness منفصل. ويعالج قابلية تحوير المعاملة (إذ يتغير المعرّف إذا تغيّر scriptSig). scriptPubKey في P2WPKH: OP_0 <20-byte pubKeyHash>. الشاهد: [ ].

Taproot (P2TR)

يستخدم Taproot (BIP-340/341/342) توقيعات Schnorr وأشجار بناء الجملة المجردة المُحوَّلة إلى Merkle (MAST). الإنفاق الافتراضي: توقيع Schnorr واحد (لا يمكن تمييزه عن الإنفاق عبر مسار المفتاح). وتُخفى الشروط المعقدة داخل شجرة Merkle ولا تُكشف إلا عند استخدامها. وهذا يوفر الخصوصية والكفاءة.

التحقق من Script في الشيفرة

يتحقق Bitcoin Core من البرامج باستخدام مفسّر مكدس. يستدعي CheckSig الدالة VerifyScript التي تشغّل scriptSig+scriptPubKey المدمجين. ولكل رمز تشغيل CHECKSIG، يستدعي CheckECDSASignature التي تتحقق من (r,s) المرمّز بترميز DER مقابل تجزئة المعاملة باستخدام secp256k1.

تحقق سريع

ما الذي يتحقق منه OP_CHECKSIG في برنامج P2PKH؟

مراجعة

تستخدم UTXOs لغة Bitcoin Script المعتمدة على المكدس. P2PKH: نمط الإنفاق الأكثر شيوعًا — التحقق من تجزئة مفتاح عام، ثم التحقق من توقيع ECDSA. يعالج SegWit قابلية التحوير، ويضيف Taproot توقيعات Schnorr وMAST. التالي: تحليل التشفير التفاضلي.

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

هل درس «Bitcoin Script والتحقق من توقيعات UTXO» مجاني؟

نعم — نص درس «Bitcoin Script والتحقق من توقيعات UTXO» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «Bitcoin Script والتحقق من توقيعات UTXO»؟

تتبّع نصوص الدفع إلى تجزئة المفتاح العام (P2PKH) وتوقيع ECDSA تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «Bitcoin Script والتحقق من توقيعات UTXO»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. سلاسل التجزئة وربط الكتل
  2. أشجار Merkle: سلامة المعاملات على نطاق واسع
  3. إثبات العمل: التعدين وضبط الصعوبة
  4. Bitcoin Script والتحقق من توقيعات UTXO
← العودة إلى Cryptology Academy