Author

Topic: طريقة عمل المعاملات (Read 245 times)

legendary
Activity: 1610
Merit: 1131
October 02, 2019, 11:09:34 AM
#5
نعم أخي مايكي الكثير من المستخدمين يعتقدون أن البتكوين الخاص بهم مخزن داخل محفظتهم المثبتة على أجهزتهم و في نفس الوقت ليس كذالك فالمحفظة عبارة عن عنوان و المفتاح الخاص فجميع وحدات بتكوين مخزنة في شبكة بلوكتشين و المحفظة هي واجهة تساعد المستخدم في الوصول إلى رصيده المخزن في الشبكة و التحكم فيه من خلال إجراء صفقات مختلفة.
سأحاول إعطاء تفصيل أكثر دقة للمعاملة p2pkh كما سأحاول مستقبلا إعطاء شرح مفصل لكل أنواع المعاملات المتبقية إن شاء الله في هذا الخيط.

معاملة p2pkh هي نوع من المعاملات التي يقوم بها معظم الأشخاص عن نقل كمية محددة من البتكوين من عنوان إلى عنوان أخر عادة عبر واجهة المحفظة. مثال لتوضيح جزء من ما يجري خلف العملية في محفظة عادية بوضوح:
- مخرجات المعاملات الغير المنفقة (utxos) و هي إختصار unspent transaction outputs
- عملية بناء المعاملات (transaction building process)

مخرجات المعاملات  الغير المنفقة :
من المفاهيم المهمة التي يجب فهمها قبل الإنخراط في تفصيل المعاملة ، مفهوم ناتج المعاملة غير المنفقة أو ما يعبر عنه utxo  في معاملة بتكوين و utxos هو ما يتم إستهلاكه بعد إنفاقه تتم الإشارة إليه على أنه ناتج المعاملة المستهلكة  (spent transaction output) . إنفاق (utxo) يشبه أخذ ورقة بقيمة عشرون دولار لشراء شيء مقابل عشر دولارات، لكن بدلا أن يحتفظ أمين الصندوق بورقة عشرون دولار يقوم بصرفها إلى ورقتين جديدتين بقيمة عشر دولار يحتفظ بواحدة و يقوم بإرجاع الأخرى في هذا السياق بدأت ورقة المقسمة بقيمة عشرون دولار بإعتبارها utxo لكن بمجرد إستهلاكها أصبح ناتج المعاملة المستنفذ الذي أنتج ورقتين جديدتين بقيمة عشر دولار يمثلان utxos جديدتين جاهزتين للإنفاق في المعاملات المستقبلية. يشار إلى جميع بتكوينات المتاحة للإستهلاك على الشبكة بإسم مجموعة utxo.

عملية بناء المعاملات:
تتكون كل معاملة من رقم الإصدار على المدخلات (input) و المخرجات (output) و وقت الإغلاق (locktime)
تحتوي المدخلات على نقطة أو نقاط (output(s))و رقم تسلسل و برنامج نصي للإلغاء القفل و يطلق عليه (scriptsig).
تحتوي المخرجات على قيمة المبلغ الذي يتم إنفاقه و البرنامج النصي للتأمين و يشار إليه أيضا بإسم (scriptpubkey)
وقت الإغلاق يدل على أي وقت تصبح فيه المعاملة سارية.
تحتوي كل معاملة على إدخال واحد على الأقل و إخراج واحد تحتوي المدخلات على منطق يخبر الشبكة عن utxos  الذي يستهلكها  عبر النقاط الخارجية و يثبت أنه يسمح بإستهلاكها عبر البرامج النصية لإلغاء القفل (unlock scripts)

Code:
{
   "ver":1,
   "inputs":[
      {
         "sequence":4294967295,
         "witness":"",
         "prev_out":{
            "spent":true,
            "spending_outpoints":[
               {
                  "tx_index":358792423,
                  "n":0
               }
            ],
            "tx_index":358712145,
            "type":0,
            "addr":"19iy8HKpG5EbsqB2GUNVPUDbQxiTrPXpsx",
            "value":17373066,
            "n":1,
            "script":"76a9145fb0e9755a3424efd2ba0587d20b1e98ee29814a88ac"
         },
         "script":"47304402203da9d487be5302a6d69e02a861acff1da472885e43d7528ed9b1b537a8e2cac9022002d1bca03a1e9715a99971bafe3b1852b7a4f0168281cbd27a220380a01b3307012102c9950c622494c2e9ff5a003e33b690fe4832477d32c2d256c67eab8bf613b34e"
      }
   ],
   "weight":900,
   "block_height":530805,
   "relayed_by":"127.0.0.1",
   "out":[
      {
         "spent":true,
         "spending_outpoints":[
            {
               "tx_index":361316823,
               "n":2
            }
         ],
         "tx_index":358792423,
         "type":0,
         "addr":"1JKRgG4F7k1b7PbAhQ7heEuV5aTJDpK9TS",
         "value":390582,
         "n":0,
         "script":"76a914bdf63990d6dc33d705b756e13dd135466c06b3b588ac"
      },
      {
         "spent":true,
         "spending_outpoints":[
            {
               "tx_index":358801270,
               "n":0
            }
         ],
         "tx_index":358792423,
         "type":0,
         "addr":"19iy8HKpG5EbsqB2GUNVPUDbQxiTrPXpsx",
         "value":16932484,
         "n":1,
         "script":"76a9145fb0e9755a3424efd2ba0587d20b1e98ee29814a88ac"
      }
   ],
   "lock_time":0,
   "size":225,
   "double_spend":false,
   "block_index":1709565,
   "time":1530924843,
   "tx_index":358792423,
   "vin_sz":1,
   "hash":"e65ad475a01384b086ce0d04199835fdd580739422ece1e0f1c4e362d43735d9",
   "vout_sz":2
}

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

legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U
September 30, 2019, 03:53:16 PM
#4
الموضوع الذي اشرت اليه بالاعلي موضوع ممتاز جدا ويستحق ان تتم ترجمته. اتمني ان تقوم بذلك جزءا جزء وسنقوم كلنا بمساعدتك لانه موضوع ضخم جدا ان يقوم به شخص واحد

اخي Hugeblack توقف عن النسخ واللصق من الاخ  rahmani2017  Roll Eyes قم بكتابة محتواك الخاص بك  Grin

الموضوع الذي اشرت اليه بالاعلي موضوع ممتاز جدا ويستحق ان تتم ترجمته. اتمني ان تقوم بذلك جزءا جزء وسنقوم كلنا بمساعدتك لانه موضوع ضخم جدا ان يقوم به شخص واحد

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

قاونين المنتدى باللغة العربية https://bitcointalksearch.org/topic/--2345906
legendary
Activity: 2702
Merit: 4002
September 29, 2019, 03:05:31 PM
#3
الموضوع الذي اشرت اليه بالاعلي موضوع ممتاز جدا ويستحق ان تتم ترجمته. اتمني ان تقوم بذلك جزءا جزء وسنقوم كلنا بمساعدتك لانه موضوع ضخم جدا ان يقوم به شخص واحد
واعتقد انه لتسهيل الامر يجب علينا تقسيم المعاملات الي جزءين, معاملات عادية ومن ثم اضافة جزءية ال segwit بعدها يمكن تفصيل الامر ل  MultiSignature وال OP_RETURN وغيرها نظرا لانها غير مهمه للمبتدئين وممكن ان يتم تعريفها لاحقا.

ثانيا الدليل بالاعلي احتوي علي الكثير من التفاصيل والتي قد لا تهم الكثيرين حيث كمستخدم لن استفيد منها وانما اريد ان اعرف كيف تتم العملية وليست تفصيلاتها.
ايضا يجب ان يتم التفريق بين المفاهيم الاساسية والاضافات التي حصلت علي الشبكة ابتداءا من اول هارد فورك وصولا للان.


سوف احاول ان اصيغ جزء منه عندما اكون فارغا ويمكنك النسخ من الكلام الذي ساكتبة وساقوم بمحو ما كتبته حتي لا تعتبر سرقة ادبية.

من الجيد انك سلطت الضوء علي هذه النقطة
legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U
September 24, 2019, 06:25:23 PM
#2
معاملة بتكوين
هي نقل القيمة بين محافظ بتكوين التي يتم تضمينها في البلوكتشين. تحتفظ محافظ بتكوين بجزء سري من البيانات يطلق عليها المفتاح أو المفتاح الخاص و الذي يتم استخدامه لتوقيع المعاملات، مما يوفر دليلا رياضيا على أنه قد الحصول عليه من قبل مالك المحفظة يمنع التوقيع أيضا تغيير المعاملة من قبل أي شخص بمجرد إصدارها.

موضوع اكتر من رائع بصراحة , اتمنى فقط ان تحاول تنسيقه بطريقة افضل , يصب قراءة الموضوع بهده الطريقة.

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

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

هدا شرح ملخص جدا ويفقتد للكتير من التفاصيل , ولكن الملخص ان قيمة البتكوين ليست موجودة في المحفظة بل موجودة على blockchain
legendary
Activity: 1610
Merit: 1131
September 24, 2019, 01:35:38 PM
#1
لفهم كيفية عمل معاملات بتكوين يجب أن نبدأ من البداية سنشرح المفاهيم التالية:
-عنوان البتكوين
-البرمجة النصية (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-STANDARD

P2PKH: "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://bitcointalksearch.org/topic/how-bitcoin-transactions-work-and-what-are-their-types-5183979
Jump to: