هذه المقالة مخصصة للنظر في قنوات الدفع خارج السلسلة: أنواعها ومبادئ التشغيل وميزات التطبيق. ستساعد المواد المقدمة على فهم سبب كون فكرة قنوات الدفع ثورية في أنظمة المحاسبة المالية. سنتحدث عن قنوات الدفع الخاصة ببيتكوين. ستكون هذه المقالة مفيدة لأولئك الذين ليسوا على دراية بمفهوم قنوات الدفع ، كما أنها ستوفر فهمًا لمبادئ شبكة البرق.
قنوات الدفع والمعلومات الأساسية عنها
ما هي قناة الدفع؟
قناة الدفع هي طريقة لإجراء مدفوعات متعددة دون إضافة معاملة إلى blockchain. في الوقت نفسه ، يتفاعل أعضاء القناة مع بعضهم البعض فقط. لا يلزم وجود مدققين إضافيين أو جهات خارجية موثوق بها.
مزايا قناة الدفع
ما هي فوائد قناة الدفع على المعاملات العادية؟
كجزء من قناة دفع مفتوحة بالفعل ، يحصل المشاركون على فرصة لإجراء مدفوعات فورية. يقوم الطرف المتلقي بعملية تحقق مستقلة سريعة ويقبل الدفع. لا توجد عمولات في الإصدار الأساسي. وبناءً على ذلك ، فإن المدفوعات المصغرة لها مكان. وبسبب هذه الميزة ، تسمى قنوات الدفع أيضًا قنوات الدفع المصغر.
ميزة أخرى مثيرة للاهتمام هي أنه يمكن إجراء تفاعل المشاركين في القناة بشكل خاص. وفقًا لذلك ، ستظل تفاصيل كل عملية دفع دقيقة سرية عن أي شخص آخر ، على الرغم من أن حقيقة استخدام قناة دفع بين عناوين بيتكوين محددة ستكون معروفة للجميع.
ميزات قناة الدفع
هذا لا يعني أن قنوات الدفع لديها عيوب خطيرة مقارنة بالمعاملات العادية ، ولكن هناك بعض الميزات المميزة.
يجب فتح قناة الدفع وإغلاقها عاجلاً أم آجلاً. يتم ذلك عن طريق معاملات منفصلة على السلسلة. بالنسبة لهم ، لا بد من دفع عمولة ويتطلب تأكيد معلق. بالنسبة للصفقة الافتتاحية ، من الأفضل انتظار التأكيد الكامل.
داخل قناة معينة ، تتوفر الدفعات فقط في حدود مبلغ محدد مسبقًا. يتم تعيينه من قبل المشاركين أنفسهم ، وتجميد المبلغ المطلوب باستخدام نص بيتكوين خاص.
يمكن أن تكون قنوات الدفع أحادية الاتجاه وثنائية الاتجاه أو أحادية الاتجاه أو ثنائية الاتجاه ، على التوالي. يعتمد ذلك على منهجية تنفيذ القناة نفسها.
قد يكون أو لا يكون عمر القناة والحد الأقصى لعدد الدفعات محدودًا. هذا يعتمد على التقنية. وفقًا لذلك ، يمكن إغلاق القنوات بعد وقت معين أو قبل الموعد المحدد. علاوة على ذلك ، يمكن إغلاق القناة بموافقة متبادلة من المشاركين أو بناء على طلب أحدهم ، ولكن مع بعض الميزات.
في نسخة مبسطة ، يمكن تصوير تشغيل قناة الدفع في مثل هذا المخطط.

هناك شبكة بيتكوين. هناك مستخدمان: أليس وبوب. لديهم محافظ Bitcoin مع وحدة إضافية لقناة الدفع للعمل وفقًا لطريقة معينة. تتبادل هذه الوحدات البيانات للمدفوعات المباشرة.
فكرة لمن؟
لأول مرة ، تم وصف فكرة قنوات الدفع من قبل ساتوشي ناكاموتو نفسه في رسالة شخصية إلى أحد مطوري البروتوكولات النشطين منذ سنوات عديدة. ثم مرة أخرى في Bitcoin ، لم يتم قبول التحديثات المهمة جدًا التي جعلت من الممكن تصميم قنوات دفع موثوقة. ومع ذلك ، أصبح من الممكن في وقت لاحق وعاد في عام 2013 إلى هذه الفكرة الواعدة حقا.
حول طرق تنفيذ قنوات الدفع
سننظر في أربعة منها رئيسية.
قنوات الدفع على غرار Spillman هي أبسط نسخة من قناة ذات اتجاه واحد ذات عمر محدود وعدد غير محدود من الدفعات.
في وقت لاحق ، تم اعتماد تحسين آخر لبروتوكول Bitcoin وأصبحت قنوات الدفع على غرار CLTV ، والتي تمثل طريقة سابقة محسنة ، ممكنة.
قنوات الدفع من Poon-Dryja هي طريقة قناة ثنائية الاتجاه مع وقت تشغيل غير محدود. تتطلب بعض التحديثات الإضافية لبروتوكول Bitcoin التي تم اعتمادها مؤخرًا. بالإضافة إلى ذلك ، يتم استخدام هذه القنوات في تصميم شبكة البرق.
تعد قنوات الدفع المزدوجة Decker-Wattenhofer خيارًا لاستخدام قناتين أحادي الاتجاه في نفس الوقت ، وتحسين خصائصهما من خلال تشكيل ليس سلسلة متسلسلة من المعاملات القابلة للاستبدال ، ولكن شجرة كاملة من المعاملات القابلة للاستبدال. بالإضافة إلى ذلك ، يمكن أن تضم هذه القنوات أكثر من مشاركين.
سوف نتحدث عن أول طريقتين بمزيد من التفصيل ، ولكن أولاً سنكرر بعض ميزات بروتوكول Bitcoin.
بعض من بروتوكول Bitcoin
nLockTime هو حقل في نص كل معاملة يحتوي على طابع زمني أو رقم كتلة. قبل هذا الوقت أو ارتفاع blockchain ، لا يُسمح للمصادقون بتضمين معاملة في كتلة.
nSequence هو حقل في كل إدخال معاملة يحتوي على قيمة الوقت التي يتعذر خلالها تأكيد هذه المعاملة. علاوة على ذلك ، يتم حساب الوقت نسبة إلى الوقت الذي تم فيه تأكيد الإخراج الذي ينفقه هذا المدخل.
يسمح MultiSignature بتعيين مثل هذه الشروط عند الخروج من المعاملة ، والتي بموجبها من الضروري تقديم العديد من التوقيعات الإلكترونية. سيتم التحقق من هذه التوقيعات بواسطة مفاتيح عامة محددة.
قنوات الدفع على غرار Spillman
لذا ، فإن قنوات الدفع بأسلوب Spillman هي طريقة لإنشاء قنوات دفع أحادية الاتجاه حيث يوجد دور المرسل ودور المستلم. يتم تحديد وقت تشغيل هذه القناة بشكل تعسفي من قبل المرسل ، بينما يمكن للمستقبل إغلاق القناة قبل الأوان.
دعونا نلقي نظرة على الخطوات الرئيسية لهذه القناة في الرسم البياني.

للراحة ، تخيل أن هناك بعض الخدمات التي تتاجر بالوصول إلى الشبكة العالمية عبر نقطة وصول wi-fi ، وبعض العملاء الذين يريدون الوصول إلى الشبكة لمدة يوم واحد. ستكلف الخدمة بيتكوين واحد. من الواضح أن العميل لا يثق في الخدمة لمثل هذا المبلغ ويريد أن يدفع مقابل حركة المرور في الثانية.
ثم قرروا فتح قناة دفع ليوم واحد بمبلغ بيتكوين واحد. تقوم الخدمة بإنشاء زوج مفاتيح جديد للتوقيع الإلكتروني ونقل المفتاح العام للعميل. يقوم العميل بدوره بإنشاء زوج مفاتيح جديد ويستخدم مفتاحه العام والمفتاح العام للخدمة لتشكيل العنوان متعدد التوقيع 2-من 2. علاوة على ذلك ، يشكل العميل المعاملة رقم واحد ، حيث يرسل بيتكوين واحدًا إلى عنوان متعدد التوقيع ، ويوقع عليه ، لكنه لا يوزعه على شبكة بيتكوين ، حيث يمكن للخدمة استبدال العميل ورفض التوقيع على أي معاملات لمزيد من تحويل بيتكوين واحد.
لذلك ، يشكل العميل المعاملة رقم 2 ، حيث يتم إرسال العملات المعدنية ذات العناوين المتعددة إلى العنوان الذي يتحكم فيه. علاوة على ذلك ، فإنه يقوم بتعيين حقل nLockTime بحيث يمكن تأكيد المعاملة في يوم واحد. لا يوقع على هذه الصفقة ، بل يرسلها إلى الخدمة. في المقابل ، توافق الخدمة على أنه يمكن للعميل التقاط العملة بأكملها لنفسه ، ولكن ليس قبل يوم واحد ، وتوقيع المعاملة بمفتاحه. يمرر التوقيع للعميل ويتحقق منه العميل. الآن لديه الفرصة للتوقيع المسبق على الصفقة بمفتاحه ويضمن استرداد العملة مرة أخرى إذا قررت الخدمة رفض الخدمة.
في الخطوة التالية ، يوزع العميل المعاملة رقم واحد على شبكة Bitcoin أو ينقلها إلى الخدمة للتوزيع إذا لم يكن لديه الاتصال نفسه. بعد تأكيد المعاملة الأولى ، تعتبر قناة الدفع مفتوحة.
في هذه الحالة ، تسمى المعاملة رقم واحد معاملة تمويل ، والثانية هي استرداد المعاملة.
كيف يتم التفاعل في الحسابات داخل قناة الدفع؟ دعونا نلقي نظرة على الرسم البياني التالي.

لإرسال الدفعة الأولى ، يطلب العميل من Bitcoin عنوان الخدمة التي يتحكم فيها بشكل مستقل. علاوة على ذلك ، يشكل العميل المعاملة رقم ثلاثة ، حيث يتم توزيع عملة ذات عنوان متعدد التوقيع بين ناتجين: الأول هو الدفع إلى عنوان الخدمة في ثانية واحدة من تشغيل نقطة الوصول ، والثاني هو التسليم إلى عنوان العميل الخاص. يوقع العميل المعاملة رقم ثلاثة بمفتاحه ويرسلها إلى الخدمة. تتحقق الخدمة من صحة المعاملة والتوقيع ، وبعد ذلك تقبل الدفع ، لأنه يمكنها إعادة التوقيع على هذه المعاملة بمفتاحها الخاص ويضمن تلقي الدفع للثانية الأولى من حركة المرور إذا فعلت ذلك في غضون 24 ساعة. ولكن إذا كانت الخدمة تعتزم الاستمرار في تقديم الخدمة للعميل وتلقي الدفع داخل القناة ، فإنها ببساطة تحفظ المعاملة رقم ثلاثة محليًا حتى يتم إغلاق القناة.
لإرسال جميع المدفوعات اللاحقة ، يغير العميل ناتج المعاملة رقم ثلاثة ، على التوالي ، ويعيد توقيعها وينقل فقط التوقيع ومبلغ التغيير إلى الخدمة. تقوم الخدمة أيضًا بفحص البيانات المستلمة وحفظ الإصدار الجديد من المعاملة رقم ثلاثة ، لأنه في هذا الإصدار تتلقى المزيد من العملات المعدنية.
كيف يتم إغلاق القناة؟

يوضح الرسم البياني أنه يجب أن يكون لدى الخدمة الوقت لنشر أحدث إصدار من المعاملة رقم ثلاثة على شبكة Bitcoin قبل نهاية وقت تشغيل القناة. خلاف ذلك ، يمكن للمرسل الغش والتوقيع المسبق ونشر المعاملة رقم 2 ، حيث سيأخذ المبلغ بالكامل إلى عنوانه.
تجدر الإشارة إلى أنه يمكن للعميل نشر معاملة استرداد في أي وقت أثناء تشغيل القناة. ستعتبر الخدمة مثل هذا السلوك ساذجًا. لذلك ، يراقب باستمرار مظهر هذه المعاملة على الشبكة ، وإذا تم اكتشافه ، فإنه ينهي العقد مع العميل ، ويغلق القناة قبل الموعد المحدد من خلال نشر أحدث نسخة من المعاملة رقم ثلاثة.
قنوات الدفع على غرار CLTV
دعونا الآن نلقي نظرة على نسخة محسنة من هذه الطريقة ، وهي قنوات الدفع على غرار CLTV.
أصبحت طريقة قنوات الدفع هذه قابلة للتطبيق بعد إجراء تحديث softfork Bitcoin بإضافة رمز برنامج نصي جديد - OP_CHECKLOCKTIMEVERIF. تكمن خصوصيته في أنه الآن في مخرجات المعاملة ، يمكنك تعيين مثل هذه القواعد وفقًا للعملة التي يمكن إنفاقها فقط في معاملة مع معلمة nLockTime المحددة التي لا تقل عن المحدد. في الواقع ، هذا يعني أنه ، من بين شروط أخرى ، لا يمكن إنفاق العملات المعدنية إلا بعد فترة زمنية معينة. الآن ، باستخدام عمليات تفريع الشرط النصية ، أي IF-ELSE ، يمكنك تعيين شروط إنفاق مختلفة بناءً على الوقت. ميزة قنوات الدفع هذه مقارنة بالقنوات السابقة هي أنك لست بحاجة إلى إنشاء معاملة استرداد. بدلاً من ذلك ، يمكنك تحديد شرط مزدوج لإنفاق العملات المعدنية في البرنامج النصي الناتج لمعاملة التمويل. أي أنه قبل موعد إغلاق القناة ، يمكن إنفاق العملات المعدنية وفقًا لقواعد التوقيع المتعدد ، وبعد إغلاق توقيع واحد يكفي.
كيف يتم تطبيق قنوات الدفع؟
هناك خياران: إما في شكل نقي للمدفوعات المنتظمة بين الأطراف المحددة مسبقًا ، أو تشكيل شبكة برق عن طريق تبديل القنوات فيما بينها. يعني التبديل إمكانية إجراء دفعة بين المستخدمين الذين لم يفتحوا قناة دفع مع بعضهم البعض ، ولكن لديهم قنوات مفتوحة مع المشاركين الآخرين في الشبكة. ثم يتم نقل القيمة من خلال سلسلة من القنوات للمشاركين غير المصرح لهم ، إن وجدت.
في حالة شبكة البرق ، هناك صعوبات وميزات إضافية. هذا هو تطوير تنسيق مقبول بشكل عام لتبديل القنوات وعقد بروتوكول الاتصال. من المهم أن تعمل المحافظ من بعض المطورين مع المحافظ من الآخرين. التحدي الآخر هو مشكلة التوجيه على هذه الشبكة. المهمة هي أنك تحتاج إلى العثور على أقصر طريقة لتحويل القيمة ، مع الأخذ في الاعتبار حقيقة أنه في كل قناة هناك قيود على مقدار التحويل في كل اتجاه.
ميزات الشبكة
في الرسم البياني التالي ، دعونا نلقي نظرة على ميزات شبكة Bitcoin وشبكة البرق.

في شبكة Bitcoin ، تتبادل العقد البيانات حول المعاملات والكتل ، بالإضافة إلى عناوين الشبكة لبعضها البعض. في هذه الحالة ، يتم التوصل إلى توافق في الآراء وتشكيل قاعدة بيانات مشتركة. بالإضافة إلى العقد الكاملة ، هناك عقد خفيفة الوزن في شبكة Bitcoin التي تتلقى فقط المعلومات التي تحتاجها ، دون معالجة وتخزين السجل بأكمله.
في شبكة البرق ، لا تتبادل العقد المعاملات الجاهزة ولا تتوصل إلى إجماع. ولكن من المهم أيضًا بالنسبة لهم تحديث المعلومات حول حالة بعضهم البعض وتبادل الرسائل للحفاظ على العمل داخل قنوات الدفع. وتجدر الإشارة إلى أن شبكة البرق لن تكون متجانسة أيضًا ، بمعنى أنه ستكون هناك عُقد ذات حمل أقل وأقل ، بالإضافة إلى عقد ذات نشاط غير مستقر. على الأرجح ، سيكون هناك محاور في الشبكة ، وعقد بها عدد كبير من قنوات الدفع المفتوحة ، وسيتعين عليهم التعامل مع حمولة كبيرة. وسيفتح المستخدمون العاديون في أحسن الأحوال قناة واحدة أو قناتين للدفع ، ومع أحد هذه المحاور.
سيحدث هذا ، لأنه لفتح كل قناة دفع ، تحتاج إلى تجميد عدد معين من العملات المعدنية ، ثم يمكنك فقط قبول المدفوعات وإرسالها في حدود مبلغ محدود. إذا قام مستخدم عادي بتقسيم عملاته المعدنية إلى عدة أجزاء وفتح عدة قنوات ، فإنه في الواقع سيحصل على نافذة صغيرة جدًا للدفع في كل قناة مقارنة بالمبلغ الأصلي. في الوقت نفسه ، ستعمل المنظمات الكبيرة مثل مطوري المحفظة أو البورصات المركزية أو التجار المشهورين كمحاور. يمكنهم الحفاظ على عدد كبير من القنوات المفتوحة لكميات كبيرة ولفترات طويلة من الزمن دون الاتصال بالإنترنت.
قضايا ساخنة
فكر في الأسئلة الشائعة حول قنوات الدفع وشبكة البرق.
- ما مدى موثوقية المدفوعات في القنوات مقارنة بمعاملات البيتكوين العادية؟من خلال الموثوقية ، يمكن مقارنة المدفوعات في القنوات بالقنوات العادية ، أي أنه لن يتم سحب العملات المعدنية ولن يتم إلغاء المدفوعات. ولكن هناك عدد من الميزات مثل الحاجة إلى فتح وإغلاق القنوات في الوقت المناسب ، والقيود على المبلغ داخل القناة ، والحاجة إلى التزامن المستمر مع شبكة Bitcoin ، واحتمال تجميد العملات المعدنية لفترة من الوقت.
- هل عرض النطاق الترددي في القنوات وشبكة البرق محدود؟والحقيقة هي أنه لا يوجد قيود ، ولكن قد يكون هناك تأخيرات مرتبطة بمعالجة القناة واستطلاع الشبكة وبناء المسار ، والتي تعتمد على أداء مشاركين محددين. بالإضافة إلى ذلك ، يمكن أن تكون العقد غير متصلة بالإنترنت بشكل غير متوقع ، مما قد يكون له بعض القيود في إجراء المدفوعات من قبل المشاركين الآخرين.
- هل يجب أن يثق أعضاء القناة ببعضهم البعض؟لا ، فإن آلية قنوات الدفع توفر الحماية ضد أي أعمال ضارة من الأطراف المتفاعلة.
- ما هو استخدام القنوات لمن يريد إرسال دفعة واحدة فقط؟إذا كان الشخص يريد التخلص من أحدث العملات المعدنية ولم يعد يخطط لقبول المدفوعات وإرسالها ، فمن غير المنطقي فتح قناة ، فأنت بحاجة إلى إرسال معاملة عادية على السلسلة. في جميع الحالات الأخرى ، سيكون من المفيد فتح قناة.
إحدى محاضرات دورة Blockchain عبر الإنترنت "
قنوات الدفع خارج السلسلة " مخصصة أيضًا لهذا الموضوع.