BNB è davvero un token ERC-20?. C'e' un problema che vorrei sollevare qui. Questo problema è stato portato alla luce dal team dietro Futereum, che ha trovato un bug importante con il token Binance (BNB) che avrebbe dovuto essere già risolto.
Se vai a Etherscan e cerchi il token Binance, sarai in grado di vedere che legge [ERC-20], il che significa che dovrebbe obbedire allo standard ERC-20 rilasciato dal team Open Zeppelin, disponibile qui.
Naturalmente, nessun standard è privo di bug - non importa quanto sia grande una squadra. Proprio l'anno scorso, è stato riferito che c'erano 130 token ERC-20 interessati da un problema in cui le funzioni di trasferimento dei contratti token non restituivano nulla quando richiamati. In sostanza, come spiegato da Lukas Cremer, il problema era:
“Il contratto chiamante invia una chiamata esterna a [BadToken], che elabora la chiamata, effettua il trasferimento e non restituisce un valore di ritorno booleano. Il contratto chiamante ora cerca il valore restituito nella memoria, ma poiché il token non ha scritto un valore restituito, prenderà tutto ciò che trova in questa posizione di memoria come valore restituito della chiamata esterna. Questo è già abbastanza brutto: prendere alcuni dati che si trovano in uno slot di memoria come valore di ritorno non è una buona idea.”
Qual e' il rischio?
Come descritto sopra, il rischio maggiore è che un contratto intelligente che si aspetta un'interfaccia ERC-20 non sarà in grado di interagire con il contratto del token precedente (se compilato con la versione Solidity ≥ 0.4.22). Ciò potrebbe significare che i token inviati a tale contratto rimarranno bloccati lì per sempre, anche se il contratto ha una funzione per trasferire token ERC-20.
Il problema sembra essere molto più grande per Binance semplicemente perché sta costruendo il proprio ecosistema di scambio decentrato (DEX) e blockchain. Posso pensare a due situazioni problematiche:
I token BNB non possono essere inviati a uno scambio decentrato che ha compilato un contratto con Solidity versione ≥ 0.4.22.
Se Binance utilizza la stessa logica di contratto intelligente per creare Binance DEX, nessun token ERC-20 funzionerebbe lì. Naturalmente, questa è puramente speculazione, poiché la qualità di sviluppo del token BNB non determina la qualità di Binance.
Possibili soluzioni?
È interessante notare che Binance vuole che i token ERC-20 migrino verso la propria blockchain, la Binance Chain, che mi sembra un po' inverosimile. A rigor di termini, non vedo una buona ragione per cui una squadra non abbia accettato un protocollo molto più sicuro come Ethereum o Stellar. L'unico vantaggio che vedo è che i progetti potrebbero essere in grado di risparmiare alcuni (milioni) dollari sulle commissioni di quotazione, in più forse avranno voce in capitolo sul consenso blockchain, in quanto sarà basato su DPO.
In una recente intervista, il fondatore di Binance Changpeng' CZ' Zhao ha detto:
“La Binance Coin migrerà alla Binance Chain come moneta nativa. Stiamo anche incoraggiando altri token ERC-20 a migrare a Binance Chain. Ci sono molti vantaggi per farlo. Binance Chain è una catena più veloce; è super facile creare un token su Binance Chain. Non ci sono contratti intelligenti da programmare, è più sicuro, c'è meno spazio per i bug [...]”
Se l'obiettivo della tecnologia blockchain è aumentare il decentramento, questo sembra il modo sbagliato di promuoverlo. Tuttavia, come CZ ci ha ricordato durante un'intervista su Ivan on Tech, Binance è una società privata il cui obiettivo è quello di fare soldi (e scommetto il più possibile).
Dovremmo lasciare il futuro delle criptovalute nelle mani di un'altra società privata?
Binance ha creato un prodotto significativo che collega milioni di utenti ogni giorno. Io stesso sono stato un utente regolare di Binance sin dal suo inizio, e posso tranquillamente dire che ha una delle migliori interfacce utente là fuori.
Spero che Binance DEX mi dimostrerà che ho torto e che l'intero ecosistema sarà veramente decentrato.
Disclaimer: The views and opinions expressed by the author should not be considered as financial advice. We do not give advice on financial products.