Author

Topic: اسكربتات البيتكوين (Read 67 times)

legendary
Activity: 1596
Merit: 1288
January 23, 2023, 12:17:30 PM
#1
قائمة بالمحتويات

      1. المقدمه
      2. اسكربت البيتكوين
      3. ماذا يحدث عند الارسال
      4. المزيد.....

تنوية هام
ستكون هناك الكثير من المصطحات باللغة الانجيلزية والتي ساحاول ان اقوم بترجمتها ترجمه مناسبة مع الصياغ وبالتالي فالثريد ادناه خاضع للتغيرات المستمره


المقدمة

جميعنا تقريبا قد قام بعملية ارسال بيتكوين من محفظته ولكن معظمنا لا يعرف كيف تتم العملية, لفهم ذلك دعنا نتخيل اننا في المطار ولدينا حزام طويل يحمل مئات الحقائق هذه الحقائب هي اشبهه بالبلوكشين الذي يحتوي علي سلسلة من البلوكات, يمكن لاي شخص مشاهده محتوي البلوكات تماما كما يحدث عندما تمر الحقائب علي جهاز الاشعة السينية ولكن وحدهم الاشخاص الذين لديهم مفتاح تلك الحقيبة بامكانهم الاستمتاع بما فيها. وبالتالي تصبح عملية ارسال البيتكوين هي اشبة بالذهاب لجهاز الاشعة السينية للتحقق من محتويات الحقيبة وعندما تعرف انها ملكك فانت تستخدم المفتاح الخاص لارسال العملات وما يحدث انك تنقل محتويات حقيبتك لاخرى موجودة علي السلسلة وهكذا. اذن ما يحدث هو وجود لمفتاحين

 بافتراض ما سبق ، يمكننا إعادة تسميته على النحو التالي:

  • المفتاح الخاص (scriptSig)
  • قفل(scriptPubKey)
نتيجة الجمع بين الاثنين يعطينا برنامجًا صغيرًا ، تقوم كل عقدة بفحصه.



اسكربت البيتكوين


 من خلال المقدمة عرفنا ان لدينا شئ يعرف بالاسكربت وهو عبارة عن قائمة من بالتعليمات المسجلة مع كل معاملة ، تصف هذه التعليمات كيف يمكن للشخص التالي الذي يريد إنفاق عملة البيتكوين المنقولة الوصول إليها

يمكن وضع مجموعة من الشروط ، مثلا لا بد من وجود عده مفاتيح لاجراء المعاملة ، او لا توجد مفاتيح إطلاقاً ، إضافة وقت محدد لاجراء المعاملة وغيرها وبالتالي هي الشروط التي يمكن لوضعها ليطلق علي المعاملة صحيحة

تعتبر المعاملة صالحة إذا لم يكن لدى بداخل الاسكربت اي شئ يمكن أن يفشل وكانت التعليمات بالاسفل صحيحة:

  • top stack item is True (non-zero).
  • Byte vectors are not allowed to be more than 520 bytes long
  • Opcodes be no more than 4 bytes long, except addition/subtraction (overflow a 5 byte.)

ولكن ماذا تعني الكلمات بالاعلي.
Opcodes هي قائمة بجميع التعلميات الموجودة والتي يمكن ان يتم اضافة تعليمات جديدة مستقبلا باستخدام OP_NOP1-OP_NOP10
stack هو طريقة تجميع البيانات بحيث تكون القديمة لاسفل والحديثه لاعلي  وبالتالي فخرج المعاملة هو خطأ هو صفر أو صفر سالب (باستخدام أي عدد من البايت) أو مصفوفة فارغة


ماذا يحدث عند الارسال
اذن كما ذكرنا في مثالنا الاول في المطار فانه لاجراء معاملة لابد من التحقق بانك تمتلك تلك العملات اولا ومن ثم استخدام مفتاحك الخاص لتوقيع رسالة وبالتالي نقل الملكية لعنوان جديد ولكن كيف يحدث ذلك علي مستوي الكود؟


المثال الاتي قديم ولا يعمل به حاليا:
الان انت تريد ارسال عملات فالكود يكون
Code:
scriptPubKey: OP_CHECKSIG
scriptSig:

OP_CHECKSIG: هي تعليمه قديمة حيث يمكنك ارسال البيتكون الي عنوان اي بي وبالتالي فكل ما يحدث ان الاسكربت يتحقق من العنوان ومن التوقيع وبالتالي ستكون تفسير الكود

تحقق من عنوان الايبي, تحقق من التوقيع, اذا كانا صحيحين فقم بنقل العملات للطرف الثاني

اما ما يحدث داخل الاستاك فهو كالاتي

الان ناخذ مثال اخر وهو

Code:
scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
scriptSig:

هل يمكنكم تفسير ماذا يعني؟
للمساعده يمكنكم زيارة الصفحة https://en.bitcoin.it/wiki/Script


هذا هو الدرس الاول اتمني ان اكون وفقت في التوضيح وسيتم اضافة المزيد مستقبلا

Jump to: