Zelo dobro je znano, da so pametne pogodbe lahko zapletene. Netehnični ljudje se mikajo, da bi kupili žeton ERC20, ki temelji na hype ravni, brez predhodnega znanja o kakovosti žetona in varnosti žetona, ki ga kupujejo.
Bitfinex, ena največjih kripto borz v tej panogi, je izdal žeton LEO. Ta žeton subjektu, ki ga nadzoruje, omogoča tiskanje ali kovanje neomejenih novih žetonov, prav tako jim omogoča, da izbrišejo kovance, vključno s tistimi na centraliziranih ali decentraliziranih borzah, vročem ali hladnem skladišču, denarnici strojne ali programske opreme in / ali papirna ali možganska denarnica.
Naj vas ne zavede, nakup ERC20 še ne pomeni, da so vaša sredstva res vaša! Tokrat prvič izpostavljam tako pametno pogodbo. Prejšnji teden smo na Cointelligence objavili poročilo o podobni pametni pogodbi, ki omogoča enako funkcionalnost, oglejte si naš pregled o tem, KDAJ pametna pogodba.
Ali pogodba LEO ERC20 omogoča več milijard dolarjev prevar in / ali goljufij?
Prepuščamo vam, da se odločite, zdaj pa se potopimo globoko v LEO žeton.
Uvod
LEO je žeton ERC20, ki ga je iFinex Inc. predstavil 10. maja 2019 v njihovo objavo. Lahko najdete LEO Bela knjiga tukaj. Čeprav nismo mogli najti skladišča GitHub, je bila njihova koda pogodbe žetonov preverjena na Etherscanu. Za testiranje in razmestitev kopije tega žetona v Ropsten testnet smo uporabili preverjeno kodo Etherscan za LEO, LeoController in TokenFactory..
LEO žeton – Žeton ERC20, ki ga je izdala Unus Sed Leo Limited, hčerinska družba iFinex Inc..
Krmilnik – Pogodba o krmilniku lastniku omogoča prenos, odobritev, izdajo, zapisovanje in spreminjanje samega krmilnika. Upoštevajte tudi, da čeprav pogodba “0xf17ebb3a24dc6d6b56d38adf0df499c1cd9e5672” trenutno “nadzoruje” pogodbo LEO ERC20, lahko lastnika kadar koli enostavno nadgradi ali spremeni na kateri koli naslov, kar jim omogoči, da z LEO žetonom v veliki meri naredijo karkoli..
Pogodba LEOController: lastnik lahko spremeni “krmilnik” pogodbe LEO ERC20
The LEOController lastnik pogodbe lahko kadar koli spremeni “krmilnika” in ga nastavi na kateri koli naslov denarnice, ki ga nadzoruje.
- S klicem funkcije »upgradeController« v vrstici 698 in vnosom katerega koli naslova denarnice po njihovi izbiri.
- Ko je zgornja transakcija potrjena, bo vneseni naslov postal novi “krmilnik” pogodbe LEO ERC20.
LEO pogodba: lastnik lahko zažge vaše žetone in kova neomejeno novih žetonov
Kako bi lahko lastnik LEO za vedno ohranil kovanje žetonov?
Kot smo že pojasnili, lahko po spremembi naslova krmilnika v naslov denarnice (ali celo nove pametne pogodbe) preprosto pokličejo funkcijo “generiraj tokene” v vrstici 460.
Parametri
- _owner → Denarnica, ki bo prejela novo kovane LEO žetone.
- _znesek → Količina žetonov za “tiskanje”, ki bodo šli na zgornji naslov.
Opomba – V beli knjigi LEO ni omenjeno, kakšna je največja ponudba žetonov, ta pogodba pa jim omogoča, da še naprej kovajo žetone LEO, saj smo lahko na njihovo testno mrežo “natisnili” kvadrilion LEO žetonov.
Kako bi lahko lastnik LEO izbrisal žetone nekoga drugega?
Funkcija »killTokens« na 477 omogoča denarnici LEO krmilnika, da zažge nikomur LEO žetone, vključno, vendar ne omejeno na tiste, ki so prisotni v centralizirani ali decentralizirani izmenjavi, denarnico strojne ali programske opreme, vročem ali hladnem prostoru in / ali papirju ali možganih denarnico. Ni važno, kje so vaši kovanci, kovance lahko izbrišejo, če želijo. Tako preprosto.
Parametri
- _owner → Denarnica, iz katere bodo zapečeni obstoječi LEO žetoni.
- _mount → Količina žetonov, ki jih je treba »izbrisati« z zgoraj navedenega naslova denarnice.
Nadaljnji dokazi
Popolnoma isto kodo smo skopirali za LEO ERC20 žeton, krmilnik in tovarno, da bi uvedli naslednjo pogodbo na Ropsten testnet.
Denarnice / naslovi
- Naslov pošiljatelja: 0x58FA58089956c5cba21d9f61434B1902F8121b32
- Naključno ustvarjen naslov: 0xada183F6Ff6E7805EE5bDA701d40958858FeE548
Najprej smo krmilnik spremenili iz naslova pošiljatelja v kopijo “LEOController”, da bi ugotovili, ali lahko krmilnik spet spremenimo na naslov pošiljatelja s funkcijo “upgradeController”.
Koraki
- Tovarna žetonov Razporejena
- LEO žeton Razporejena
- LEOController Razporejena
- Preverjeno, kdo je dejansko “kontrolor” pogodbe LEO žetona: 0x58FA58089956c5cba21d9f61434B1902F8121b32.
- Spremenil krmilnik s funkcijo »changeController« v pogodbi LEO na predhodno nameščen Pogodba “LEOController”
- Potrjeno, da je bil krmilnik dejansko spremenjen v naslov pametne pogodbe.
V tem trenutku je naša pogodba LEO za testno mrežo popolnoma podobna pogodbi LEO ERC20 na naslednje načine
- Upravljavec pogodbe LEO je pametna pogodba.
- Koda krmilnika v testnem omrežju natančno ustreza tistemu v glavnem omrežju.
Zdaj poskušamo ugotoviti:
- Če lahko požremo ali uničimo tuje LEO žetone s prvo zamenjavo krmilnika.
- Če lahko izdamo noro veliko količino LEO žetona, da preverimo, ali obstaja kapa.
Koraki
- Čeprav smo v tem trenutku vedeli, da lastnik ni mogel spremeniti krmilnika na pogodbi »LEO« s funkcijo »changeController«, smo to transakcijo še vedno namerno poslali, da se razveljavi ali ne uspe. Ni uspelo
- Odpravili smo se na pogodbo »LEOController« in s funkcijo »upgradeController« spremenili krmilnik nadzorovane pametne pogodbe, tj. LEO, na naslov pošiljatelja.. Uspelo
Opomba – da smo krmilnika iz pošiljatelja spremenili v pametno pogodbo in nato spet nazaj v pošiljatelja, ker smo vam želeli pokazati, da je zelo enostavno spremeniti krmilnik v testni mreži (in zanje v glavni mreži).
Izdajanje žetonov
Ker je pošiljatelj zdaj znova upravljavec pogodbe LEO, lahko dostopa do funkcij pogodbe LEO “generiraj tokene” in “uniči tokene”. Ustvarili smo naključni naslov denarnice »0xada183F6Ff6E7805EE5bDA701d40958858FeE548«, da smo nekatere poslali noro ogromno LEO žetonov 1.000.000.000.000.000.000.000.000.000.000.000.000 (en dekilion) prenesenih LEO.
Goreči žetoni
Želeli smo ugotoviti, ali lahko (pošiljatelj) z naključnega naslova izbrišemo ali uničimo žetone 0xada183F6Ff6E7805EE5bDA701d40958858FeE548, ki smo jih prej ustvarili.
V zgornji transakciji smo uspešno zažgali / izbrisali / uničili 10.000.000.000 (deset milijard) žetonov iz denarnice nekoga drugega ali naslova, ki ga nismo imeli.
Vidite lahko, da ima naslov “0xada183F6Ff6E7805EE5bDA701d40958858FeE548” zdaj ravnovesje 999,999,999,999,999,999,999,999,990,000,000,000 (990 devetindevetdeset decillion, 999 nonillion, 999 octillion, 999 septillion, 999 sextillion , devetsto devetindevetdeset kvintiljonov, devetsto devetindevetdeset kvadriljonov, devetsto devetindevetdeset milijard, devetsto devetdeset milijard) le žetoni testnet LEO.
Primerjava pogodb | |||
LEO | Izvirnik | Testnet | Diff |
MiniMeTokenFactory | Izvirnik | Testnet | Diff |
LEOController | Izvirnik | Testnet | Diff |
TLDR: Kako to vpliva na mene?
Paolo Ardoino, tehnični direktor Bitfinexa, je odgovoril na naš tvit ki opisuje to vprašanje in navaja:
»Zaradi varnosti in prihodnjih dokazov smo zapustili možnost tudi nadgradnje žetonske pogodbe. To je res ključna lastnost pogodbe, ki bi lahko živela veliko let. Kovanje več žetonov za Finex preprosto ne bi imelo smisla … kot bi streljanje z nogo. “
Nismo mu bili všeč samo njegov tweet, ampak bi se mu radi tudi javno zahvalili za odgovor, saj verjamemo, da lahko tako odgovorimo in pomagamo tej panogi usmeriti v boljšo prihodnost.
Zdaj pa se vrnimo k poslu! Upoštevajte, da so pametne pogodbe zasnovane tako, da so nezaupljive. Bitfinex tu prekine zaupanje, tako da tukaj postavi zakulisje, ki jim da vstopnico za goljufanje, kadar koli je treba, z nepošteno prednostjo pred ljudmi, kot smo ti in jaz. V tem celotnem članku smo večkrat poudarili edino dejstvo, da so sposobni kovati poljubno število (ali neomejeno) kovancev LEO po lastni presoji in izbrisati kovance denarnice zdaj ali v prihodnosti.
Če povzamemo in poenostavimo vse za naše netehnične bralce, ne zanikamo ali dvomimo v zmožnost nadgradnje pametne pogodbe. Tukaj težava ni tehnična, ampak filozofska. Če vam je všeč, da lahko Bitfinex počne tisto, kar lahko z LEO, to tudi razumemo in spoštujemo vaše stališče. Toda za nas se LEO ne poigrava dobro z duhom in filozofijo blockchaina, ker lahko narekujejo pogoje. Na podlagi našega napačnega in skromnega razumevanja kriptovaluta:
- Moral bi biti odprt za vse. Lahko pridete in odidete, kakor želite. ✓
- Moral bi biti pošten. Nihče ne sme imeti nepoštene prednosti pred nikomer drugim. ✘
- Bi moralo biti vključujoče. Ne sme biti omejen na nikogar, ne glede na to, kaj je rekel ali naredil ali od kod prihaja, namesto da bi bil popolnoma brezbrižen do njega "WHO" so oz "kaj" bi lahko postali. ✘
- Moral bi biti odporen proti cenzuri, če ne brez cenzure. Nikomur ne bi smeli preprečiti uporabe ali dostopa do katere koli funkcije v danem trenutku. Ko gre za omrežje blockchain (v tem primeru pametna pogodba), je treba celo slabe igralce, kot so prevaranti, hekerji in prevaranti, obravnavati necenzurirano – vključno, enako, odkrito in pošteno. Če v Bitcoinu ne morete cenzurirati slabih igralcev, zakaj bi to lahko počeli v LEO? „Nadgradljivost“ ne upravičuje „sposobnosti“ narekovanja pogojev. ✘
- Moral bi biti nespremenljiv. Karkoli se je zgodilo, bi moralo ostati tam za vedno, da bi se vsi in vsi potrdili, strinjali ali ne strinjali. ✓
- Omrežje bi moralo biti decentralizirano. Nobena centralna enota ne bi smela narekovati pogojev, kaj naj se zgodi. Čeprav je mreža Ethereum decentralizirana, pogodba o LEO žetonih ni, ker lahko narekujejo pogoje. ✘
- Moral bi biti razdeljen. Vsakdo bi moral imeti možnost, da pridobi zgodovino omrežja in preveri verodostojnost podatkov. ✓
Ljudje zaupajo blockchainu, ker je nezaupljiv. Zaupanja vredna nezaupljiva narava verige verig je ljudi, kot si ti, zanimala ta neverjetna tehnologija.
Na Bitfinex se na osebni ravni ne zamerimo, vendar se ne bojimo, da bi s prstom pokazali nanje, ko se nam zdi, da se motijo in da morajo narediti prav. Bitfinex ponujamo rešitev za ustvarjanje novega žetona brez takšnih funkcij in zamenjavo z vlagatelji. Že samo to dejanje bi lahko povečalo zaupanje vlagateljev v žeton LEO.
Končno se lahko ta razprava vrti v krogu, ker bi Bitfinex trdil, da potrebujejo “nadgradljivost” (ali res?) In ne bi preprosto sprejeli dejstva, da je mogoče kovanec nekoga drugega izbrisati, tudi če ta ni naš. S tem se strinjamo z vami, našim neverjetnim bralcem, da se odločite in preverite, ali želite zaupati pogodbi LEO ERC20.