تم العثور على قدرات الخداع في رمز عقد Bitfinex LEO ERC20
من المعروف جدًا أن العقود الذكية يمكن أن تكون خادعة. يميل الأشخاص غير التقنيين إلى شراء رمز ERC20 بناءً على مستوى الضجيج ، دون أي معرفة مسبقة بشأن جودة الرمز المميز وسلامة الرمز المميز الذي يشترونه.
أصدرت Bitfinex ، وهي واحدة من أكبر بورصات العملات المشفرة في الصناعة ، رمزًا يسمى LEO. يسمح هذا الرمز للكيان الذي يتحكم فيه بطباعة أو سك عملات جديدة غير محدودة ، كما يسمح لهم بحذف عملات أي شخص بما في ذلك على سبيل المثال لا الحصر تلك الموجودة في التبادلات المركزية أو اللامركزية ، والتخزين الساخن أو البارد ، ومحفظة الأجهزة أو البرامج ، و / أو ورقة أو محفظة الدماغ.
لا تنخدع ، شراء ERC20 لا يعني أن أصولك ملكك حقًا! هذه ليست المرة الأولى التي أفصح فيها عن مثل هذا العقد الذكي. نشرنا الأسبوع الماضي فقط في Cointelligence تقريرًا عن عقد ذكي مشابه يسمح بنفس الوظيفة ، تحقق من مراجعتنا حول WHEN Smart Contract.
هل يتيح عقد LEO ERC20 عملية احتيال و / أو احتيال بمليارات الدولارات?
نترك الأمر متروكًا لك لاتخاذ القرار ، فلنغوص الآن في عمق LEO Token.
مقدمة
LEO هو رمز ERC20 تم تقديمه في 10 مايو 2019 بواسطة iFinex Inc. في إعلانهم. يمكنك العثور على ملف ورقة عمل LEO هنا. على الرغم من أننا لم نتمكن من العثور على مستودع GitHub ، فقد تم التحقق من رمز عقد الرمز المميز الخاص بهم على Etherscan. استخدمنا رمز Etherscan الذي تم التحقق منه لـ LEO و LeoController و TokenFactory لاختبار ونشر نسخة من هذا الرمز المميز في Ropsten testnet.
رمز LEO – رمز ERC20 الصادر عن Unus Sed Leo Limited ، وهي شركة تابعة لشركة iFinex Inc.
مراقب – يمكّن عقد وحدة التحكم المالك من نقل وحدة التحكم نفسها والموافقة عليها وإصدارها وحرقها وتغييرها. يرجى أيضًا ملاحظة أنه على الرغم من أن عقد “0xf17ebb3a24dc6d6b56d38adf0df499c1cd9e5672” حاليًا “يتحكم” في عقد LEO ERC20 ، فإن “وحدة التحكم” يمكن ترقيتها بسهولة أو تغييرها إلى أي عنوان في أي وقت من قبل المالك ، وبالتالي تمكينهم من فعل أي شيء تقريبًا باستخدام رمز LEO المميز.
عقد LEOController: يمكن للمالك تغيير “المتحكم” في عقد LEO ERC20
ال وحدة تحكم LEOC يمكن لمالك العقد تغيير “وحدة التحكم” في أي وقت وتعيين هذا على أي عنوان محفظة يتحكم فيه.
- من خلال استدعاء الوظيفة “UpgradeController” على السطر 698 وإدخال أي عنوان محفظة من اختيارهم.
- بمجرد تأكيد المعاملة المذكورة أعلاه ، سيصبح العنوان الذي تم إدخاله “المتحكم” الجديد في عقد LEO ERC20.
عقد LEO: يمكن للمالك نسخ الرموز المميزة الخاصة بك وصنع الرموز الجديدة غير المحدودة
كيف يمكن لمالك LEO أن يستمر في سك العملات إلى الأبد?
كما أوضحنا من قبل ، بمجرد تغيير عنوان وحدة التحكم إلى عنوان المحفظة (أو حتى عقد ذكي جديد) ، يمكنهم ببساطة استدعاء الوظيفة “إنشاء الرموز” على السطر 460.
العوامل
- _owner → المحفظة التي ستتلقى رموز LEO التي تم سكها حديثًا.
- _amount → كمية الرموز المميزة “للطباعة” والتي ستنتقل إلى العنوان أعلاه.
ملحوظة – لا يذكر ورق LEO الأبيض ما هو الحد الأقصى لتزويد الرمز المميز ويسمح هذا العقد لهم بالاستمرار في سك الرموز المميزة لـ LEO حيث تمكنا من “طباعة” كوادريليون من الرموز المميزة لـ LEO على شبكة الاختبار باستخدام الكود الخاص بهم.
كيف يمكن لمالك LEO حذف الرموز المميزة لشخص آخر?
تعمل وظيفة “التدمير” على 477 على تمكين محفظة وحدة تحكم LEO من نسخ الرموز المميزة لـ LEO لأي شخص بما في ذلك على سبيل المثال لا الحصر تلك الموجودة في التبادل المركزي أو اللامركزي ، أو محفظة الأجهزة أو البرامج ، أو التخزين الساخن أو البارد ، و / أو الورق أو العقل محفظة جيب. لا يهم مكان عملاتك ، يمكنهم حذف عملاتك المعدنية إذا أرادوا ذلك بهذه السهولة.
العوامل
- _owner → المحفظة التي سيتم نسخ رموز LEO الموجودة منها.
- _amount → كمية الرموز المميزة “للحذف” من عنوان المحفظة المذكور أعلاه.
مزيد من الأدلة
قمنا بنسخ نفس الكود بالضبط لرمز LEO ERC20 المميز ووحدة التحكم والمصنع لنشر العقد التالي على روبستن testnet.
محافظ / عناوين
- عنوان المرسل: 0x58FA58089956c5cba21d9f61434B1902F8121b32
- العنوان الذي تم إنشاؤه عشوائيًا: 0xada183F6Ff6E7805EE5bDA701d40958858FeE548
أولاً قمنا بتغيير وحدة التحكم من عنوان المرسل إلى نسخة من “LEOController” لمعرفة ما إذا كان بإمكاننا تغيير وحدة التحكم مرة أخرى إلى عنوان المرسل باستخدام الوظيفة “UpgController”.
خطوات
- مصنع توكن نشر
- رمز LEO نشر
- وحدة تحكم LEOC نشر
- تم التحقق من “المتحكم” في عقد رمز LEO: 0x58FA58089956c5cba21d9f61434B1902F8121b32.
- تم تغيير وحدة التحكم باستخدام الوظيفة “changeController” في عقد LEO إلى المنشور مسبقًا عقد “LEOController”
- أكد أنه تم تغيير وحدة التحكم بالفعل إلى عنوان العقد الذكي.
في هذه المرحلة ، يتشابه عقدنا مع LEO الخاص بشبكة testnet تمامًا مع عقد LEO ERC20 بالطرق التالية
- المتحكم في عقد LEO هو عقد ذكي.
- كود وحدة التحكم في testnet يتطابق تمامًا مع الشخص في mainnet.
الآن ، نحاول تحديد:
- إذا تمكنا من حرق أو إتلاف رموز LEO الخاصة بشخص آخر من خلال تغيير وحدة التحكم أولاً.
- إذا تمكنا من إصدار كمية كبيرة بجنون من توكن LEO لمعرفة ما إذا كان هناك سقف.
خطوات
- على الرغم من أننا علمنا في هذه المرحلة أنه لم يكن من الممكن للمالك تغيير وحدة التحكم في عقد “LEO” باستخدام الوظيفة “changeController” ، ما زلنا نرسل هذه المعاملة عمدًا لإرجاعها أو فشلها. باءت بالفشل
- ذهبنا إلى عقد “LEOController” واستخدمنا الوظيفة “UpgradeController” لتغيير وحدة التحكم في العقد الذكي الخاضع للرقابة ، أي LEO ، إلى عنوان المرسل مرة أخرى. نجح
ملحوظة – أننا قمنا بتغيير وحدة التحكم من المرسل إلى عقد ذكي ثم عدنا مرة أخرى إلى المرسل لأننا أردنا أن نوضح لك أنه من السهل جدًا بالنسبة لنا تغيير وحدة التحكم في شبكة اختبار (وبالنسبة لهم في الشبكة الرئيسية).
إصدار الرموز
نظرًا لأن المرسل الآن هو المتحكم في عقد LEO مرة أخرى ، يمكنه الوصول إلى وظائف عقد LEO “إنشاء الرموز” و “التدمير”. أنشأنا عنوان محفظة عشوائيًا “0xada183F6Ff6E7805EE5bDA701d40958858FeE548” لإرسال بعضها بجنون كمية هائلة من الرموز المميزة لـ LEO 1.000.000.000.000.000.000.000.000.000.000.000 (واحد وندليليون) LEO تم تحويلها.
حرق الرموز
أردنا تحديد ما إذا كان بإمكاننا (المرسل) حذف الرموز المميزة من العنوان العشوائي أو إتلافها 0xada183F6Ff6E7805EE5bDA701d40958858FeE548 أنشأناها مسبقًا.
في المعاملة أعلاه ، نجحنا في نسخ / حذف / إتلاف 10،000،000،000 (عشرة مليارات) رمز من محفظة شخص آخر أو عنوان لا نمتلكه.
يمكنك أن ترى أن العنوان “0xada183F6F6E7805EE5bDA701d40958858FeE548” يحتوي الآن على رصيد يبلغ 999،999،999،999،999،999،999،999،990،000،000،000 (تسعمائة وتسع وتسعون ديسيليون ، تسعمائة وتسع وتسعون نونليون ، تسعمائة وتسع وتسعمائة وتسعمائة وتسعون ، تسعمائة وتسعة وتسعون كوينتيليون ، تسعمائة وتسعة وتسعون كوادريليون ، تسعمائة وتسعة وتسعون تريليون ، تسعمائة وتسعون مليارًا) testnet LEO tokens only.
مقارنة العقود | |||
LEO | أصلي | تيستنت | الفارق |
MiniMeTokenFactory | أصلي | تيستنت | الفارق |
وحدة تحكم LEOC | أصلي | تيستنت | الفارق |
TLDR: كيف يؤثر هذا عليّ?
باولو أردوينو ، كبير مسؤولي التكنولوجيا في Bitfinex, رد على تغريدتنا التي تحدد هذه المشكلة ، مشيرة إلى:
“لأسباب تتعلق بالأمان والإثبات في المستقبل ، تركنا القدرة أيضًا على ترقية عقد الرمز المميز. إنها حقًا ميزة أساسية لعقد قد يستمر لسنوات عديدة. إن سك المزيد من الرموز لن يكون منطقيًا بالنسبة إلى Finex … مثل إطلاق النار على أقدامنا. “
لم نحب تغريدته فحسب ، بل نود أيضًا أن نشكره علنًا على رده ، لأننا نعتقد أن هذه هي الطريقة التي يمكننا من خلالها تحميل أنفسنا المسؤولية والمساعدة في توجيه هذه الصناعة نحو مستقبل أفضل.
الآن دعنا نعود إلى العمل! قم بتدوين ملاحظة جيدة أن العقود الذكية مصممة لتكون غير موثوق بها. يكسر Bitfinex الثقة هنا من خلال وضع باب خلفي هنا ، مما يمنحهم تذكرة للغش متى احتاجوا إلى ذلك ، مع ميزة غير عادلة على الأشخاص مثلك ومثلي. مرارًا وتكرارًا خلال هذه المقالة بأكملها ، فإن الحقيقة الوحيدة التي أشرنا إليها هي قدرتهم على سك أي عدد (أو غير محدود) من عملات LEO وفقًا لتقديرهم وحذف أي عملة من عملات المحفظة ، الآن أو في المستقبل.
لتلخيص وتبسيط كل شيء لقرائنا غير التقنيين ، لا ننكر أو نشكك في قدرة العقد الذكي على الترقية. المشكلة هنا ليست تقنية بل فلسفية. إذا كنت موافقًا على قدرة Bitfinex على فعل ما يمكنها فعله مع LEO ، فإننا نتفهم ذلك أيضًا ونحترم وجهة نظرك. لكن بالنسبة لنا ، لا يلعب LEO بشكل جيد مع روح وفلسفة blockchain لأنه يمكنهم إملاء الشروط. أيضًا ، بناءً على فهمنا الخاطئ والمتواضع ، العملة المشفرة:
- يجب أن تكون مفتوحة للجميع. يمكنك أن تأتي وتذهب كما يحلو لك. ✓
- يجب أن يكون عادلا. لا ينبغي لأحد أن يتمتع بأي ميزة غير عادلة على أي شخص آخر. ✘
- يجب أن تكون شاملة. لا ينبغي أن يقتصر على أي شخص بغض النظر عما قاله أو فعلوه أو من أين أتوا ، بدلاً من ذلك يكون غير مبالٍ تمامًا "من الذى" هم أو "ماذا او ما" يمكن أن يصبحوا. ✘
- يجب أن تكون مقاومة للرقابة إن لم تكن خالية من الرقابة. لا ينبغي منع أي شخص من استخدام أو الوصول إلى أي ميزة في أي وقت محدد. عندما يتعلق الأمر بشبكة blockchain (عقد ذكي في هذه الحالة) ، يجب معاملة حتى الجهات الفاعلة السيئة مثل المحتالين والمتسللين والمحتالين بطريقة غير خاضعة للرقابة – بشكل شامل ومتساو ومنفتح وعادل. إذا لم تتمكن من مراقبة الجهات الفاعلة السيئة في Bitcoin ، فلماذا يمكنك القيام بذلك في LEO؟ “القابلية للترقية” لا تبرر “القدرة” على إملاء الشروط. ✘
- يجب أن تكون ثابتة. كل ما حدث يجب أن يبقى هناك إلى الأبد حتى يتمكن أي شخص وكل شخص من تأكيد صحته أو موافقته أو عدم موافقته. ✓
- يجب أن تكون الشبكة لا مركزية. لا ينبغي أن يكون هناك أي كيان مركزي يمكنه أن يملي شروطًا على ما يجب أن يحدث. على الرغم من أن شبكة Ethereum لا مركزية ، إلا أن عقد رمز LEO ليس لأنه يمكنهم إملاء الشروط. ✘
- يجب توزيعها. يجب أن يكون كل شخص قادرًا على الحصول على محفوظات الشبكة والتحقق من صحة البيانات. ✓
يثق الناس في blockchain لأنه غير موثوق به. جعلت الطبيعة الموثوقة غير الموثوق بها لـ blockchain أشخاصًا مثلي ومثلك مهتمين بهذه التكنولوجيا المذهلة.
نحن لا نحمل أي ضغائن تجاه Bitfinex على المستوى الشخصي ، لكننا لا نخشى توجيه أصابعنا إليهم عندما نشعر أنهم مخطئون وأنهم بحاجة إلى فعل الشيء الصحيح. نحن نقدم حلاً لـ Bitfinex ، لإنشاء رمز جديد بدون هذه الميزات ومبادلتها مع المستثمرين. يمكن أن يؤدي هذا الإجراء وحده إلى تعزيز ثقة المستثمر في رمز LEO.
أخيرًا ، يمكن أن ينتقل هذا النقاش في دوائر لأن Bitfinex ستجادل بأنهم بحاجة إلى “قابلية للترقية” (هل هم حقًا؟) ولن نقبل ببساطة حقيقة أنه يمكن حذف عملة شخص آخر حتى لو لم تكن هذه عملاتنا. نحن هنا نضع قضيتنا لك ، قارئنا المذهل ، لاتخاذ قرار بنفسك ومعرفة ما إذا كنت تريد الوثوق بعقد LEO ERC20.