Ir ļoti labi zināms, ka viedie līgumi var būt sarežģīti. Netehniskiem cilvēkiem rodas kārdinājums iegādāties ERC20 marķieri, balstoties uz hype līmeni, bez jebkādām iepriekšējām zināšanām par marķiera kvalitāti un nopirktā marķiera drošību.

Bitfinex, viena no lielākajām kriptogrāfijas biržām nozarē, ir izdevusi žetonu ar nosaukumu LEO. Šis marķieris ļauj subjektam, kas to kontrolē, izdrukāt vai kalt neierobežotu daudzumu jaunu žetonu, kā arī ļauj viņiem izdzēst ikviena monētas, ieskaitot, bet ne tikai, monētas centralizētā vai decentralizētā apmaiņā, karstā vai aukstā krātuvē, aparatūras vai programmatūras seifā un / vai papīra vai smadzeņu maks.

Neļaujiet sevi apmānīt, pērkot ERC20, tas nenozīmē, ka jūsu aktīvi patiešām ir jūsu! Šī nav pirmā reize, kad es atklāju tik gudru līgumu. Tikai pagājušajā nedēļā mēs vietnē Cointelligence publicējām ziņojumu par līdzīgu viedo līgumu, kas nodrošina tādu pašu funkcionalitāti, skatiet mūsu pārskatu par WHEN Smart Contract.

Vai LEO ERC20 līgums ļauj krāpšanos ar vairākiem miljardiem dolāru un / vai krāpšanu?

Atstājam jums izlemt, tagad ienirsim dziļi LEO žetonā.

Ievads

LEO ir ERC20 marķieris, ko 2019. gada 10. maijā ieviesa iFinex Inc. viņu paziņojumu. Jūs varat atrast LEO baltais papīrs šeit. Lai gan mums neizdevās atrast GitHub krātuvi, viņu marķiera līguma kods tika pārbaudīts vietnē Etherscan. Mēs izmantojām verificēto Etherscan kodu LEO, LeoController un TokenFactory, lai pārbaudītu un izvietotu šī marķiera kopiju Ropsten testnet.

LEO žetons – ERC20 marķieri, ko izdevis iFinex Inc meitasuzņēmums Unus Sed Leo Limited.

Kontrolieris – Kontroliera līgums ļauj īpašniekam nodot, apstiprināt, izdot, ierakstīt un mainīt pašu kontrolieri. Lūdzu, ņemiet vērā arī to, ka, lai arī līgums “0xf17ebb3a24dc6d6b56d38adf0df499c1cd9e5672” pašlaik “kontrolē” LEO ERC20 līgumu, īpašnieks jebkurā laikā var viegli uzlabot vai mainīt uz jebkuru adresi, tādējādi ļaujot viņiem gandrīz visu darīt ar LEO marķieri.

LEO kontroliera līgums

LEOController līgums: Īpašnieks var mainīt LEO ERC20 līguma “Controller”LEOController līgums Īpašnieks var mainīt LEO ERC20 līguma kontrolieri

The LEOController līguma īpašnieks jebkurā brīdī var mainīt “kontrolieri” un iestatīt to uz jebkuru viņa kontrolēto seifa adresi.

  • Zvanot uz funkciju “upgradeController” 698. līnijā un ievadot jebkuru izvēlēto seifa adresi.
  • Kad iepriekš minētais darījums būs apstiprināts, ievadītā adrese kļūs par jauno LEO ERC20 līguma “kontrolieri”.

LEO līgums: Īpašnieks var ierakstīt jūsu žetonus un kalt neierobežotus jaunus žetonusLEO līgums Īpašnieks var ierakstīt jūsu žetonus un izkalt neierobežoti jaunus žetonus

Kā LEO īpašnieks varēja mūžīgi turēt žetonus?

Kā paskaidrots iepriekš, kad kontrollera adrese tiek mainīta uz maka adresi (vai pat jaunu viedo līgumu), viņi 460. līnijā var vienkārši izsaukt funkciju “geneTokens”.

Parametri

  • _ īpašnieks → Seifs, kas saņems nesen nokaltos LEO žetonus.
  • _summa → “Izdrukājamo” žetonu daudzums, kas nonāks uz iepriekš minēto adresi.

Piezīme – LEO dokumentā nav pieminēts, kāds ir maksimālais marķieru daudzums, un šis līgums ļauj viņiem turpināt kalt LEO žetonus, jo mēs varējām uz printera “izdrukāt” kvadriljonu LEO žetonus, izmantojot to kodu..

Kā LEO īpašnieks varēja izdzēst kāda cita žetonus?

Funkcija “destrTokens” uz 477 ļauj LEO kontroliera seifam sadedzināt ikviena LEO žetonus, ieskaitot, bet neaprobežojoties ar tiem, kas atrodas centralizētā vai decentralizētā apmaiņā, aparatūras vai programmatūras makā, karstā vai aukstā glabātuvē un / vai papīrā vai smadzenēs. maciņš. Nav svarīgi, kur atrodas jūsu monētas. Viņi, ja vēlas, var izdzēst jūsu monētas. Tik vienkārši.

Parametri

  • _owner → Maks, no kura tiks sadedzināti esošie LEO žetoni.
  • _summa → Žetonu daudzums, ko “dzēst” no iepriekš minētās seifa adreses.

Papildu pierādījumi

Mēs nokopējām tieši to pašu kodu LEO ERC20 marķierim, kontrolierim un rūpnīcai, lai izvietotu šādu līgumu Ropsten testnet.

Maki / adreses

  • Nosūtītāja adrese: 0x58FA58089956c5cba21d9f61434B1902F8121b32
  • Nejauši ģenerēta adrese: 0xada183F6Ff6E7805EE5bDA701d40958858FeE548

Vispirms mēs nomainījām kontrolieri no Sūtītāja adreses uz “LEOController” kopiju, lai redzētu, vai mēs atkal varam mainīt kontrolleri atpakaļ uz Sūtītāja adresi, izmantojot funkciju “upgradeController”.

Soļi

  • Žetonu fabrika Izvietots
  • LEO žetons Izvietots
  • LEOController Izvietots
  • Pārbaudīja, kurš faktiski ir “kontrolieris” LEO marķiera līgumā: 0x58FA58089956c5cba21d9f61434B1902F8121b32.
  • Mainīja kontrolieri, izmantojot LEO līguma funkciju “changeController” uz iepriekš izvietoto “LEOController” līgums
  • Apstiprināts, ka kontrolieris faktiski tika mainīts uz viedā līguma adresi.

Šajā brīdī mūsu testnet LEO līgums ir tieši līdzīgs LEO ERC20 līgumam šādos veidos

  • LEO līguma kontrolieris ir gudrs līgums.
  • Kontroliera kods testnet precīzi sakrīt ar vienu Mainnet.

Tagad mēs cenšamies noteikt:

  • Ja mēs varam sadedzināt vai iznīcināt kāda cita LEO žetonus, vispirms nomainot kontrolieri.
  • Ja mēs varam izdot nenormāli lielu daudzumu LEO marķiera, lai redzētu, vai ir vāciņš.

Soļi

  • Lai gan šajā brīdī mēs zinājām, ka īpašniekam nav iespējams nomainīt “LEO” līguma kontrolieri, izmantojot funkciju “changeController”, mēs tomēr apzināti nosūtījām šo darījumu, lai tas atgrieztos vai neizdevās. Neizdevās
  • Mēs devāmies uz “LEOController” līgumu un izmantojām funkciju “upgradeController”, lai atkal nomainītu kontrolētā viedā līguma kontrolieri, t.i., LEO, uz Sūtītāja adresi.. Izdevās

Piezīme – ka mēs nomainījām kontrolieri no Sender uz viedo līgumu un pēc tam atkal atgriezāmies pie Sūtītāja, jo mēs vēlējāmies jums parādīt, ka mums ir diezgan viegli mainīt kontrolieri testnetā (un viņiem mainnetā).

Žetonu izsniegšana

Tā kā tagad Sūtītājs atkal ir LEO līguma kontrolieris, tas var piekļūt LEO līguma funkcijām “geneTokens” un “iznīcinātTokens”. Mēs ģenerējām nejaušu seifa adresi “0xada183F6Ff6E7805EE5bDA701d40958858FeE548”, lai nenormāli nosūtītu milzīgs daudzums LEO žetonu 1 000 000 000 000 000 000 000 000 000 000 000 000 000 (viens undeciljons) LEO pārskaitīts.

Dedzināšanas žetoni

Mēs vēlējāmies noteikt, vai mēs (sūtītājs) varam izdzēst vai iznīcināt žetonus no nejaušas adreses 0xada183F6Ff6E7805EE5bDA701d40958858FeE548, ko mēs iepriekš ģenerējām.

Veicot iepriekš minēto darījumu, mēs veiksmīgi sadedzinājām / izdzēsām / iznīcinājām 10 000 000 000 (desmit miljardus) žetonu no kāda cita maciņa vai adreses, kas mums nepiederēja.

Var redzēt, ka adreses “0xada183F6Ff6E7805EE5bDA701d40958858FeE548” atlikums tagad ir 999 999 999 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9) 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 1 9 tikai deviņi simti deviņdesmit deviņi kvintiljoni, deviņi simti deviņdesmit deviņi kvadriljoni, deviņi simti deviņdesmit deviņi triljoni, deviņi simti deviņdesmit miljardi) tikai testnet LEO žetoni.

Līgumu salīdzinājums

LEO Oriģināls Testnet Dif
MiniMeTokenFactory Oriģināls Testnet Dif
LEOController Oriģināls Testnet Dif

TLDR: Kā tas mani ietekmē?

Paolo Ardoino, Bitfinex CTO, atbildēja uz mūsu tvītu kurā izklāstīts šis jautājums, norādot:

“Drošības un nākotnes pierādījumu dēļ mēs atstājām iespēju arī uzlabot Token līgumu. Tā patiešām ir galvenā iezīme līgumam, kas varētu dzīvot daudzus gadus. Vairāk žetonu kalšanai Finex vienkārši nebūtu jēgas … piemēram, šaujot mums ar kāju. “

Mēs ne tikai mīlējām viņa tvītu, bet arī vēlētos publiski pateikties viņam par viņa atbildi, jo uzskatām, ka šādi mēs varam saukt sevi pie atbildības un palīdzēt virzīt šo nozari labākas nākotnes virzienā.

Tagad atgriezīsimies pie biznesa! Ievērojiet, ka viedie līgumi ir veidoti tā, lai tie būtu neuzticami. Bitfinex pārtrauc uzticību šeit, ieliekot šeit aizmuguri, kas viņiem dod biļeti, lai krāptu, kad vien nepieciešams, ar negodīgām priekšrocībām salīdzinājumā ar tādiem cilvēkiem kā jūs un es. Atkārtoti visā šajā rakstā vienīgais fakts, uz kuru esam norādījuši, ir viņu spēja pēc saviem ieskatiem kaldināt jebkuru skaitu (vai neierobežotu) LEO monētu un izdzēst jebkura seifa monētu tagad vai nākotnē.

Lai apkopotu un vienkāršotu visu mūsu netehniskajiem lasītājiem, mēs nenoliedzam un neapšaubām viedā līguma spēju būt jaunināmam. Šeit problēma nav tehniska, bet gan filozofiska. Ja jums viss ir kārtībā ar Bitfinex iespēju darīt to, ko viņi var darīt ar LEO, mēs to arī saprotam un respektējam jūsu viedokli. Bet mums LEO nespēlē labi ar blokķēdes garu un filozofiju, jo viņi var diktēt noteikumus. Turklāt, pamatojoties uz mūsu kļūdaino un pazemīgo izpratni, kriptonauda:

  • Jābūt atvērtiem visiem. Jūs varat nākt un iet, kā vēlaties. ✓
  • Jābūt taisnīgam. Nevienam nedrīkst būt negodīgas priekšrocības pār kādu citu. ✘
  • Jābūt iekļaujošam. To nevajadzētu attiecināt tikai uz ikvienu neatkarīgi no tā, ko viņš teica vai darīja, vai no kurienes viņš nāca, tā vietā, lai būtu pilnīgi vienaldzīga "PVO" tie ir vai "kas" viņi, iespējams, varētu kļūt. ✘
  • Jābūt izturīgam pret cenzūru, ja ne bez cenzūras. Nevienam nedrīkst liegt izmantot vai piekļūt nevienai funkcijai jebkurā noteiktā brīdī. Runājot par blokķēdes tīklu (šajā gadījumā vieds līgums), pret pat sliktiem dalībniekiem, piemēram, krāpniekiem, hakeriem un krāpniekiem, vajadzētu izturēties necenzēti – iekļaujoši, vienādi, atklāti un taisnīgi. Ja jūs nevarat cenzēt sliktus dalībniekus Bitcoin, kāpēc jums vajadzētu to izdarīt LEO? “Jaunināmība” neattaisno terminu diktēšanas “spēju”. ✘
  • Jābūt nemainīgam. Lai kas arī būtu noticis, tam vajadzētu palikt uz visiem laikiem, lai ikviens un visi varētu apstiprināt, piekrist vai nepiekrist. ✓
  • Tīklam jābūt decentralizētam. Nevajadzētu būt nevienai centrālai vienībai, kas varētu diktēt nosacījumus tam, kam jānotiek. Kaut arī Ethereum tīkls ir decentralizēts, LEO marķiera līgums nav tāpēc, ka viņi var diktēt noteikumus. ✘
  • Būtu jāizplata. Ikvienam vajadzētu būt iespējai iegūt tīkla vēsturi un apstiprināt datu autentiskumu. ✓

Cilvēki uzticas blokķēdei, jo tā ir neuzticama. Uzticamais neuzticamais blokķēdes raksturs lika tādiem cilvēkiem kā jūs un mani interesēties par šo apbrīnojamo tehnoloģiju.

Mēs personīgi nepieņemam nežēlību par Bitfinex, taču nebaidāmies rādīt ar viņiem ar pirkstu, kad jūtam, ka viņi kļūdās un ka viņiem jādara pareizi. Mēs piedāvājam Bitfinex risinājumu izveidot jaunu marķieri bez šādām funkcijām un apmainīt tos ar investoriem. Šī darbība vien varētu palielināt ieguldītāju uzticību LEO marķierim.

Visbeidzot, šīs debates var notikt aprindās, jo Bitfinex apgalvo, ka viņiem ir nepieciešama “uzlabošana” (vai tiešām?), Un mēs vienkārši nepieņemtu faktu, ka kāda cita monētu var izdzēst, pat ja tās nav mūsu. Ar šo mēs jums, mūsu apbrīnojamais lasītāj, nododam savu lēmumu un pārliecinieties, vai vēlaties uzticēties LEO ERC20 līgumam.