Pages:
Author

Topic: Stato DISASTROSO rete ethereum - page 22. (Read 6930 times)

legendary
Activity: 3276
Merit: 2898
August 27, 2021, 12:20:37 PM

Comincio a credere (a temere) che qualsiasi cosa succeda su ethereum, per quanto grave,  non importi nulla a nessuno.
Forse solo un blocco totale della rete potrebbe impattare, ma tutto il resto passa inosservato.
legendary
Activity: 3276
Merit: 2898
August 27, 2021, 12:18:15 PM
Ho rivisto e apportato alcuni suggerimenti con correzioni al testo tradotto inizialmente da filli.
Dal punto di vista tecnico non mi sono espresso non essendo mia materia, a livello linguistico mi sembra fili ho condiviso soltanto migliorie minimali e aggiunto alcuni punti che secondo me andavano menzionati.
Per il resto, per lo scopo del thread a me sembra pronto per essere dato in pasto al mondo.
https://docs.google.com/document/d/1lVAFE-2RjhTqPS8P58ZaW8uBE2bhWz-3n0ksZRJ39Wk/edit

Ho accettato le revisioni proposte da acquafredda.
A questo punto @gbianchi, se vuoi aggiornare il codice, dovremmo essere pronti.



Fammi una cortesia, come eravamo d'accordo passami via PM la pagina formattata con
il formato del forum. Preferisco metterla a punto qui sul forum, gia' nel formato che poi usero' per il post.
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
August 27, 2021, 09:50:36 AM
#99
Ho rivisto e apportato alcuni suggerimenti con correzioni al testo tradotto inizialmente da filli.
Dal punto di vista tecnico non mi sono espresso non essendo mia materia, a livello linguistico mi sembra fili ho condiviso soltanto migliorie minimali e aggiunto alcuni punti che secondo me andavano menzionati.
Per il resto, per lo scopo del thread a me sembra pronto per essere dato in pasto al mondo.
https://docs.google.com/document/d/1lVAFE-2RjhTqPS8P58ZaW8uBE2bhWz-3n0ksZRJ39Wk/edit

Ho accettato le revisioni proposte da acquafredda.
A questo punto @gbianchi, se vuoi aggiornare il codice, dovremmo essere pronti.
legendary
Activity: 1316
Merit: 1481
August 27, 2021, 07:05:09 AM
#98
Ho rivisto e apportato alcuni suggerimenti con correzioni al testo tradotto inizialmente da filli.
Dal punto di vista tecnico non mi sono espresso non essendo mia materia, a livello linguistico mi sembra fili ho condiviso soltanto migliorie minimali e aggiunto alcuni punti che secondo me andavano menzionati.
Per il resto, per lo scopo del thread a me sembra pronto per essere dato in pasto al mondo.
https://docs.google.com/document/d/1lVAFE-2RjhTqPS8P58ZaW8uBE2bhWz-3n0ksZRJ39Wk/edit
legendary
Activity: 3276
Merit: 2898
August 26, 2021, 04:56:58 PM
#97
Interessante discussione.

La possibilità (teorica o pratica) di questo tipo di attacchi è una conseguenza delle scelte architetturali di Ethereum che ha preferito integrare nello stesso layer base le funzioni monetarie (ether, con cui si pagano le fees anche degli smart contracts) e quelle computazionali (gli smart contracts).

L'attacco di spam di cui si parla in questo thread non sarebbe concettualmente molto diverso da mandare avanti e indietro gli stessi satoshi su rete Bitcoin per N volte fin quando lo spazio di blocco non viene saturato rendendo impossibile processare nuove transazioni. Anche lì tutto si tradurrebbe in un'analisi costi-risultati.

La differenza sta appunto nel fatto che i vettori di attacco su Bitcoin si limitano all'aspetto monetario, mentre su Ethereum coinvolgono il lato monetario e quello computazionale, che sono indissolubilmente legati.

La scelta adottata da Bitcoin è stata invece quella di tenere gli smart contracts di tipo Turing-complete fuori dalla catena principale (su una sidechain come RSK): in questo modo un attacco del tipo descritto su questo thread avrebbe effetti solo sulla sidechain, il cui gas è una valuta parallela a bitcoin (RBTC), e non pregiudicherebbe in nessun modo il funzionamento del layer monetario di base.

Una architettura più complessa, più difficile da sviluppare ma più facile da mantenere e da proteggere nel suo "core" (la blockhain bitcoin principale).  

Per quanto riguarda lo scaling e la decentralizzazione di Ethereum la strada intrapresa è quella dello "sharding", ma viene, come il passaggio al POS, periodicamente rimandato. Le ultime news sono nel 2022 sebbene i contorni di questa tecnologia siano ancora molto fumosi

https://ethereum.org/en/eth2/shard-chains/#what-is-sharding


infatti la modulazione di costi degli opcode e' un tema fisso (anche se per nulla publicizzato)
degli hard fork. QUi ad esempio definisce
https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/berlin.md
una nuova rimodulazione del costo degli opcode.

Effettivamente l'assegnare un costo "adeguato" agli opcode dovrebbe essere una funzione dinamica,
in base all'utilizzo medio. Il solo fatto di avere degli opcode a costo prefissato e' un errore progettuale non da poco.

Supponiamo che la mia strategia di attacco funzioni, e che la soluzione sia di aumentare il costo dell'opcode "jumpdest" con un hard fork.
Ma immediatamente si puo' riproporre un attacco del genere su un altro tipo di opcode appena piu' costoso.

E cosi' via all'infinito.


 
legendary
Activity: 2380
Merit: 4165
August 26, 2021, 04:47:58 PM
#96
Interessante discussione.

La possibilità (teorica o pratica) di questo tipo di attacchi è una conseguenza delle scelte architetturali di Ethereum che ha preferito integrare nello stesso layer base le funzioni monetarie (ether, con cui si pagano le fees anche degli smart contracts) e quelle computazionali (gli smart contracts).

L'attacco di spam di cui si parla in questo thread non sarebbe concettualmente molto diverso da mandare avanti e indietro gli stessi satoshi su rete Bitcoin per N volte fin quando lo spazio di blocco non viene saturato rendendo impossibile processare nuove transazioni. Anche lì tutto si tradurrebbe in un'analisi costi-risultati.

La differenza sta appunto nel fatto che i vettori di attacco su Bitcoin si limitano all'aspetto monetario, mentre su Ethereum coinvolgono il lato monetario e quello computazionale, che sono indissolubilmente legati.

La scelta adottata da Bitcoin è stata invece quella di tenere gli smart contracts di tipo Turing-complete fuori dalla catena principale (su una sidechain come RSK): in questo modo un attacco del tipo descritto su questo thread avrebbe effetti solo sulla sidechain, il cui gas è una valuta parallela a bitcoin (RBTC), e non pregiudicherebbe in nessun modo il funzionamento del layer monetario di base.

Una architettura più complessa, più difficile da sviluppare ma più facile da mantenere e da proteggere nel suo "core" (la blockhain bitcoin principale).  

Per quanto riguarda lo scaling e la decentralizzazione di Ethereum la strada intrapresa è quella dello "sharding", ma viene, come il passaggio al POS, periodicamente rimandato. Le ultime news sono nel 2022 sebbene i contorni di questa tecnologia siano ancora molto fumosi

https://ethereum.org/en/eth2/shard-chains/#what-is-sharding
legendary
Activity: 3276
Merit: 2898
August 26, 2021, 03:26:20 AM
#95


Ma davvero ETH ha un yellow-paper?
Conoscevo i white paper, anche prima di Bitcoin.... ma yellow paper mi è nuova... anche se apparentemente c'è un significato:



Si, anche se (come ho gia' scritto) assomiglia un po' alla scritta sul muro della fattoria degli animali...
per essere buoni diciamo che e' abbastanza fluido. Infatti lo tengono in github.

Io nel frattempo ho fatto qualche piccola modifica al codice per renderlo piu' facilmente utilizzabile,
e anche meno palesemente "inutile" (per rendere un po' piu' difficile un'eventuale individuazione automatica)


EDIT

ecco una lista delle versioni
https://github.com/ethereum/yellowpaper/blob/master/BRANCHES.md


che mostra che e' stato gia' fatto questo hard fork  (tangerine-wistle)  
con aumento di costi per istruzioni Smiley


    Increase the gas cost of EXTCODESIZE to 700 (from 20).
    Increase the base gas cost of EXTCODECOPY to 700 (from 20).
    Increase the gas cost of BALANCE to 400 (from 20).
    Increase the gas cost of SLOAD to 200 (from 50).
    Increase the gas cost of CALL, DELEGATECALL, CALLCODE to 700 (from 40).
    Increase the gas cost of SELFDESTRUCT to 5000 (from 0).
    If SELFDESTRUCT hits a newly created account, it triggers an additional gas cost of 25000 (similar to CALLs).
    Increase the recommended gas limit target to 5.5 million.
    Define “all but one 64th” of N as N - floor(N / 64).
    If a call asks for more gas than the maximum allowed amount (i.e. the total amount of gas remaining in the parent after subtracting the gas cost of the call and memory expansion), do not return an OOG error; instead, if a call asks for more gas than all but one 64th of the maximum allowed amount, call with all but one 64th of the maximum allowed amount of gas (this is equivalent to a version of EIP-901 plus EIP-1142). CREATE only provides all but one 64th of the parent gas to the child call.


e questo hard fork spurious-dragon ha aumentato il costo di EXP

legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
August 26, 2021, 02:49:56 AM
#94


Nel frattempo mi appunto qui qualche link che sono certo mi verra' utile,



Aggiunti, insieme al yellow-paper, in una sezione REFERENCES alla fine del documento.
Così sembra molto più professionale.



Ma davvero ETH ha un yellow-paper?
Conoscevo i white paper, anche prima di Bitcoin.... ma yellow paper mi è nuova... anche se apparentemente c'è un significato:

Differences Between a White Paper, Yellow Paper, and Beige Paper
Quote

The Yellow Paper
A yellow paper is a more technical version of the white paper. It presents the scientific details of the technology in a very concise way. If you think of a white paper as a proposal, the yellow paper can be a part two where all the specific details are.
legendary
Activity: 3276
Merit: 2898
August 25, 2021, 05:16:43 PM
#93
Va bene sezione alt-coin, dato che shitcoin ancora non c'è  Grin
Appena possibile cerco di riguardarla ma penso il buon merit rascal abbia fatto certamente un buon lavoro.
Sì senza dubbio si può partire da qui anche se sarebbe bello sottoporla anche su piattaforme più eth based che non ho idea di quali siano.

Grazie, appena lo hai controllato dillo a filippone che mi prepara il formato "postabile"

Nel frattempo mi appunto qui qualche link che sono certo mi verra' utile,
si parla delle funzioni "pure" (e' proprio una sintassi di solidity)
ossia le funzioni che non leggono ne' scrivono sulla blockchain,
ma sono esclusivamente computazionali.


https://ethereum.github.io/yellowpaper/paper.pdf (sezione 6 dello yellow paper modalita' di esecuzione degli smart contract)
https://ethereum.org/en/developers/docs/consensus-mechanisms/pow/mining/
https://medium.com/mycrypto/the-ethereum-virtual-machine-how-does-it-work-9abac2b7c9e
https://ethereum.stackexchange.com/questions/357/does-every-node-execute-the-contract-code-for-each-transaction
https://ethereum.stackexchange.com/questions/52885/view-pure-gas-usage-cost-gas-if-called-internally-by-another-function
https://ethereum.stackexchange.com/questions/765/what-is-the-difference-between-a-transaction-and-a-call/770
https://blog.b9lab.com/calls-vs-transactions-in-ethereum-smart-contracts-62d6b17d0bc2
https://infernaltoast.medium.com/how-bitcoin-and-ethereum-solved-the-halting-problem-differently-cffbb4e3045c
https://www.quora.com/Why-is-Bitcoin-not-Turing-complete

Da non includere
https://raw.githubusercontent.com/chronaeon/beigepaper/master/beigepaper.pdf
https://hugonguyen.medium.com/why-ethereum-architecture-is-flawed-d4eefd15db3e
https://ethereum.stackexchange.com/questions/78310/smart-contract-execution-without-making-transaction-on-ethereum-blockchain
...
legendary
Activity: 1316
Merit: 1481
August 25, 2021, 12:27:10 PM
#92
Va bene sezione alt-coin, dato che shitcoin ancora non c'è  Grin
Appena possibile cerco di riguardarla ma penso il buon merit rascal abbia fatto certamente un buon lavoro.
Sì senza dubbio si può partire da qui anche se sarebbe bello sottoporla anche su piattaforme più eth based che non ho idea di quali siano.
legendary
Activity: 3276
Merit: 2898
August 24, 2021, 04:18:24 AM
#91

Potete partire da questo ed usarlo e modifcarlo.



TI ho messo qualche nota, guarda se le vedi

Ho accettato i suggerimenti, e già che c'ero ho corretto qualche errore di battitura e reso un pò più snella la forma.
Giusto per evitare troppi sbattimenti formattando il documento con link o quant'altro: vuoi pubblicare solo in un thread qui su bitcointalk o vuoi metterlo su medium/ altre parti?


In una prima fase probabilmente e' meglio mtterlo qui su bitcointalk come post.

Tipo, se arriva uno e mi dice "e' una solenne cazzata per questo e quest'altro FONDATO motivo" allora e' inutile qualsiasi sbattimento ulteriore.
Oppure arriva un'altro e fa "ah si interessante ma c'e' questo e quest'altro che non funziona" e quindi bisogna sistemarlo...
insomma direi che in una prima fase e' meglio stare fluidi Smiley


Sono d'accordissimo.
Quando pensi che sia pronto, magari aspettiamo anche acquafredda, posso prepararti la versione "codificata" per bitcointalk (link, elenchi etc) e te la mando via PM, in modo che tu possa quindi semplicemente copiare come OP su un nuovo thread.



Ok perfetto, poi quando me la manderai prima la posto qui per vedere che faccia fa, poi se va bene creo un thread nella sezione alt-coin internazionale.

qui per capirci : https://bitcointalk.org/index.php?board=67.0

(o sai se c'e' una sezione piu' adatta?)
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
August 24, 2021, 04:15:57 AM
#90

Potete partire da questo ed usarlo e modifcarlo.



TI ho messo qualche nota, guarda se le vedi

Ho accettato i suggerimenti, e già che c'ero ho corretto qualche errore di battitura e reso un pò più snella la forma.
Giusto per evitare troppi sbattimenti formattando il documento con link o quant'altro: vuoi pubblicare solo in un thread qui su bitcointalk o vuoi metterlo su medium/ altre parti?


In una prima fase probabilmente e' meglio mtterlo qui su bitcointalk come post.

Tipo, se arriva uno e mi dice "e' una solenne cazzata per questo e quest'altro FONDATO motivo" allora e' inutile qualsiasi sbattimento ulteriore.
Oppure arriva un'altro e fa "ah si interessante ma c'e' questo e quest'altro che non funziona" e quindi bisogna sistemarlo...
insomma direi che in una prima fase e' meglio stare fluidi Smiley


Sono d'accordissimo.
Quando pensi che sia pronto, magari aspettiamo anche acquafredda, posso prepararti la versione "codificata" per bitcointalk (link, elenchi etc) e te la mando via PM, in modo che tu possa quindi semplicemente copiare come OP su un nuovo thread.

legendary
Activity: 3276
Merit: 2898
August 24, 2021, 04:12:34 AM
#89

Potete partire da questo ed usarlo e modifcarlo.



TI ho messo qualche nota, guarda se le vedi

Ho accettato i suggerimenti, e già che c'ero ho corretto qualche errore di battitura e reso un pò più snella la forma.
Giusto per evitare troppi sbattimenti formattando il documento con link o quant'altro: vuoi pubblicare solo in un thread qui su bitcointalk o vuoi metterlo su medium/ altre parti?


In una prima fase probabilmente e' meglio mtterlo qui su bitcointalk come post.

Tipo, se arriva uno e mi dice "e' una solenne cazzata per questo e quest'altro FONDATO motivo" allora e' inutile qualsiasi sbattimento ulteriore.
Oppure arriva un'altro e fa "ah si interessante ma c'e' questo e quest'altro che non funziona" e quindi bisogna sistemarlo...
insomma direi che in una prima fase e' meglio stare fluidi Smiley
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
August 24, 2021, 04:03:38 AM
#88

Potete partire da questo ed usarlo e modifcarlo.



TI ho messo qualche nota, guarda se le vedi

Ho accettato i suggerimenti, e già che c'ero ho corretto qualche errore di battitura e reso un pò più snella la forma.
Giusto per evitare troppi sbattimenti formattando il documento con link o quant'altro: vuoi pubblicare solo in un thread qui su bitcointalk o vuoi metterlo su medium/ altre parti?
legendary
Activity: 3276
Merit: 2898
August 24, 2021, 02:19:43 AM
#87

Potete partire da questo ed usarlo e modifcarlo.



TI ho messo qualche nota, guarda se le vedi
legendary
Activity: 1316
Merit: 1481
August 23, 2021, 08:05:14 AM
#86
Grande fillippone, poi la riguardo anche io con calma.   Wink
Non capisco perché si parli di spocchia: qui qualcuno sta cercando semplicemente di testare (e con questo verificare e validare) una rete che dovrebbe essere permissionless e open source. Se dobbiamo prenderla per buona... Stiamo freschi.
full member
Activity: 1064
Merit: 166
August 23, 2021, 02:29:00 AM
#85
Ok bianchi hai ragione tu allora.  Cool

Allora, io spero col cuore che gbianchi abbia ragione, ma temo che, per i motivi sopra più volte esposti, possa avere ragione tu.
Però se potessi spiegarci un pò meglio perchè non funziona, la discussione sarebbe molto più interessante.
Quindi per adesso aiuto il nostro con il suo esperimento...




cosi' magari gli passa anche la spocchia a gbianchi  Roll Eyes
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
August 22, 2021, 05:15:27 PM
#84
Se qualcuno vuole iniziare...

Ho già iniziato.
Solita tecnica di GT + revisione a mano.
Stasera condivido qualcosa.


uhhh grazie!!!

Prima versione.
Tieni conto che stocrollando dal sonno.
Potete comunque commentare eventuali suggerimenti.

https://docs.google.com/document/d/1lVAFE-2RjhTqPS8P58ZaW8uBE2bhWz-3n0ksZRJ39Wk/edit?usp=sharing

Potete partire da questo ed usarlo e modifcarlo.

Ps. è una prima bozza... sto letteralmente crollando dal sonno, alla mia età certi sbattimenti potrebbero essermi fatali.
legendary
Activity: 3276
Merit: 2898
August 22, 2021, 05:05:10 PM
#83
Girovagando in cerca di info:

https://ethereum.org/en/developers/docs/gas/

Quote
Why do gas fees exist?

In short, gas fees help keep the Ethereum network secure. By requiring a fee for every computation executed on the network, we prevent bad actors from spamming the network. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas".


In queste righe della documentazione ufficiale, dicono candidamente che uno degli scopi per cui si pagano gas e' anche evitare loop infiniti.
Anzi, era proprio previsto ESATTAMENTE QUESTO CASO: hostile infinite loops

questo vuol implicitamente dire che e' possibile fare loop infiniti, e come ho scritto terminano quando si e' finito il gas.
e vuole anche dire che il loop si puo' lanciare e che l'unico meccanismo di salvataggio  e' quanto ci si e' disposti ad investire rispetto ai danni che si possono fare.

Ora la partita e' fondamentalmente nel vedere se avevano previsto una rete gia' di per se congestionata
e un loop altamente ottimizzato (o pessimizzato a seconda dei punti di vista) al costo medio per opcode di un gas.
e un mercato da centinaia di miliardi di dollari, dove gruppi potrebbero investire cifre stratosferiche in una operazione destabilizzazione.

Vedremo.

PS: C'e' anche un errore logico: se ethereum e' permissionless, e la gente puo' immettere qualsiasi smart contract basta che paghi,
perche dovrebbero essere dei "Bad actors"? questo vuol dire non avere le idee chiare... bad actors e' un giudizio morale...
ma se pago e seguo le regole del network io non sono un bad actor, oppure mi crei delle regole per NON POTER FARE certe cose.
Quali sono le azioni Bad e quelle Good? Non mi pare che rientri nelle regole di consenso dei nodi. Lo decide Buterin?


PPSS: piu' leggo queste cose e piu' mi puzza puzza puzza che abbiano eradicato certe istruzioni dai nuovi compilatori solidity


Pages:
Jump to: