لحظة & أمبير ؛ Feeless – قنوات الفلاش

الهدف من مؤسسة IOTA هو بناء اقتصاد آلي مزدهر ، حيث تتفاعل الآلات وتتعامل مع بعضها البعض بسلاسة. مع IOTA ، قدمنا ​​أول بنية لدفتر الأستاذ الموزعة القابلة للتطوير والتي لا تفرض رسوم معاملات وقادرة على العمل في بيئة إنترنت الأشياء. تكمن قوة IOTA في شبكتها ، حيث تتوسع أفقيًا مع عدد المشاركين في الشبكة الذين يتعاملون مع بعضهم البعض.

على مدار السنوات الأخيرة ، أصبحت حلول Layer-2 (مثل Lightning Network من Bitcoin و Ethereum’s Raiden) حلاً شائعًا لتمكين المعاملات السريعة برسوم معاملات أقل لشبكات Blockchains التقليدية. خلال الأشهر الماضية ، عمل فريق IOTA (أبرزهم بول هاندي ولويس فرايبرغ وكريس دوكاكيس) بجد لتطوير نهج مماثل في IOTA كحل مخصص: قنوات فلاش.

قنوات الفلاش

Flash عبارة عن قناة دفع ثنائية الاتجاه خارج التشابك لتمكين المعاملات الفورية عالية الإنتاجية. في جوهرها ، توفر طريقة للأطراف لإجراء معاملات بتردد عالٍ دون انتظار تأكيد كل معاملة على شبكة IOTA العامة. بدلاً من ذلك ، ستحدث معاملتان فقط على شبكة IOTA الرئيسية: فتح وإغلاق معاملات قناة Flash. يعمل نهج off-Tangle على تقليل النفقات العامة لكل معاملة إلى مستوى ضئيل من خلال إنشاء معاملات موقعة من التشابك ويفتح نموذج معاملة بدون إحساس للتدفق الفوري والرمز.

المعاملات الفورية

عند إنشاء قناة ، يقوم كل طرف بإيداع مبلغ متساوٍ من IOTA في عنوان متعدد التوقيعات يتحكم فيه جميع الأطراف. بمجرد تأكيد الإيداعات الأولية ، لا تحتاج القناة إلى التفاعل مع الشبكة حتى يتم إغلاقها.

بمجرد انتهاء الأطراف من إجراء المعاملات ، يتم نشر الأرصدة النهائية على الشبكة. يمكن أن يقلل هذا الأسلوب من آلاف المعاملات وصولاً إلى معاملتين فقط.

الحوافز الاقتصادية

تعتمد قنوات الفلاش على حافز متساوٍ للأطراف للمشاركة في القناة بحسن نية. الحوافز مطلوبة ، كما هو الحال مع أي سيناريو متعدد التوقيعات ، حيث قد يرفض الطرف الموقع مواصلة توقيع المعاملات.

يحارب Flash هذا عن طريق تقليل المبلغ الإجمالي للرموز المميزة القابلة للمعاملات داخل القناة أثناء استخدامها. يؤدي هذا إلى تقليل الحافز لدى أحد الأطراف لإرفاق حزمة معاملة سابقة لأنه لن يحقق أبدًا نتيجة أفضل من أحدث حالة للقناة.

للتوضيح ، افترض أن طرفين يدخلان قناة بها 50 رمزًا لكل منهما – سيتحكم التجمع في 100 رمز مميز ، ولكن سيتم التعامل مع 50 رمزًا فقط في القناة. عندما يريد أحد المستخدمين إرسال 5 رموز إلى الآخر ، فإنه يقوم أيضًا بإصدار 5 رموز مميزة له ، بحيث يعتبر كل طرف أنه لا يزال لديه حصة مسيطرة تبلغ 45 رمزًا مميزًا. هناك طريقة أخرى للنظر إليها ، وهي أنه إذا اقترح أحد المستخدمين إرسال 10 رموز إلى الآخر ، فإن الآخر قد يعتبر ذلك بمثابة دفع لـ 5 رموز. عند توقيع المعاملات المستقبلية ، يجب أن يرتفع المبلغ في كل من عناوين الإخراج المختارة هذه فقط ، بينما ينخفض ​​المبلغ المرسل إلى العنوان المتبقي فقط.

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

فلاش + WebRTC

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

سيحتوي العرض التوضيحي على 2 من رموز Ki testnet المميزة المودعة فيه لأغراض التوضيح. ما يميز هذا العرض التوضيحي هو أن التجزئة والتوقيع وإثبات العمل والتفاعلات مع شبكة IOTA تحدث جميعها في الوقت الفعلي داخل متصفحك.

يمكنك اختبار العرض التوضيحي هنا. يجب تمكين WebGL لاستخدام هذا العرض التوضيحي (ملاحظة: هذا أفضل تجربة على سطح المكتب. يمكن أن يؤدي استخدام الشبكات الظاهرية الخاصة إلى حظر اتصال WebRTC).

كيف يعمل

يستخدم Flash مخططًا شجريًا لتقليل عدد المعاملات المراد إرفاقها. عادةً يجب إرفاق كل عملية نقل بالتشابك ، مما يتطلب قدرًا كبيرًا من إثبات العمل.

يستفيد هذا الأسلوب من حقيقة أنه يمكن استخدام العنوان مرتين مع البقاء آمنًا بشكل معقول. يتيح لنا ذلك إنشاء شجرة ، حيث تكون الأوراق (أسفل الشجرة) هي المعاملات الفردية التي ستحدث في قناة Flash.

يرتبط الحد الأقصى لعدد المعاملات المطلوبة لتسوية قناة فلاش مباشرة بعمق الشجرة. يتم تحديد العمق أولاً من خلال تقييم عدد المعاملات الفردية التي ستحدث في وضع عدم الاتصال داخل قناة Flash ثم تطبيق log2 (x) على هذا الرقم.

على سبيل المثال: إذا طلبت قناة معاملة 60 ، فستحتاج إلى شجرة بعمق 6 مثل log2 (60) = 5.907 التي سنقوم بتقريبها إلى عمق 6 .

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

على سبيل المثال: في الشجرة الثنائية أعلاه ، لإنشاء معاملة نقوم بإنشاء الحزم المطلوبة للوصول إلى 16. في هذه الحالة الحزم 1،2،4،8 & amp؛ يجب إنشاء 16. لإنشاء المعاملة التالية ، ننتقل بعد ذلك إلى 17 و 18 وما إلى ذلك. وبينما نتحرك عبر الشجرة ، فإننا نولد فقط الحزم المطلوبة للوصول إلى حزمة الأوراق الجديدة.

فتح قناة

بمجرد إدخال عمق القناة ومبلغ الإيداع الأولي لكل مستخدم وعناوين التسوية النهائية لمشاركي القناة ، يتم إنشاء معاملة أولية داخل قناة Flash. تنشئ هذه المعاملة حزمًا لكل عقدة أسفل الشجرة ثم حزمة نهائية مع إيداع كل IOTA للقناة في العنوان المتبقي.

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

إنشاء معاملة

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

عند إنشاء حزمة معاملات جديدة ، ستضيف مكتبة Flash قيمة المعاملة الجديدة إلى رصيد المستخدمين المطلوب ، ثم تضع رصيد القناة المتبقي في العنوان المتبقي.

رفض معاملة

عند إجراء أي معاملة في القناة ، يكون لكل مستخدم حق متساوٍ في رفض إجراء المعاملة. إذا تلقى المستخدم معاملة مقترحة لا يوافق عليها ، فإنه يرفضها من خلال عدم التوقيع على الحزمة.

يمكن أيضًا إعداد القنوات لتكون M من N multisigs. هذا يعني أنه في قناة Flash المكونة من 3 مستخدمين قد يكون مطلوبًا 2 فقط لإنشاء معاملة. هذا مفيد للحالات التي قد تحتاج إلى وسيط موثوق به للمساعدة في نزاعات القناة.

إغلاق قناة

لإغلاق قناة ، يُنشئ المستخدم المقترح حزمة لا تقترح نقل قيمة جديدة. بدلاً من ذلك ، يأخذون رصيد القناة المتبقي ويقسمونه بين مستخدمي القناة وفقًا لنسبة إيداع المستخدم عند فتح القناة. خلال هذه العملية ، يجد المستخدم أقل عدد من الحزم المطلوبة لإغلاق القناة.

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

خاتمة

قنوات الفلاش هي الوحدة الأولى لتوسيع القدرات الأساسية لـ IOTA لتمكين تدفق المعاملات في الوقت الفعلي. تقترن هذه الوظيفة بشكل مثالي مع التسوية السريعة والمجانية لشبكة IOTA للتطبيقات الجديدة والمعطلة في مجال إنترنت الأشياء وما بعده.

في الوقت الحالي ، لا يزال برنامج Flash في مرحلة تجريبية ، لكننا نشجع مطوري التطبيقات على البدء في دمجه في تطبيقاتهم وتزويدنا بالتعليقات المبكرة. سيتم إطلاق بعض التطبيقات الأولى المستندة إلى Flash والتي قمنا بإنشائها بالتعاون مع الشركات الشريكة في أكتوبر ، لذلك ترقبوا.

لمزيد من المعلومات ولمكتبة قنوات الفلاش ، يرجى النقر هنا .

الأسئلة المتداولة:

اعتقدت أن The Tangle يمكنه التوسع ، فلماذا نحتاج إلى قنوات فلاش؟

يمكن توسيع نطاق Tangle بفضل منهجه الجديد في دفاتر الأستاذ الموزعة. نظرًا لنهجها في الإجماع ، يتعين على كل مستخدم متعامل إكمال قدر رمزي من إثبات العمل. هذا العمل ضئيل ولكنه يتطلب وقتًا لإكماله. يزيل Flash هذا عن طريق نقل المعاملات خارج الشبكة حتى يتم إرفاقها ، مما قد يؤدي إلى تقليل آلاف المعاملات إلى معاملتين.

بشكل عام ، IOTA مخصصة للمعاملات ذات الأغراض العامة ؛ في حين أن الفلاش مخصص للتطبيقات الخاصة بحالة الاستخدام حيث يلزم تدفق الرمز المميز بين طرفين.

إذا كانت معاملاتي تتأكد عادة في غضون دقيقتين ، فلماذا سأحتاج إلى سرعة أكبر للمعاملات من ذلك؟

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

هل أحتاج إلى رموز خاصة لاستخدام قنوات الفلاش؟

لاستخدام Flash ، يمكنك استخدام رموز IOTA المميزة القديمة داخل القنوات. لا توجد رموز إضافية مطلوبة لدفع الرسوم لأن الشبكة مجانية.

ما هي تكلفة فتح القناة؟

نظرًا لأن IOTA أمر رائع ، فإن فتح وإغلاق القنوات مجانيان. هذا يعني أنه يمكنك إنشاء قنوات فلاش لفترات قصيرة من الوقت أو بأرصدة صغيرة حيث لا توجد رسوم عند فتح / إغلاق القنوات.

كيف يعمل التوجيه؟

لا يهتم الفلاش بالتوجيه. IOTA هو شعور ، لذلك يمكنك فتح أي عدد تريده من قنوات الفلاش مع الشركاء. يؤدي هذا إلى إزالة متطلبات التوجيه المعقدة التي قد تؤدي في النهاية إلى المركزية.

في العرض التوضيحي ، نستخدم WebRTC لتوصيلك مباشرةً بشريك قناتك. يعمل الخادم فقط لخدمة صفحة الويب وربط الأقران في البداية. لا يلزم وجود وسطاء حتى تعمل القناة.

هل تحتاج إلى عقد خاصة أو تحديثات شبكة حتى يعمل هذا؟

لا. يحدد Flash طريقة معينة يجب أن يتفاعل بها مستخدمان أو أكثر حول محفظة متعددة التوقيع.

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

ما مدى سرعة قنوات الفلاش؟

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

كم من الوقت يستغرق فتح / إغلاق قناة؟

نظرًا لأن Flash يستخدم المعاملات القياسية للفتح والإغلاق ، فيمكنك توقع متوسط ​​تأكيد الشبكة. في وقت كتابة هذا التقرير ، كان المتوسط ​​حوالي 3 دقائق. مع نمو الشبكة هذه المرة ستنخفض.

مهلاً ، اعتقدت أن IOTA ليس لديه أقفال زمنية أو عقد ذكي؟

لا (في الوقت الحالي 😉) ، يعتمد Flash بدلاً من ذلك على استخدام بسيط للحوافز الاقتصادية. بمجرد فرض الطوابع الزمنية ، سنقدم Timelocks إلى Flash.

كيف تمنع الحوافز الاقتصادية المحتالين واللصوص؟

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

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

ما هي بعض حالات استخدام قنوات الفلاش؟

أي تطبيق يتطلب معاملات فورية ثنائية الاتجاه بين طرفين. تتضمن بعض حالات الاستخدام هذه شحن المركبات الكهربائية وعرض النطاق الترددي عند الطلب والموارد الأخرى عند الطلب (مثل الحساب والتخزين وما إلى ذلك) والدفع لكل مقالة وغيرها الكثير. يمكن رؤية أحد الأمثلة التي قدمها مؤخرًا Carsten Stöcker في لقاء برلين لدينا أدناه: