لفهم كيفية عمل معاملات بتكوين يجب أن نبدأ من البداية سنشرح المفاهيم التالية:
-عنوان البتكوين
-البرمجة النصية (script)
-معاملة بتكوين
-ما هي أنواع معاملة بتكوين
عنوان بتكوينهو سلسلة من الأحرف الأبجدية و الرقمية التي يمكن للمستخدم توزيعها على أي شخص قصد الإرسال و الإستلام.
يمكن أن تأتي عناوين بتكوين بتنسيقات مختلفة، من بينها تنسيقات الدفع الشائعة:
-pubkeyhash (p2pkH p2sH)
-pay-to-scriptHash
على الرغم أنه يمكن لأي شخص إرسال عملات بتكوين إلى أي عنوان معين من وحدات بتكوين،
فلا يمكن إنفاق هذه الأموال إلا إذا إستوفت بعض المتطلبات المحددة في نظام البرمجة النصية للبتكوين.
البرمجة النصية سكريبتهي قائمة فعالة بالتعليمات المسجلة و المصاحبة لكل معاملة منفذة، بحيث تتحكم البرمجة النصية في كيفية
وصول عملات بتكوين إلى الجهة المرغوب للإرسال لها. وتسمى بالبرمجة النصية المصاحبة للمخرجات في المعاملة.
و تعرف أيضا بالبرمجة النصية لتأمين pubkey scripts, و التي تعرف بالشفرة scriptpubkey.
سيقوم مستلموا عملات البتكوين المرسلة إليهم بإنشاء نص برمجي للتوقيع (و يعرف أيضا بالبرمجة النصية لإلغاء القفل(
و هو عبارة عن مجموعة من معلمات البيانات التي يتم إنشاؤها بواسطة spender و التي تستخدم لإرضاء pubkey script
و تسمى بالبرمجة النصية للتوقيع scriptSig في التعليمات البرمجية.
مثال: عندما يقرر مايكي بدء معاملة مع ساي، فإن الإخراج يحتوي على عملات بتكوين قابلة للإنفاق بشرط
أن تكون الإرشادات موضحة في برنامج pubkeyscript بمجرد بث هذه الصفقة وإضافتها إلى بلوكتشين.
ستقوم الشبكة بتصنيف المعاملة بإعتبارها مخرجات المعاملات غير المنفقة )UTXO(
و سيتعرف برنامج محفظة ساي أن رصيد المستلم قابل لإستهلاك عندما يرغب ساي في إنفاق هذا الرصيد utxo
فإنه يُنشيء مدخلا يتضمن نصا لتوقيع يجب أن يستوفي الشروط التي وضعها مايكي في نص pubkey script
للمخرج السابق.
معاملة بتكوينهي نقل القيمة بين محافظ بتكوين التي يتم تضمينها في البلوكتشين. تحتفظ محافظ بتكوين بجزء سري من البيانات يطلق عليها المفتاح أو المفتاح الخاص و الذي يتم استخدامه لتوقيع المعاملات، مما يوفر دليلا رياضيا على أنه قد تم الحصول عليه من قبل مالك المحفظة يمنع التوقيع أيضا تغيير المعاملة من قبل أي شخص بمجرد إصدارها. يتم بث جميع المعاملات إلى الشبكة و عادة تبدأ في التأكيد خلال مدة زمنية تتراوح بين عشر إلى عشرون دقيقة، من خلال عملية تسمى بالتعدين. فجميع المعاملات مرئيّة في ما يعرف بدفتر الأستاذ البلوكتشين. و يمكن عرضها على المستكشف. و المستكشف هو موقع بحيث يمكنه عرض كل معاملة مضمنة في البلوكتشين بمصطلحات يمكن قرائتها من قبل الجميع، و هذا مفيد لرؤية التفاصيل الفنية للمعاملات قيد التنفيذ و لتحقق من الصفقات.
ماهي أنواع المعاملات؟هناك عدد قليل من أنواع المعاملات بتكوين القياسية في وقت كتابة هذا التقرير. يقوم المطورون الذين يعملون خلف بتكوين بتطوير أنواع المعاملات باستمرار للسماح بمزيد من الوظائف - قد تتغير القائمة الحالية في المستقبل. هناك معاملات قياسية يتم قبولها من قبل العميل القياسي - على الرغم من أن بعض عمال المناجم سيقبلون النوع الأخير ، وهو معاملة غير قياسية ولكن مقابل سعر.و يمثل الجدول أدناه أنواع المعاملات القياسية الشائعة سنحاول إعطاء تعريف لكل منها:
Script > P2PK, P2PKH, P2MS, P2SH, P2WPKH, NULL DATA, NON-STANDARDP2PKH: "Pay To Public Key Hash"(الدفع إلى المفتاح العام) هذه هي الطريقة التي تتم بها المعاملات و بنسبة كبيرة. أنت تطلب من المرسل توفير توقيع صالح (من المفتاح الخاص) والمفتاح العمومي. سيستخدم البرمجة النصية لمخرجات المعاملة التوقيع والمفتاح العام ومن خلال بعض وظائف التشفير سوف يتحقق مما إذا كان يتطابق مع علامة التجزئة للمفتاح العام ، وإذا كان كذلك ، فسيتم إنفاق الأموال. تخفي هذه الطريقة المفتاح العمومي الخاص بك في شكل علامة تجزئة لمزيد من الأمان.إذا تم تعيين شرط الإنفاق لتقديم علامة تجزئة للمفتاح العام ، فسيكون P2PKH TX
P2PK: "Pay To Public Key"(الدفع إلى المفتاح العمومي)على عكس P2PKH الذي تضمن تجزئة المفتاح العمومي ؛ تحتوي هذه البرمجة النصية سكريبت على المفتاح العمومي نفسه. أي شخص يستخدم هذه الطريقة لإرسال الأموال عبر شبكة P2P يقوم بإظهار المفتاح العمومي للأشخاص في تفاصيل المعاملة. شرط الإنفاق يتطلب منك فقط تقديم مفتاحك العام وتوقيعك. سيتم التعرف على المفتاح العمومي بواسطة محفظتك (باتباع نظام الترميز المذكور أعلاه) كعنوان "النوع 1".
P2SH: "Pay To Script Hash"(الدفع إلى برمجة النصية لتجزئة)مخرجات العملية هي مجرد نصوص برمجية ، إذا تم تنفيذها باستخدام معلمات محددة ، فسوف ينتج عنها منطقية trueأو false. إذا قام عامل منجم بتشغيل سكريبت الإخراج مع المعلمات الموردة والنتائج في true, سيتم إرسال الأموال إلى الإخراج المطلوب. يتم استخدام P2SH للمحافظ متعددة التوقيعات مما يجعل منطق نصوص الإخراج الذي يتحقق من التوقيعات المتعددة قبل قبول المعاملة. يمكن أيضًا استخدام P2SH للسماح لأي شخص ، أو لا أحد ، بإنفاق الأموال. إذا كانت البرمجة النصية لإخراج معاملة P2SH هو 1 لصحيح ، فإن محاولة إنفاق المخرجات دون توفير معلمات ستؤدي فقط إلى جعل 1 من الأموال التي ينفقها أي شخص يحاول. ينطبق هذا أيضًا على البرامج النصية التي ترجع 0 ، مما يجعل الإخراج غير قابل للاستهلاك من قِبل لا أحد. و يمكن إستخدامها في بناء و حل الألغاز.
P2WPKH: "Pay To Witness Public Key Hash"(الدفع إلى علامة تجزئة المفتاح العام)
سأعمل على تكملة الموضوع إن شاء الله
https://bitcointalk.org/index.php?topic=5183979.0