Post
Topic
Board العربية (Arabic)
Re: [التعليم] خصوصية البيتكوين وعدم الكشف عن ه
by
Nalain420
on 15/02/2024, 01:05:12 UTC
7. CoinSwap
العودة إلى المحتويات
قام جريجوري ماكسويل16 في الموضوع التالي بتقديم CoinSwap لأول مرة:
https://bitcointalk.org/index.php?topic=321228.0
سوف تقوم CoinSwap بحماية معلومات المعاملة بين الدافع والمستلم. تسمح CoinSwap للأطراف المعنية بإجراء المعاملات من خلال ضمان عدم تمكن أي طرف من سرقة البيتكوين من أطراف أخرى. في CoinSwap، يلزم وجود طرف ثالث كحلقة وصل بين الدافع والمستلم، ويجب أيضًا إجراء بعض المعاملات في مخطط CoinSwap. تتضمن بعض طرق المعاملات المستخدمة في CoinSwap معاملات الضمان 2 من 2 والمعاملات المقفلة.

بروتوكول CoinSwap:
وفي هذا البروتوكول، افترضت جميع الأطراف أن يكون لديها قنوات اتصال خاصة.
يمكن شرح بروتوكول CoinSwap على النحو التالي:
تعمل أليس كدافع،
بوب كمستلم للدفعة،
وكارول كوسيط (الضمان).

ينقسم هذا البروتوكول إلى ثلاث مراحل، وهي المرحلة 0 والمرحلة 1 والمرحلة 2.

المرحلة 0. إعداد الضمانات واسترداد المهلة الخاصة بها.
المرحلة 1. تجعل الأمر بحيث إذا حصل بوب على أجره، فلا توجد طريقة لفشل كارول في الحصول على أجره.
المرحلة 2. ما عليك سوى تحرير الضمانات مباشرة لأن الجميع سعداء لأن الغش غير ممكن.

  Alice                        Carol                        Bob
  =====================================================================================
0.Computes TX_0: 2of2{A,C}    |Computes TX_1: 2of2{C,B}    |                           \
1.Send TX_0 TXID ------------>                             |                           |
2.                            |Send TX_1 TXID ------------>                            |
3.                            |Computes TX_0 locked refund |Computes TX_1 locked refund|  
4.               <------------ Send TX_0_refund            |                           | Phase 0
5.                            |               <------------ Send TX_1_refund.          |
6.Announces TX_0 to network   |Announces TX_1 to network   |                           |
7.                            |                            |                           |
8.******    Network confirms TX_0: Alice pays according to 2 of {Alice, Carol}   ******|
9.******     Network confirms TX_1: Carol pays according to 2 of {Carol, Bob}    ******/
A.                            |                            |Selects secret value X     \
B.                            |                            |Computes HX = H(X)         |
C.                            |               <------------ Send HX                    |
D.               <----------------------------------------- Send HX                    |
E.Computes TX_2: TX_0>Carol+X |                            |                           | Phase 1
F.Send TX_2     ------------>                              |                           |
G.                            | Computes TX_3: TX_1>Bob+X  |                           |
H.                            | Send TX_3     ------------>                            |
I.                            |               <------------ Send X                     /
J.                            | Computes TX_4: TX_1>Bob    |                           \
K.                            | Send TX_4     ------------>                            |
L.                            |                            |Signs and announces TX_4   |
M.******       Network confirms TX_4: Carol pays Bob via 2 of {Carol, Bob}       ******|
N.Computes TX_5: TX_0>Carol   |                            |                           | Phase 3
O.Send TX_5      ------------>                             |                           |
P.                            |Signs and announces TX_5    |                           |
Q.******     Network confirms TX_5: Alice pays Carol via 2 of {Alice, Carol}     ******/
  =====================================================================================
مخطط بروتوكول CoinSwap.16

المرحلة 0
في المرحلة 0، هناك عملية إجراء معاملة الضمان بين المشاركين. تقوم أليس بإجراء معاملة الضمان TX_0 وهي عبارة عن ضمان 2 من 2 بين أليس وكارول باستخدام عملة البيتكوين الخاصة بأليس. يمكن قراءة هذه الصفقة على النحو التالي:
'ستدفع أليس مبلغًا معينًا من البيتكوين لكارول إذا وافقت أليس وكارول.'
بعد ذلك، تقوم كارول أيضًا بإجراء معاملة TX_1، وهي عبارة عن ضمان 2 من 2 بين كارول وبوب باستخدام بيتكوين الخاصة بكارول. يمكن قراءة هذه المعاملة على النحو التالي: "ستدفع كارول مبلغًا معينًا من البيتكوين إلى بوب إذا وافقت كارول وبوب."'

لتأمين هذه المرحلة، تقوم كارول باسترداد مبلغ TX_0 مع حد زمني محدد، مما سيجعل أليس تستعيد عملة البيتكوين المدفوعة لكارول إذا حدث شيء ما في المستقبل.
تمامًا مثل أليس، تقوم كارول أيضًا باسترداد مبلغ TX_1_refund، مما سيجعل كارول تستعيد عملة البيتكوين المدفوعة لبوب إذا حدث شيء ما في المستقبل. لا يتم إرسال المعاملات TX_0_refund وTX_1_refund إلى الشبكة بواسطة Alice أو Carol. المعاملات المرسلة إلى شبكة البيتكوين في هذه المرحلة هي TX_0 وTX_1.

المرحلة 1
تقوم المرحلة الأولى بإعداد ضمانات المعاملات لجميع المشاركين المعنيين. وهذا يعني أنه إذا أخذ بوب عملات معدنية من كارول، فيمكن لكارول أيضًا سداد الدفعات من أليس. يدعم نظام المعاملات المقفل بالتجزئة هذا المخطط.
في هذا المخطط، يختار بوب الكلمة الأساسية السرية X، ثم يحسب قيمة HX، وهي قيمة التجزئة لـ X بالصيغة HX=H(X) ويرسل HX إلى Alice وCarol. تقوم أليس بإنشاء معاملة جديدة TX_2 والتي ستأخذ العملات المعدنية من TX_0 باستخدام توقيع كارول وقيمة X وتدفعها إلى عنوان كارول. تمامًا مثل أليس، تقوم كارول بإجراء معاملة جديدة باستخدام نظام معاملات مقفلة بالتجزئة TX_3 والذي سيأخذ العملات المعدنية من TX_1 باستخدام توقيع بوب وقيمة X ويدفعها إلى بوب.
في هذه المرحلة، إذا قام بوب بالغش والتقاط العملات المعدنية باستخدام TX_3، فيمكن لكارول أن تأخذ المدفوعات باستخدام TX_2 لأنه يمكن معرفة قيمة X عندما يستخدم بوب TX_3 وينشرها على شبكة البيتكوين.

المرحلة 2
إذا لم يتم إرسال TX_2 وTX_3 إلى شبكة Bitcoin، فيمكن متابعة المرحلة الثانية. في هذه المرحلة، يخبر بوب كارول قيمة X، وتقوم كارول بإجراء معاملة جديدة TX_4 تأخذ العملات المعدنية من TX_1 باستخدام توقيع بوب. يستطيع بوب استخدام معاملة TX_4 للحصول على الدفع. بهذه الطريقة، أجرت أليس معاملة TX_5 من شأنها أن تأخذ عملات معدنية من TX_0 باستخدام توقيع كارول وتدفع لكارول. تستطيع كارول إرسال معاملات TX_5 إلى شبكة البيتكوين للحصول على الأموال.

إذا اكتمل هذا البروتوكول، فسيتم إرسال معاملات TX_4 وTX_5 فقط باستخدام TX_0 وTX_1 إلى شبكة Bitcoin، بينما يتم حذف المعاملات الأخرى ولا يتم إرسالها إلى شبكة Bitcoin.

تعد CoinSwap مثالاً على طريقة الدفع المشروط للمعرفة الصفرية17 التي تحتوي على الميزات التالية:
1. معاملة مقفلة بالتجزئة
2. معاملة مقفلة بالوقت
3. 2 من 2 معاملة الضمان

في CoinSwap، يجب أن تتبع كل خطوة من خطوات البروتوكول الترتيب الصحيح لإنتاج معاملة آمنة ومضمونة دون وجود طرف موثوق به.

مرجع:
16. gmaxwell, CoinSwap: الرسم البياني للمعاملات تداول غير موثوق به
17. بيتكوين ويكي. (2011، 28 سبتمبر 2015), Zero Knowledge Contingent Payment
 -   ديماز أ.و. وأوسكار د., Blockchain من البيتكوين إلى دنيا, الصفحات 105-107، 2017: جساكوم
 -   مراجع أخرى أنظر إلى المشاركة رقم 1