تقييد المحتوى: كيف عالجت Cartesiمشكلة قابلية تطوير blockchain حقًا..
SH
2022-01-06
CARTESI
تواجه Ethereum و الblockchains المماثلة أزمة قابلية التوسع حيث يعد تقييد Ethereum أمرًا ضروريًا للاستفادة من الشبكة واعتمادها ، ومن المؤكد أن رسوم المعاملات الحالية ليست بناءة لتحقيق هذه الغاية فمن المستحيل صنع أي شيء باستثناء أبسط DApps.
لقد ثبت أن هذه المشكلة الشائعه يصعب حلها دون المساومة على الأمن واللامركزية.
..قال" Piet Hein "((إن المشكلة التى تواجه بالهجوم عليها تثبت جدواها لاحقا من خلال كفائتها)) ، ومن المؤكد أن قابلية تطوير blockchain كانت بمثابة صدمة كبيرة ومع ذلك ، فإن المناقشات الحالية حول قابلية التوسع تفتقد عمومًا إلى فكرة أساسية ، والتي ربما تكون بنفس أهمية زيادة إنتاجية المعاملات وخفض الرسوم فقيود المعالجة في blockchain ليست القيد الوحيد الذي يجعل تطبيقات DApp المعقدة مستحيلة والخطأ التركيز فقط على قابلية التوسع الحسابي ؛ لإنشاء هذه DApps المستحيلة ، يجب علينا أن نفعل أكثر من ذلك فهناك قيد ثانٍ موجود في Ethereum والذي يجب معالجته لمعالجة مشكلة قابلية التوسع حقًا: وهو قابلية توسعة المحتوى بحد ذاته لشرح ما تعنيه قابلية تطوير المحتوى سنقتبس جزء من مقالة فريدريك هايك الأساسية "استخدام المعرفة في المجتمع":
نحن نستخدم باستمرار الصيغ والرموز والقواعد التي لا نفهم معناها ومن خلال استخدامها نستفيد من المعرفة التي لا نملكها بشكل فردي.
هذه الفكرة ، على الرغم من كتابتها عن الحضارات ، يجب أن تبدو مألوفة بشكل مباشر للمبرمجين. بصفتنا مطوري برامج ، فنحن سادة الabstractions نقوم بإنشائها من خلال دمج وتثبيت الجمل البرمجية(الاسكربت)فوق بعضها بما يتناسب مع مهمة ما والتي أثبتت بالفعل نجاحها على مستواها الخاص ودون الحاجة إلى التفكير في كيفية تنفيذها. يحتوي هذا النظام البيئي عل abstractions الطبقية التي أنشأناها من أسفل إلى أعلى على المعرفة الجماعية لمجال علوم الكمبيوتر بأكمله وهو الأساس الذي يتم على أساسه تطوير البرامج. بهذا المعنى ، يمكن اعتبار abstractions في علوم الكمبيوتر بمثابة تنسيق للمحتوى فهي عملية لإخفاء المعلومات ، حيث يتم إخفاء التطبيق الأساسي عن المستخدم ويتم الوصول إليه من خلال واجهة ومن خلال عملية إخفاء المعلومات هذه ، يتمثل التنسيق في علوم الكمبيوتر في توسيع المحتوى.
قال ألفريد وايتهيد إن "الحضارة تتقدم من خلال زيادة عدد العمليات المهمة التي يمكننا إجراؤها دون التفكير فيها" ، ويمكن قول الشيء نفسه عن التكنولوجيا بجميع أنواعها. على سبيل المثال ، خذ شيئًا بسيطًا مثل قيادة السيارة ، والذي يمكننا القيام به دون تفكير. حاول الآن تخيل مقدار التكنولوجيا التي دخلت في صناعة السيارة المذكورة. تخيل عدد الساعات التي استغرقها المصممين لتصميم محرك السيارة وعقود المعرفة المتراكمة التي يحتوي عليها ويمكننا تطبيق هذا حرفيا وبشكل متكرر على المكونات الفرعية للمحرك والأدوات المستخدمة في بنائها ؛ يقوم كل منهم بإخفاء معلومات حول النظام الفرعي الأساسي وتمكين الطبقة التالية من إجراء المزيد من العمليات دون التفكير فيها.
...قيادة السيارة...
هل فكرت يوما عدما أدرت مفتاح السياره وبدأ عمل المحرك والأجهزة الداخلية وايضا الشاشة الأمامية للمؤشرات الخاصة بالوقود والزيت..الخ وفي السيارت الاكثر تقدما نرى الGPS والتحكم الكامل بالابواب وبمكيف الهواء وهكذا..نلاحظ أن هناك مهمات كثيرة بدأ تنشيطها بل وعملها بمجرد إدارة مفتاح السياره..حتى مع عدم إدراك بعضنا بالكامل ميكانيكية تنفيذ هذه المهام أو ترابطهم سويا كشخص مستخدم للسيارة فهذا من اختصاص المصممين وايضا فهذه سمة حاسمة للأنظمة المعقدة من صنع الإنسان. لقد تم إنشاؤها بطريقة تراكبية فوق الأنظمة الفرعية الأخرى ، وهي منظمة بطريقة تخفي فيها كل طبقة معلومات حول ما يوجد تحتها. تشكل هذه الطبقات ما نسميه المحتوى. ومن خلال عملية تنسيق الطبقات هذه ، يوسع المرء المحتوى.
ففي البرنامج ، يمكن للمرء أن يلاحظ بنية abstractions ذات الطبقات هذه في النظام البيئي الحالي. هذه المجموعة ، المكونة من ، وأدوات ، وأنظمة تشغيل، ومترجمين ، والعديد من المكونات الأخرى ، كل منها تلخص النظام الأساسي وتوسع ما يمكن للمرء أن يفعله دون تفكير.
البرمجيات الحديثة معقدة جدا فيجب أن نستفيد من مساعدة المعرفة التي لا نملكها بشكل فردي. تحقيقًا لهذه الغاية ، نستفيد من المحتوى الذي تم تجربته واختباره والذي تمت تكراره مرارًا وتكرارًا على مدار العقود الماضية ، دون الحاجة إلى كتابته أو فهم أعمالهم الداخلية بأنفسنا.
ففي Cartesi ، نبني حل قابلية التوسع الخاص بنا. تكمن في جوهرها هذه الفكرة الحاسمة المتمثلة في زيادة عدد العمليات المهمة التي يمكن للمرء القيام بها دون التفكير فيها ولكتابة DApps المستحيل يجب أن يكون هناك محتوى قابل للتوسع. لا تتمتع تقنيات blockchain الحالية بهذه الخاصية. تعد أجهزة الكمبيوتر التي يتم تنفيذ العقود الذكية من خلالها جديدة ومن جميع النواحي السيئة. لا يمكن تشغيل أي من البرامج المطورة على مدى الأربعين عامًا الماضية عليها. ليس هناك نظام بيئي يمكن التحدث عنه ولا محتوى بأي شكل من الأشكال ولإنشاء أنظمة معقدة في Ethereum ، سيتعين على المرء بناء جميع abstractions من الألف إلى الياء ، مما يتطلب معرفة لا يمتلكها أي فرد. ( بمعنى أنها تحتاج مبرمج يعمل من الصفر عل مشروع البرمجة هذا دون استخدام اسكربتات جاهزة مسبقة الاستخدام يجب أن يصممها بنفسه لتكون فريدة من نوعها وهذا يتطلب مجهود خارق وقد تحتاج فريق عمل بالكامل )
تخيل هذا السيناريو الافتراضي للذهاب إلى متجر كمبيوتر لشراء جهاز كمبيوتر جديد لقد عُرض عليك إصدارًا فائق السرعة تم إصداره للتو ، ولكن لا يمكنه تشغيل أي شيء موجود اليوم: التطبيقات، والأدوات ، وأنظمة التشغيل والمترجمات الفورية ، سمها ما شئت. يمكنه فقط تشغيل تطبيقاته الخاصة لمحاكاة آليه تصميمه الخاص ايضا، يمكن للبائع محاولة إقناعك بقوله.." أنه رائع عليك تجربته".. ولكن ستحتاج إلى تثبيت برامج جديدة ، من الألف إلى الياء ، لهذا الكمبيوتر المحدد". وهو ، من نواح كثيرة وعلى الرغم من روعة هذا الأداء الفائق والمتطور ، فإن مثل هذا الكمبيوتر سيكون عديم الفائدة. هناك سبب وراء تجاوزنا لممارسات البرامج القديمة. بدون أي من أفكار abstractions التي تم بناؤها بشق الأنفس وتكرارها على مدى العقود الماضية ، لن يفكر أي شخص في راجح العقل في شراء مثل هذا الكمبيوتر فلا يوجد محتوى لهذا الكمبيوتر على أي مستوى.
تشبه عقود Ethereum الذكية إلى حد كبير هذا الكمبيوتر ، إلا أنها أيضًا بطيئة للغاية. حلول قابلية التوسع مهيأة لكسر قيود المعالجة الموجودة في هذه العقود الذكية. ومع ذلك ، دون معالجة قابلية توسيع المحتوى أيضًا ، فإن فائدتها محدودة نوعًا ما ؛ التركيز فقط على قابلية التوسع الحسابي في غير محله.
تخيل تشغيل خوارزمية الإنهاء وإلغاء الإنهاء. هذه مهمة تافهة على أجهزة الكمبيوتر التي نستخدمها كل يوم. نحن فقط ننشط الاوامر الكاملة ذات الصلة ، التي تم اختبارها في المجال سابقة ونقوم بإستخدام واحدة منها ، مستفيدين من عقود من المعرفة المتراكمة التي لا يمتلكها أي فرد. ومع ذلك ، فإن مثل هذه المهمة مستحيلة على blockchain. لا توجد قوة حسابية للقيام بذلك ، ولا توجد تطبيقات لها. إن معالجة القضية الأولى فقط لا يكفي ؛ سيكون لدينا جهاز كمبيوتر سريع ولكن لا يوجد محتوى. كيف يمكننا معالجة هذه المعيقات؟
الجدير بالذكر أنه يمكن لـ Cartesi تطوير عقود ذكية مع Python أو Rust أو OCaml أو JavaScript أو C ++ أو Java أو جميعها ، جنبًا إلى جنب مع جميع النظم البيئية المدمجة والتطبيقات الحالية.
في الوقت الحالي ، يعد الحل التجميعي الأكثر أهمية لقابلية التوسع بالنسبة إلى Ethereum ، مع العديد من التصاميم والتطبيقات المتنافسة. لقد كتب فيتاليك بوتيرين دليلًا رائعًا حول هذا الموضوع ، يمكن العثور عليه هنا. تتمثل الفكرة الأساسية للتجميعات في تحويل الجزء الأكبر من الحساب من blockchain إلى بروتوكول الطبقة 2 ، باستخدام blockchain للتحقق من الأدلة على أن ما تم تنفيذه خارج السلسلة يتبع القواعد. هذا التحول من الطبقة 1 إلى الطبقة 2 يقلل بشكل كبير من تكلفة العمليات الحسابية ، لأن تشغيل الأشياء على السلسلة مكلف للغاية. ولكن لمعالجة مشكلة قابلية التوسع حقًا ، يجب علينا أيضًا معالجة قابلية توسيع المحتوى. لإنشاء DApps فريدة ، يجب أن يكون المرء قادرًا على الاستفادة من المعرفة المتراكمة الموجودة في النظم البيئية للتنمية الحديثة.
في Cartesi ، نعمل على تطوير حل التجميع الخاص بنا ، والذي يمثل إجابتنا على مشكلة قابلية التوسع. على عكس الحلول الأخرى ، نجلب قابلية تطوير المحتوى إلى القاعدة ، بالإضافة إلى قابلية التوسع الحسابى لتوسيع نطاق المحتوى هي سحب Ethereum عل نفس الكمبيوتر الذي نعمل معه يوميًا ، واستخدامه كبنية أساسية لـ DApps التي كانت مستحيلة سابقًا. المدرج في هذا الكمبيوتر عبارة عن عقود من المحتوى الثري والمتكامل الذي تم اختباره في المجال كثيرا ، وباستخدامه ، يمكننا تشغيل مكدس التطوير الحديث بالكامل داخل blockchain.
خلاصة القول ، لقد وضعنا Linux وجميع سلاسل أدواته داخل Ethereum. لم يعد المرء مستسلمًا لـ Solidity ، مقيدًا بجهاز كمبيوتر باهظ التكلفة ؛ الآن يمكننا استخدام نظام تطوير بيئي حديث يعمل على جهاز كمبيوتر سريع. لدينا عقود من المحتوى داخل blockchain. يمكننا حقًا استيراد التطبيقات واستخدامها ، ضمن لغة البرمجة المفضلة لدينا للتمهيد. قد تتساءل كيف فعلنا هذا؟ لقد وضعنا Linux وجميع أدواته داخل Ethereum. ونحن لا نقتصر حتى على لينكس. يمكن الاستفادة من أنظمة التشغيل الأخرى مثل seL4 ، وهو نواة مفتوحة المصدر تركز على الأمان مع إثبات شامل لصحة التنفيذ ، من خلال تقنيتنا. يمكننا تطوير عقود ذكية مع Python أو Rust أو OCaml أو JavaScript أو C ++ أو Java أو جميعها ، جنبًا إلى جنب مع جميع النظم البيئية المدمجة والتطبيقات الحالية. يمكننا حتى استخدام قواعد البيانات الفعلية. لا يمكن المبالغة في فوائد ذلك: نحن نستخدم المعرفة التي لا نمتلكها بشكل فردي ، والمدرجة في برمجيات ، وأنظمة تشغيل سابقة تم اختبارها بالفعل من قبل.
من الأمثلة الملموسة التي تُظهر قوة Cartesi هي لعبة Texas HODL’em ، وهي لعبة بوكر لامركزية. إنها تستفيد من حافظة LibTMCG لتنفيذ منطق لعبة البطاقة الذهنية فلا يمكن تشغيل خوارزميات مكثفة من هذا النوع على الطبقة الأولى: فالكمبيوتر بطيء جدًا. بالإضافة إلى ذلك ، فإن مجرد نقلها إلى طبقة 2 أسرع لا يكفي. إن تعقيد فهم تعقيدات التشفير الذهني للبوكر ، ثم كتابة إعادة تنفيذ قوية لـ LibTMCG في Solidity يجعل هذا التطبيق DApp مستحيلاً. فمع مجموعات Cartesi يمكننا فقط استيراد هذه الحافظة الموجودة بالفعل من لغة البرمجة المفضلة لدينا واستخدامها بشكل طبيعي ، وتشغيل كل شيء على جهاز كمبيوتر سريع.
هنا تكمن قوة Cartesi يمكن للمطورين الاستفادة من هذا النظام البيئي الثري والمتكامل الذي تم اختباره خلال عقود من الزمن في طور التكوين ، والذي يحتوي على معرفة لا يمتلكها أي فرد، الآن من الصعب إنشاء DApps رائعة بدون محتوى مناسب ؛ هذا في الواقع غير ممكن. يتم تقييد المطورين قبل أن يكتبوا حتى سطرًا واحدًا من التعليمات البرمجية ، ويتم كبح الإمكانات المذهلة لـ blockchain في أي محاولة لجعل الأفكار المعقدة ملموسة. فتقييد المحتوى يكسر القيود التي تعيقنا ، ويطلق العنان لمجموعة كاملة من إمكانيات blockchain .
وبعد هذا السرد الرائع والذي أظهر بالتفاصيل الملموسة مدى تقدم Cartesi في هذه النقطة مبادرة بغرس بذرة للتغيير وطرح الحلول الفريدة لجيل جديد من تقنيات البلوكتشين.