يُجعل نَيوتن التمويل على السلسلة أكثر أمانًا عبر التحقق مما إذا كان ينبغي السماح بعملية ما قبل حدوثها فعليًا.
كلامٌ منصف. يبدو هذا الشيء جيدًا.
لكن توجد نقطة واحدة في الفكرة تظلّ تزعجني: ماذا لو أصبحت عملية التفويض أبطأ من البلوكشين نفسها؟
عادةً ما نُحمّل السلسلة المسؤولية عندما يستغرق الأمر وقتًا طويلًا. تكون الشبكة مزدحمة. تكون رسوم الغاز منخفضة جدًا. يكون المُرتّب مُتأخرًا. تكون العملية عالقة.
لكن مع نيوتن، يمكن أن يبدأ الانتظار قبل أن تصل العملية حتى إلى تلك المرحلة.
ينقر المستخدم زرًا ويرى إجراءً واحدًا على الشاشة. خلف ذلك الزر، قد يحتاج الأمر إلى إنشاء نية (intent)، وإرسالها إلى بوابة (gateway)، والتحقق منها وفق سياسة (policy)، وتقييمها بواسطة عدة مشغّلين، ومقارنتها ببيانات خارجية، وتوقيعها من قِبل عدد كافٍ من المشاركين، ثم تغليفها ضمن شيء يمكن لعقد ذكي التحقق منه.
بعد ذلك تبدأ العملية الحقيقية.
لذلك من وجهة نظر المستخدم، لا يزال الأمر يبدو كعملية واحدة فقط.
لكن من الداخل، هو أقرب إلى نظام موزّع يطلب الإذن من نظام موزّع آخر.
وهذا الفرق مهم.
يُقدَّم التفويض عادةً بوصفه ميزة أمنية. وهو كذلك. يمكن لبروتوكول أن يفرض حدود الإنفاق، وأذونات المحفظة، وشروط الهوية، أو ضوابط المخاطر مباشرةً على مستوى العقد بدلًا من الثقة بواجهة أمامية (frontend) لتتصرف كما ينبغي.
وهذا مفيد فعلًا.
لكن التفويض أيضًا يسبب تأخيرًا.
لديه استدعاءات للشبكة. لديه مهلات (timeouts). لديه مشغّلون قد يستجيبون بسرعات مختلفة. وقد يعتمد على مزوّدي بيانات خارجيين. ولا بد أن يصل إلى نوع من الاتفاق قبل أن يمكن لأي شيء أن يتقدّم.
والتمويل ليس صبورًا بشكل خاص.
تخيّل وكيلًا آليًا يحاول إعادة توازن مركز ما بينما ينخفض السوق. يجد مسارًا، ويتحقق من السيولة المتاحة، ويُحضّر الصفقة. لكن قبل تنفيذها، يحتاج إلى تفويض.
الآن يجب على النظام جمع المعلومات المطلوبة والحصول على عدد كافٍ من المشغّلين للموافقة على الإجراء.
وعندما يحدث ذلك، هل يكون المسار ما يزال متاحًا؟
هل تحرك السعر خارج حد الانزلاق (slippage limit)؟
وهل سبق لأحد أن استغل الفرصة؟
كلامٌ منصف. يبدو هذا الشيء جيدًا.
لكن توجد نقطة واحدة في الفكرة تظلّ تزعجني: ماذا لو أصبحت عملية التفويض أبطأ من البلوكشين نفسها؟
عادةً ما نُحمّل السلسلة المسؤولية عندما يستغرق الأمر وقتًا طويلًا. تكون الشبكة مزدحمة. تكون رسوم الغاز منخفضة جدًا. يكون المُرتّب مُتأخرًا. تكون العملية عالقة.
لكن مع نيوتن، يمكن أن يبدأ الانتظار قبل أن تصل العملية حتى إلى تلك المرحلة.
ينقر المستخدم زرًا ويرى إجراءً واحدًا على الشاشة. خلف ذلك الزر، قد يحتاج الأمر إلى إنشاء نية (intent)، وإرسالها إلى بوابة (gateway)، والتحقق منها وفق سياسة (policy)، وتقييمها بواسطة عدة مشغّلين، ومقارنتها ببيانات خارجية، وتوقيعها من قِبل عدد كافٍ من المشاركين، ثم تغليفها ضمن شيء يمكن لعقد ذكي التحقق منه.
بعد ذلك تبدأ العملية الحقيقية.
لذلك من وجهة نظر المستخدم، لا يزال الأمر يبدو كعملية واحدة فقط.
لكن من الداخل، هو أقرب إلى نظام موزّع يطلب الإذن من نظام موزّع آخر.
وهذا الفرق مهم.
يُقدَّم التفويض عادةً بوصفه ميزة أمنية. وهو كذلك. يمكن لبروتوكول أن يفرض حدود الإنفاق، وأذونات المحفظة، وشروط الهوية، أو ضوابط المخاطر مباشرةً على مستوى العقد بدلًا من الثقة بواجهة أمامية (frontend) لتتصرف كما ينبغي.
وهذا مفيد فعلًا.
لكن التفويض أيضًا يسبب تأخيرًا.
لديه استدعاءات للشبكة. لديه مهلات (timeouts). لديه مشغّلون قد يستجيبون بسرعات مختلفة. وقد يعتمد على مزوّدي بيانات خارجيين. ولا بد أن يصل إلى نوع من الاتفاق قبل أن يمكن لأي شيء أن يتقدّم.
والتمويل ليس صبورًا بشكل خاص.
تخيّل وكيلًا آليًا يحاول إعادة توازن مركز ما بينما ينخفض السوق. يجد مسارًا، ويتحقق من السيولة المتاحة، ويُحضّر الصفقة. لكن قبل تنفيذها، يحتاج إلى تفويض.
الآن يجب على النظام جمع المعلومات المطلوبة والحصول على عدد كافٍ من المشغّلين للموافقة على الإجراء.
وعندما يحدث ذلك، هل يكون المسار ما يزال متاحًا؟
هل تحرك السعر خارج حد الانزلاق (slippage limit)؟
وهل سبق لأحد أن استغل الفرصة؟