Author

Topic: Bitcoin المدفوعات الصامتة واضافتها لنواة (Read 52 times)

member
Activity: 60
Merit: 30
المدفوعات الصامتة


مقدمة


في هذا الموضوع ، أود مناقشة اقتراح مثير للاهتمام من قبل Ruben Somsen يسمى "المدفوعات الصامتة" ، وهي تقنية لتحسين الخصوصية تهدف إلى جعل المدفوعات بين طرفين على blockchain أقل شفافية لأي  شخص خارجي . وهي تقوم على مفاهيم مثل "عناوين التخفي"(stealth addresses) و "رموز الدفع القابلة لإعادة الاستخدام"(reusable payment codes) وتحاول بشكل أساسي حل نفس المشكلة ولكن بطريقة أكثر أناقة.

الفكرة الأساسية

هي التالية: ينشر المستخدم"A" بعض المعرفات)عادةً ما يكون مفتاحًا عامًا "public key") ، ويجمع المستخدمB " " مفتاحه الخاص" "private keyمع المفتاح المنشور  "A " وينشئ عنوانًا فريدًا يمكن أن ينفق"A "   منه فقط. المستخدم C يمكنه أيضًا إرسال أموال إلى المستخدم "A "  من خلال دمج مفتاحه الخاص مع عنوان "A "  واشتقاق عنوان فريد آخر. سيعرف المستخدم "A "  أن كلا من المستخدمين  "B" و "C"أرسلوا له أموالاً ، لكن " B" و "C" لن يعرف كل منهما الآخر. لذلك ، يسمح ذلك للمستخدم "A"تلقي المدفوعات على عناوين مفكوكة تمامًا باستخدام عنوان عام واحد فقط.

آلية العمل :

لنفترض أن بوب يريد إرسال دفعة صامتة إلى أليس.

1) تنشئ أليس معرفًا فريدًا (على سبيل المثال ، مفتاح عام) باستخدام رياضيات المنحنى الإهليلجي القياسي"standard elliptic curve mathematics":

A = a * G , حيث

A- مفتاح أليس العام (نقطة على منحنى elliptic curve  )
أ - مفتاح أليس الخاص (رقم عشوائي يجب الاحتفاظ به في السر)
G - نقطة المولد (نقطة محددة مسبقًا على elliptic curve )

2) تجعل أليس هذا المعرف علنيًا حتى يتمكن بوب (وأيضًا مستخدمون آخرون مثل كارول) من معرفة مكان إرسال المدفوعات.

3) يختار بوب أحد المدخلات التي يتحكم فيها والتي تحتوي على مفتاح عام

B = b * G ، حيث

B - المفتاح العام لبوب (نقطة على elliptic curve )
ب - مفتاح بوب الخاص (عدد صحيح عشوائي لا يعرفه سوى بوب)
G - نقطة المولد.

4) يأخذ بوب مفتاح أليس العام A   وينشئ مفتاحًا عامًا جديدًا باستخدام الصيغة التالية:

A '= hash (b * A) * G + A ، حيث

A' - مفتاح عمومي يتم الدفع ل بوب من أجله

5) يقوم بوب بالدفع إلى أليس لإنشاء مخرجات مرتبطة بمفتاح عام تم إنشاؤه مسبقًا A ' .

6) بالنظر إلى أن b * A = b * a * G = a * b * G = a * B ، يمكن لأليس إعادة بناء نفس المفتاح العام A ' باستخدام مفتاحها الخاص a بالصيغة التالية:

A' = (hash(a*B) + a)*G، حيث

(hash(a*B) + a)* - هو مفتاح أليس  الخاص الجديد الذي يسمح لها بإنفاق الأموال من الإخراج المقابل للمفتاح العام A ' .

ومع ذلك ، فإن المشكلة هي أن أليس بحاجة إلى معرفة مفتاح بوب العام B لاكتشاف مدفوعاتها ، ولهذا السبب تقوم باستمرار بمسح blockchain في محاولة لمعرفة أي من المفاتيح العامة يمكن دمجها مع مفتاحها الخاص a  لإعادة بناء عناوين البيتكوين الحالية.


الإيجابيات:

1) لا حاجة للتفاعل بين المرسل والمستقبل. لكي يقوم المرسل بالدفع ، يحتاج فقط إلى إنشاء عنوان واحد من المفتاح العام الصامت للمستلم.

2)المدفوعات الصامتة تستخدم مساحة البلوك  بشكل أكثر كفاءة حيث لا توجد حاجة لأي معاملات "إعلان" ، كما في حالة BIP47. لذلك ، فإن المعاملة الواحدة تساوي دفعة واحدة ، وهي مثالية للتبرعات لمرة واحدة

3) لا يمكن تمييز المعاملات الصامتة عن المعاملات العادية (على سبيل المثال ، لا توجد مخرجات OP_RETURN لمشاركة مفتاح عام سريع الزوال كما في حالة "عناوين التخفي") ، مما يعني أنه من التافه للمستخدمين أن يختبئوا وسط الحشد - مجموعة إخفاء الهوية هي سلسلة الكتل بأكملها.

4) تكون العناوين المشتقة من المفتاح العام الصامت الأولي حتمية وفريدة دائمًا لأن كل مرسل يستخدم مفاتيحه الفريدة لتعديل المفتاح العام الصامت للمستلم.

5) تحفز المدفوعات الصامتة متلقي الأموال على تشغيل عقدة Bitcoin الكاملة الخاصة بهم ، مما ينتج عنه تلقائيًا شبكة أكثر لامركزية.

6)لن يعلم أحد ، باستثناء مرسل المعاملة ومتلقيها ، أن الدفع قد تم بالفعل.

7) المدفوعات الصامتة تحسن بشكل كبير من قابلية التبادل لمعاملات البيتكوين.

السلبيات:

1) أكبر عيب في هذه التقنية هو تكلفة التحقق المرتفعة نسبيًا. نظرًا لأن مستلم المدفوعات لا يعرف مسبقًا عناوين البيتكوين التي يمكن إنفاقها باستخدام مفتاح خاص يتحكم فيه ، فعليه التحقق من كل إدخال لكل معاملة ، وحساب المفاتيح العامة ومقارنتها.

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


المراجع:

1] https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8
2] https://github.com/genjix/bips/blob/master/bip-stealth.mediawiki
3] https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki
4] https://en.m.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman
5] https://bitcoinops.org/en/newsletters/2022/04/06/
6] https://bitcoinmagazine.com/technical/bitcoin-silent-payments-secret-keys
7] https://bitcoinmagazine.com/technical/improving-bitcoin-privacy-with-silent-payments
8] https://gist.github.com/w0xlt/72390ded95dd797594f80baba5d2e6ee


وقد تم بالفعل اعطاء ال Pull request  ليتم التعديل في مستودع ال Github ليتم اضافة المدفوعات الصامتة الى نواة البيتكوين Bitcoin Core : https://github.com/bitcoin/bitcoin/pull/27827


الموضوع الأصلي :
https://bitcointalksearch.org/topic/silent-payments-5400363
Jump to: