Je veľmi dobre známe, že inteligentné zmluvy môžu byť zložité. Netechnických ľudí láka kúpiť si token ERC20 na základe úrovne humbuk, bez akýchkoľvek predchádzajúcich znalostí o kvalite tokenu a bezpečnosti tokenu, ktorý kupujú.
Bitfinex, jedna z najväčších kryptoburz v priemysle, vydala token s názvom LEO. Tento token umožňuje entite, ktorá ho ovláda, tlačiť alebo raziť neobmedzené množstvo nových tokenov, taktiež im umožňuje mazať mince kohokoľvek, okrem iného aj tie na centralizovaných alebo decentralizovaných burzách, úložiská tepla alebo chladu, hardvérové alebo softvérové peňaženky a / alebo papierová alebo mozgová peňaženka.
Nenechajte sa oklamať, nákup modelu ERC20 neznamená, že vaše aktíva sú skutočne vaše! Nie je to prvýkrát, čo som vystavil tak inteligentnú zmluvu. Len minulý týždeň sme na serveri Cointelligence zverejnili správu o podobnej inteligentnej zmluve, ktorá umožňuje rovnakú funkčnosť, pozrite si našu recenziu KEDY inteligentnú zmluvu.
Umožňuje zmluva LEO ERC20 podvod a / alebo podvody v hodnote niekoľkých miliárd dolárov?
Necháme na vás, aby ste sa rozhodli, teraz sa ponoríme hlboko do LEO Tokenu.
Úvod
LEO je token ERC20 zavedený 10. mája 2019 spoločnosťou iFinex Inc. v ich oznámenie. Nájdete LEO Whitepaper tu. Aj keď sa nám nepodarilo nájsť úložisko GitHub, ich kód zmluvy s tokenmi bol overený na serveri Etherscan. Na otestovanie a nasadenie kópie tohto tokenu v testovacej sieti Ropsten sme použili overený kód Etherscan pre LEO, LeoController a TokenFactory..
Token LEO – Token ERC20 vydaný spoločnosťou Unus Sed Leo Limited, dcérskou spoločnosťou spoločnosti iFinex Inc..
Kontrolór – Zmluva s kontrolórom umožňuje vlastníkovi previesť, schváliť, vydať, spáliť a zmeniť samotný kontrolór. Upozorňujeme tiež, že hoci zmluva „0xf17ebb3a24dc6d6b56d38adf0df499c1cd9e5672“ v súčasnosti „kontroluje“ zmluvu LEO ERC20, vlastník „ovládača“ môže byť kedykoľvek ľahko upgradovaný alebo zmenený na akúkoľvek adresu, čo mu umožní token LEO do značnej miery robiť čokoľvek..
Zmluva LEOControleru: Vlastník môže zmeniť „Kontrolóra“ zmluvy LEO ERC20
The LEOController vlastník zmluvy môže kedykoľvek zmeniť „kontrolóra“ a nastaviť ho na ľubovoľnú adresu peňaženky, ktorú ovláda.
- Zavolaním funkcie „upgradeController“ na linke 698 a zadaním ľubovoľnej adresy peňaženky podľa vlastného výberu.
- Po potvrdení vyššie uvedenej transakcie sa zadaná adresa stane novým „správcom“ zmluvy LEO ERC20.
Zmluva LEO: Majiteľ môže spáliť vaše tokeny a raziť neobmedzené množstvo nových tokenov
Ako mohol vlastník LEO ponechať navždy razenie žetónov?
Ako už bolo vysvetlené, po zmene adresy radiča na adresu peňaženky (alebo dokonca novej inteligentnej zmluvy) by mohli jednoducho zavolať funkciu „generateTokens“ na linke 460..
Parametre
- _vlastník → Peňaženka, ktorá obdrží novo razené tokeny LEO.
- _množstvo → Množstvo žetónov na „vytlačenie“, ktoré pôjde na vyššie uvedenú adresu.
Poznámka – Dokument LEO nehovorí o maximálnej dodávke tokenov a táto zmluva im umožňuje pokračovať v razení tokenov LEO, pretože sme pomocou ich kódu dokázali „vytlačiť“ kvadrilióny tokenov LEO na testnet..
Ako mohol vlastník LEO vymazať cudzie tokeny?
Funkcia „destruTokens“ na 477 umožňuje peňaženke radiča LEO spaľovať tokeny LEO kohokoľvek, okrem iného aj tie, ktoré sú prítomné v centralizovanej alebo decentralizovanej ústredni, hardvérová alebo softvérová peňaženka, horúce alebo chladné úložisko a / alebo papier alebo mozog peňaženka. Nezáleží na tom, kde sa vaše mince nachádzajú, ak chcú, môžu vaše mince vymazať. Také jednoduché.
Parametre
- _vlastník → Peňaženka, z ktorej sa budú páliť existujúce LEO tokeny.
- _množstvo → Množstvo žetónov, ktoré sa majú „vymazať“ z vyššie uvedenej adresy peňaženky.
Ďalšie dôkazy
Skopírovali sme presne ten istý kód pre LEO ERC20 token, radič a továreň na nasadenie nasledujúcej zmluvy na serveri Ropsten testnet.
Peňaženky / adresy
- Adresa odosielateľa: 0x58FA58089956c5cba21d9f61434B1902F8121b32
- Náhodne vygenerovaná adresa: 0xada183F6Ff6E7805EE5bDA701d40958858FeE548
Najskôr sme zmenili radič z adresy odosielateľa na kópiu „LEOController“, aby sme zistili, či by sme mohli znova zmeniť radič späť na adresu odosielateľa pomocou funkcie „upgradeController“.
Kroky
- Token Factory Nasadené
- Token LEO Nasadené
- LEOController Nasadené
- Skontrolované, kto je v skutočnosti „kontrolórom“ zmluvy s tokenom LEO: 0x58FA58089956c5cba21d9f61434B1902F8121b32.
- Ovládač bol zmenený pomocou funkcie „changeController“ na zmluve LEO na predtým nasadený Zmluva „LEOController“
- Potvrdené, že radič bol skutočne zmenený na adresu inteligentnej zmluvy.
V tomto okamihu je naša zmluva LEO testnetu presne podobná zmluve LEO ERC20 nasledujúcimi spôsobmi
- Správcom zmluvy LEO je inteligentná zmluva.
- Kód radiča v testnet presne sa zhoduje s tým v sieti mainnet.
Teraz sa snažíme určiť:
- Ak dokážeme spáliť alebo zničiť cudzie tokeny LEO najskôr výmenou ovládača.
- Ak dokážeme vydať šialene veľké množstvo LEO tokenu, aby sme zistili, či existuje čiapka.
Kroky
- Aj keď sme v tomto okamihu vedeli, že nie je možné, aby vlastník zmenil kontrolóra v zmluve „LEO“ pomocou funkcie „changeController“, stále sme zámerne poslali túto transakciu, aby sa mohla vrátiť alebo zlyhať. Zlyhalo
- Prešli sme k zmluve „LEOController“ a pomocou funkcie „upgradeController“ sme znova zmenili ovládač kontrolovanej inteligentnej zmluvy, teda LEO, na adresu odosielateľa. Podarilo sa
Poznámka – že sme zmenili radič zo Senderu na smart kontrakt a potom opäť späť na Sender, pretože sme vám chceli ukázať, že je pre nás celkom ľahké zmeniť radič v testneti (a pre nich v mainneti).
Vydávanie tokenov
Pretože teraz je odosielateľ opäť správcom zmluvy LEO, má prístup k funkciám zmluvy LEO „generateTokens“ a „destruTokens“. Vygenerovali sme náhodnú adresu peňaženky „0xada183F6Ff6E7805EE5bDA701d40958858FeE548“, aby sme šialene poslali nejaké obrovské množstvo LEO tokenov 1 000 000 000 000 000 000 000 000 000 000 000 000 (jedna nevyplatená suma) prevedený LEO.
Horiace žetóny
Chceli sme zistiť, či môžeme (Odosielateľ) vymazať alebo zničiť tokeny z náhodnej adresy 0xada183F6Ff6E7805EE5bDA701d40958858FeE548, ktoré sme predtým vygenerovali.
V rámci vyššie uvedenej transakcie sme úspešne spálili / vymazali / zničili 10 000 000 000 (desať miliárd) tokenov z peňaženky niekoho iného alebo z adresy, ktorú sme nevlastnili.
Vidíte, že adresa „0xada183F6Ff6E7805EE5bDA701d40958858FeE548“ má zostatok 999 999 999 999 999 999 999 999 000 000 000 000 (deväťsto deväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiatdeväťdesiat deväť tisíc deväťdesiat deväť , deväťstodeväťdesiatdeväťdeväťdesiatpäťsto, deväťsto deväťdesiatdeväť kvadriliónov, deväťsto deväťdesiatdeväť biliónov, deväťsto deväťdesiat miliárd) iba testovacie LEO tokeny.
Porovnanie zmlúv | |||
LEO | Originál | Testnet | Rozdiel |
MiniMeTokenFactory | Originál | Testnet | Rozdiel |
LEOController | Originál | Testnet | Rozdiel |
TLDR: Ako to na mňa pôsobí?
Paolo Ardoino, technický riaditeľ spoločnosti Bitfinex, odpovedal na náš tweet ktorá načrtáva túto problematiku a uvádza:
“Z bezpečnostných dôvodov a z dôvodov budúcich dôkazov sme ponechali možnosť upgradovať aj Tokenovú zmluvu.” To je skutočne kľúčová vlastnosť zmluvy, ktorá môže žiť veľa rokov. Vyťažiť viac žetónov by pre Finex jednoducho nemalo zmysel … ako keby ste vystrelili našu nohu. „
Nielenže sme milovali jeho tweet, ale chceli by sme sa mu aj verejne poďakovať za odpoveď, pretože veríme, že práve týmto spôsobom sa môžeme zodpovedať a pomôcť tomuto odvetviu smerovať k lepšej budúcnosti..
Teraz sa vráťme k práci! Dobre si všimnite, že inteligentné zmluvy sú navrhnuté tak, aby boli dôveryhodné. Bitfinex tu narúša dôveru tým, že sem umiestňuje zadné vrátka, ktoré im dávajú lístok podvádzať, kedykoľvek je to potrebné, s nespravodlivou výhodou oproti ľuďom ako vy a ja. Jediným faktom, na ktorý sme opakovane v celom tomto článku poukazovali, je ich schopnosť raziť ľubovoľný počet (alebo neobmedzene) mincí LEO podľa vlastného uváženia a odstraňovať akékoľvek mince peňaženky, či už v budúcnosti alebo v budúcnosti..
Aby sme zhrnuli a zjednodušili všetko pre našich netechnických čitateľov, nepopierame ani nespochybňujeme schopnosť rozšíriteľnosti inteligentnej zmluvy. Problém tu nie je technický, ale filozofický. Ak ste v poriadku s tým, že Bitfinex je schopný robiť to, čo dokáže s LEO, chápeme to tiež a rešpektujeme váš pohľad. Ale pre nás sa LEO nehrá dobre s duchom a filozofiou blockchainu, pretože dokáže diktovať podmienky. Na základe nášho chybného a skromného porozumenia kryptomena tiež:
- Malo by byť otvorené pre všetkých. Môžete prísť a odísť, ako chcete. ✓
- Malo by to byť spravodlivé. Nikto by nemal mať voči nikomu inému nespravodlivé výhody. ✘
- Malo by to byť inkluzívne. Nemalo by sa obmedzovať na nikoho bez ohľadu na to, čo hovoril alebo robil alebo odkiaľ pochádza, namiesto toho, aby mu bolo úplne ľahostajné "SZO" sú alebo "čo" by sa mohli stať. ✘
- Mali by byť odolné voči cenzúre, ak nie sú bez cenzúry. Nikomu by nemalo v žiadnom danom okamihu brániť v používaní alebo prístupe k akejkoľvek funkcii. Pokiaľ ide o sieť blockchain (v tomto prípade o inteligentnú zmluvu), aj so zlými aktérmi, ako sú podvodníci, hackeri a podvodníci, by sa malo zaobchádzať necenzurovaným spôsobom – inkluzívne, rovnako, otvorene a spravodlivo. Ak nemôžete cenzurovať zlých aktérov v bitcoine, prečo by ste to mali byť schopní urobiť v LEO? „Upgradovateľnosť“ neospravedlňuje „schopnosť“ diktovania pojmov. ✘
- Mali by byť nemenné. Čokoľvek sa stalo, malo by tam zostať navždy, aby ktokoľvek a všetci potvrdili, súhlasili alebo nesúhlasili. ✓
- Sieť by mala byť decentralizovaná. Nemal by existovať žiadny ústredný subjekt, ktorý by mohol diktovať podmienky, čo by sa malo stať. Aj keď je sieť Ethereum decentralizovaná, zmluva o tokenoch LEO nie je taká, že môžu diktovať podmienky. ✘
- Malo by sa distribuovať. Každý by mal byť schopný sám získať históriu siete a overiť pravosť údajov. ✓
Ľudia dôverujú blockchainu, pretože je nedôverčivý. Vďaka dôveryhodnej a dôveryhodnej povahe blockchainu sa ľudia ako vy a ja zaujímali o túto úžasnú technológiu.
Na osobnej úrovni sa voči spoločnosti Bitfinex nezdržujeme, ale nebojíme sa na ne ukazovať prstom, keď máme pocit, že sa mýlia a že musia konať správne. Ponúkame riešenie spoločnosti Bitfinex, vytvoriť nový token bez týchto funkcií a zameniť ho s investormi. Samotná táto akcia by mohla zvýšiť dôveru investorov v token LEO.
Nakoniec táto debata môže prebiehať v kruhoch, pretože Bitfinex tvrdí, že potrebuje „upgradovateľnosť“ (je to skutočne tak?) A neprijali by sme iba skutočnosť, že mince niekoho iného môžu byť vymazané, aj keď nie sú naše. Týmto zanechávame náš prípad na vás, našom úžasnom čitateľovi, aby ste sa rozhodli sami a zistili, či chcete dôverovať zmluve LEO ERC20.