Bitcoin Forum
September 24, 2024, 10:11:29 AM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 ... 195 »
821  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 05, 2021, 07:59:28 PM
Ho fatto una nuova versione del documento, molto piu' efficace della precedente, per diversi motivi:

1) funziona
2) e' il compendio di settimane di studio e discussioni qui nel thread
3) ci sono diversi  riferimenti a casi precedenti e ben documentati
4) Introduce tutta una serie di concetti che se anche non usati (BlockStuffing, MEV)
   dovrebbero mettere molti dubbi sullo stato della rete ad un lettore minimamente tecnico (come e' successo qui nel thread)
5) e' meno tecnico-spinto (no assembler evm o amenita' simili) quindi piu' comprensibile a tutti.
6) Metto anche due esempi di smart contract fuzionanti (provati con la evm geth)
7) Indico una sommaria metodologia di esecuzione.

questa potrebbe essere la versione da mettere su reddit.
Se ci date una letta e mi indicate svarioni, mi fate un cortesia.

---------------------------------------------------------------


Una strategia di attacco alla rete ethereum basata sulla tecnica BlockStuffing e lo smart contract DeathStar

Di gbianchi bitcointalk.org

questo studio nasce da alcune osservazioni:

1) nella rete ethereum non esiste nessun concetto di "smart contract vietato", la rete e' permissionless
   ossia qualsiasi utente puo' immettere in rete qualsiasi tipo di codice, basta che il codice sia formalmente corretto
   e che paghi il caricamento e l'esecuzione del codice.

2) L'unico meccanismo per "governare" l'esecuzione del codice  e' il fatto che l'esecuzione di qualsiasi
   smart contract costa gas, proporzionale al numero di istruzioni eseguite ed al tipo di istruzioni.
   Ma non necessariamente uno Smart Contract deve eseguire operazioni utili, puo' semplicemente eseguire un loop
   che "brucia" gas senza nessuna logica elaborativa.

3) Una volta immesso, il codice e' immutabile, quindi non vi e' modo di "togliere di mezzo" lo smart contract dalla rete,
   a meno di un hard fork tipo DAO. Ma mentre Dao sfruttava un bug, qui viene utilizzata l'architettura di base di ethereum,
   rendendo veramente difficile la progettazione di un hard fork abbastanza efficace.

4) Ogni blocco ha una dimensione massima definita non dalle dimensioni in Byte, ma dal massimo GAS spendibile nel blocco.
   Dopo l'hard-fork London,  la dimensione "normale" del blocco e' variabile attorno ad una media di 15.000.000 di gas,
   e puo' aumentare fino a 30.000.000 di gas in base alla  domanda della rete, con un processo chiamato tâtonnement.
   Sinteticamente la massima dimensione di un blocco e' data da BlockGasLimit.

5) in passato sono gia' stati eseguiti degli attacchi con la tecnica di BlockStuffing e non sono state trovate soluzioni
   strutturali efficaci. [3]

Quote
3.3.3 DoS with Block Stuffing (V31
). This vulnerability was first observed from the Fomo3D contract [23].
The vulnerability entails only the attacker's transactions being included in the newly mined blocks
while others are abandoned by miners for a period of time. This can happen when the attacker offers a higher
gasPrice to incentivize the miners to select the attacker's transactions. This vulnerability is caused by the greedy
mining incentive mechanism. At the moment of writing, there is no solution to prevent this vulnerability.
 

6) Possono inoltre essere utilizzate tecnologie avanzate di MEV [4][5] per ottimizzare al massimo la possibilita' che il nostro
   smart contract sia incluso nel blocco successivo, scandagliando la mempool e verificando quali sono le fee con gwei/gas piu' alto
   per eseguire la transazione con la massima probabilita' di essere inclusa.  


In base a queste osservazioni, si puo' progettare uno smart contract "DeathStar" la cui esecuzione costi esattamente il numero di
gas necessari a riempire un blocco, e che quindi "bruci" ethereum solo per competere con gli altri smart contract nel riempimento di un blocco.

Sinteticamente, la transazione sta comprando l'intero spazio di un blocco ethereum, e quindi non ne resta a disposizione
per l'esecuzione di altri smart contract.

Motivazioni per un attacco BlockStuffing:

Un gruppo di attaccanti potrebbe essere incentivato per svariati motivi a bruciare ethereum per mettere in difficolta' la rete, ad esempio:

- ad esempio essere i sostenitori di un'altra moneta competitor, non soggetta a queto tipo di problema (ad esempio Bitcoin)
- oppure organizzare  uno short su ethereum prima dell'attacco, congestionare la rete ethereum e ricoprirsi a prezzi piu' bassi,
  recuperndo i soldi dell'attacco e guadagnandoci
- rallentare e/o indirizzare a proprio vantaggio uno o piu' degli svariati smart contract che girano su ethereum, ad esempio  
  posticipare l'esecuzione di altri smart contract per avvantaggiarsi di certe condizioni
  (estrazioni a premi, aste online, ICO, transazioni finanziarie su DEX, Defi, ecc... come e' gia' stato fatto [2])
 
In generale qualsiasi persona o gruppo con sufficenti mezzi e con un qualsiasi tipo di interesse alla decadenza della rete ethereum
e/o degli smart contract che vi girano, potrebbe usare questa linea di attacco.

Per fare una stima del costo necessario, considerare che viene minato un blocco ethereum ogni circa 15 secondi.
Stimando la dimensione del blocco media di 15.000.000 di gas, e un costo gas di 100 gwei, sono circa 1.5 ethereum per blocco.
Aggiungendo una fee del 10% per essere i piu' competitivi, potremmo stimare un costo per blocco di circa  1.65 ethereum.
A questo costo del gas, al cambio attuale di circa 4000$ per un eth un attacco della durata di 60 minuti verrebbe a costare circa 400 ethereum
ossia circa 1.600.000$ una cifra molto ridotta in rapporto al valore della rete di centinaia di miliardi di dollari.

Ovviamente questa stima varia in base al costo attuale del gas in gwei, e al tasso di conversione eth/usd, entrambi estremamente variabili.


Descrizione tecnica di DeathStar

Utilizzando il linguaggio solidity, viene codificato uno smart contract che esegue un loop che brucia tutto il gas
passato dalla transazione chiamante con il parametro GasLimit.

Eventualmente si possono creare varie versioni leggermente diverse di DeathStar, per renderne piu' difficile
l'individuazione da un eventuale HardFork o da un software di filtro aggiunto dai miner o dai nodi,
ma tutte funzionanti in base alla stessa logica come negli esempi che riporto:

Esempi Codice di DeathStar:

Code:
// questa versione poco prima di finire il gas si ferma,
//  lasciando un piccolo margine di gas per eseguire le istruzioni di return senza errore
pragma solidity ^0.6.0;
contract DeathStar_a
   {
   function DeathLoop_a() public payable returns (bool)
      {
      uint left = 0;

      while(true)
              {
              left = gasleft();

              // poco prima di finire il gas si ferma,
              //  lasciare un piccolo margine di gas per eseguire le istruzioni di return senza errore
              if (left < 1000)
                {
                break;
                }
              }

      return(true);
     }
   }


Code:
// questa versione cicla fino ad arrivare all'errore out of gas.
pragma solidity ^0.6.0;
contract DeathStar_b
   {
   function DeathLoop_b() public payable returns (bool)
      {
      while(true)
              {
              }

      return(true);
     }
   }


Descrizione sintetica della dinamica dell'attacco BlockStuffing:

1) lanciare un proprio nodo geth: geth   --syncmode "light"  --mainnet
    si sincronizza in un attimo perche' fa il download della blockchain precedente.
    servira' per essere autonomi e non passare da api proprietarie che potrebbero bannarci durante l'attacco.

2)  pre-caricare in rete un certo numero di smart-contract deathStar
    ognuno ad un address diverso e con codice leggermente diverso,
    per rendere difficile sia il riconoscimento da parte delle mining pool che un possibile hard fork,
    (DeathStar_a, DeathStar_b ecc..)

3) Reperire un numero adeguato di eth in base alla  durata dell'attacco e al costa attuale del gas in gwei e pre caricarli su un certo numero di indirizzi origine.
   (15.000.000 dimensione media blocco * (costo gas in gwei + fee di incentivo per essere sicuramente inclusi))/1.000.000.000
    = costo in ethereum per 15 secondi di attacco)

4) crere uno script (python, perl, c, go.... un linguaggio a piacere) che usa chiamate RPC su geth
e fa piu' o meno le cose qui descritte sommariamente:

# se DeathLoop_a smette di funzionare,
# passare a DeathLoop_b e cosi' via.
CalledDeathStar=Deathloop_a

while( nuovo blocco minato)
   {
   legge la baseFeePerGas e il BlockGasLimit attuali.  
   calcola GasBurned=BlockGasLimit-X (X serve per lasciare un piccolo spazio anche alle altre transazioni, da decidere se X > 0)
   calcola le fee della tranzasione: MaxFeePerGas(in gwei)=BaseFeePerGas + Tip  
       (dove tip e' la percentuale che va ai miner, diciamo il 20% per essere sicuri di essere inclusi velocemente oppure usare tecniche MEV per ottimizzare al massimo)
   crea una transazione con gasLimit=GasBurned, MaxFeePerGas, che esegue lo smart contract CalledDeathStar da un indirizzo random di quelli origine.
       (anche l'indirizzo origine varia per evitare di essere riconosciti e bloccati facilmente)

   # opzionale
   while (la nostra transazione non e' inclusa in un blocco minato)
     {
     usare tecniche MEV per controllare nella mempool le fee delle altre transazioni
     se sono state caricate tranzasioni con fee piu' alte  alzare le fee alla nostra transazione
        reimmettendo in rete una transazione con la stessa nonce e fee aumentate.
     }
   }

5) eseguire lo script.


Un ringraziamento ai ragazzi della comunita' italiana di bitcointalk.org (filippone, acquafredda, HostFat, jack0m ed altri)
che mi hanno dato spunti interessanti per la realizzazione di questo studio.

References:
1) https://ethereum.github.io/yellowpaper/paper.pdf
2) https://medium.com/hackernoon/the-anatomy-of-a-block-stuffing-attack-a488698732ae
3) https://dl.acm.org/doi/fullHtml/10.1145/3391195
4) https://www.coindesk.com/markets/2021/07/27/how-to-fix-ethereums-mev-problem-and-give-traders-the-best-price/
5) https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/
6) https://infernaltoast.medium.com/how-bitcoin-and-ethereum-solved-the-halting-problem-differently-cffbb4e3045c
7) https://www.quora.com/Why-is-Bitcoin-not-Turing-complete
822  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 05, 2021, 05:55:21 AM
L'operazione in se secondo me dovrebbe essere solo volta ad utilizzare una debolezza del protocollo.

escludendo lo short e la speculazione economica resta in pratica un ottimo esercizio per chi vuole smanettare con la rete ETH, di cui oltre ai costi abnormi non sappiamo nulla di cosa possa succedere.
quale vantaggio porterebbe una cosa del genere?




Dipende che valore dai alla rete bitcoin e allo sforzo che e' stato fatto per portarla in "salute" e davvero in grado di reggere gli scambi monetari di tutto il mondo,
e alla pletora di reti EVM o EVM like che stanno invece portando tossicita' nel mondo delle crypto.

Io credo che questa tossicita' alla fine faccia molto male, sempre piu' gente sta smanettando con cose delle
quali non capisce un tubo e sono profondamente tossiche. E lo stesso Bitcoin rischia alla fine di finire affogato in questo letamaio.

Nel primo post dissi che in fondo questa discussione non era cosi' OT come poteva apparentemente sembrare,
perche' secondo me e' importante capire quale e' l'impatto di ethereum  su Bitcoin.

Sono due visioni contrapposte dell'utilizzo di una rete decentralizzata.

Il vantaggio sarebbe rendere palese che la tecnologia alla base di ethereum non e' sostenibile (come aveva previsto nakamoto).

E poi ribadisco che nessuno vieta che ciascuno, singolarmente, possa anche avantaggiarsi economicamente dall'operazione.






 

823  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 05, 2021, 05:20:19 AM
Secondo me un interessante precedente e' il caso DAO.

Sostanzialmente hanno attaccato ethereum su una vulnerabilita' e hanno prelevato gli ether di un crowdfunding.

In quel caso (dove si poteva configurare anche un furto) in ogni caso quelli di ethereum non hanno deciso di procedere per vie legali,
ben sapendo che l'operazione sarebbe stata lunghissima e piena di indeterminatezza, ma hanno preso la decisione
di fare una fork, decisione molto pericolosa dal punto di vista "etico" della criptovaluta, infatti ha portato
alla creazione di due catene  eth ed etc, ma hanno comunque deciso per quella strada per risolvere la situazione
in tempi brevi.

In questo caso manca anche la componente furto, nel senso che io faccio un'azione fondamentalmente
onestissima, mi compro dei blocchi. Me li compro tutti pagandoli a prezzo di mercato, anzi leggermente di piu'.
E non c'e' nulla che me lo vieti nel protocollo e dubito anche in qualsiasi legislazione.

poi quello che succedera' sul mercato nessuno puo' saperlo con precisione. Magari non succede nulla,
magari ethereum crolla, ma poi come diceva qualcuno, magari di questo eventuale crollo se ne avantaggia
qualcuno piu' veloce e furbo di me.. insomma questa e' una fase ben diversa.

E per quello che forse l'operazione in se dovrebbe essere slegata dallo short, come indicavo in uno degli ultimi post.

L'operazione in se secondo me dovrebbe essere solo volta ad utilizzare una debolezza del protocollo.

Poi chi vuole farci degli short li fara' per conto suo.



.
824  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 04, 2021, 10:02:00 PM
In merito al punto che a nessuno interessanon gli aspetti tecnici,
deve essere il tipo di analisi che ha fatto BINANCE.

Hanno presto eth piu' o meno come e', l'hanno centralizzato che dei nodi
che loro chiamano PoS ma in realta' sono SOLO 21 nodi e per poter gestire un nodo devi
investirci centinaia di milioni di $ in BNB... In pratica ha i difetti tecnici di ETH
+ il difetto di essere apertamente centralizzato.

Ma a  loro viene comodissimo, cosi' almeno gestiscono le cose come vogliono
senza neppur dover fare la pantomima di chiedere alla comunita'.

Ed e' una delle crypto + rampanti che ci siano in circolazione in questo periodo,
infatti sta velocemente erodendo quote di mercato a ETH.

Insomma, credo che le soluzioni verranno dal rendere sempre piu'
effimere le parvenze di decentralizzazione (e in pratica centralizzare il tutto per renderlo piu' gestibile)
tanto agli utilizzatori non frega nulla.







825  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 04, 2021, 09:40:31 PM

quando si scopre una vulnerabilità in un software, esistono delle linee di condotta che distinguono l'ethical hacker dal black hat.
Se la vulnerabilità viene sfruttata lanciando un exploit in the wild, in conseguenza del quale qualcuno si ritiene danneggiato, quel qualcuno potrebbe cercare di identificare l'attaccante/i e rivalersi nei suoi confronti. Che è poi quello che è successo in diversi casi di hack di piattaforme defi. Altrimenti non si spiega come mai chi è riuscito recentemente a compiere un hack da 600M di $ si sia "pentito" e abbia deciso di restituire tutto. Forse perché ha avuto paura delle conseguenze legali? Altrimenti sarebbe da pazzi rinunciare a un bottino simile:

https://www.theverge.com/2021/8/23/22638087/poly-network-600-million-stolen-crypto-hack-restored-defi

Secondo me, dal punto di vista legale possono (chi?) farti causa (dove? in che tribunale?)
con che accusa di che legislazione? chiedendoti quali danni? con che periti?

insomma, forse qualcuno romperti i coglioni, ma la vedo dura che se la cavino velocemente
e ci rimedino qualcosa (e ripeto che non capisco inanzitutto chi sarebbe il soggetto)

Se invece mi dici che siccome qui parliamo di centinaia di miliardi di dollari, ti trovi a penzolare
appeso per parti non adibite a tale scopo, oppure a respirare liquidi, o con un numero decisamente alto di fratture...
mi trovi pienamente d'accordo (e forse questo tipo di argomenti sono ALTAMENTE convincenti)

Comunque, come ha scritto qualcuno, almeno ora ho due certezze

1) che ethereum in questa forma fa veramente cagare. No so se riusciranno a fare un miracolo tecnologico con ETH2,
   ma ne ho seri dubbi.

2) che a nessuno interessa veramente questo aspetto.

 
826  Local / Italiano (Italian) / Re: BITCOIN PUMP! on: September 04, 2021, 11:06:28 AM

Se dal lato dell'offerta i segnali sono molto positivi, non così da quello della domanda. I nuovi address (nuovi indirizzi che fanno la loro prima comparsa sulla blockchain) sono scesi molto e ancora lontani dai livelli di inizio anno.


I nuovi indirizzi sono il migliore indicatore in assoluto per stimare quanti nuovi acquirenti stanno arrivando. Di sicuro il wipeout del 19/05 ha allontanato/spaventato molti neofiti non ancora folgorati sulla via di Damasco dal significato profondo di holdare bitcoin. Non sarà facilissimo conquistarne di nuovi, di solito è necessario più tempo di 1-2 mesi.  

Concordo, anche io anni fa lo avevo usato per un tentativo di modello dei prezzi.

Ma attenzione: adesso c'e' una nuova variabile: LN. Ln sta rampando di brutto, e molta gente che faceva piccole tranzasioni adesso le fa in LN.

https://bitcoinvisuals.com/lightning

Quindi non so quanto si possa paragonare questo parametro col passato.

Tra l'altro secondo me LN (e anche l'adozione di SeGwit) sta impattando molto positivamente sulla rete, i blocchi sono molto meno  congestionati che in passato:

https://www.blockchain.com/charts/avg-block-size

Non ho mai visto bitcoin cosi' in salute!


827  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 03, 2021, 08:57:21 PM
Come dicevo qualche post fa secondo me l'eventuale tempo di "paralisi" della rete ethereum, se limitato a pochi blocchi avrebbe poco impatto sul valore di Eth perché oggi questa rete non server per tx mission critical ma solo per supportare attività che se anche un po' rallentate non avrebbero grandi conseguenze per gli utilizzatori.
Diverso sarebbe il discorso se riuscissi a bloccare per parecchio tempo, ma dovresti raccogliere parecchi Eth.
A questo riguardo temo che l'ipotesi:

l'idea sarebbe di organizzare un crowdfounding, quindi raccogliere capitali,
per realizzare questo grande short...

non potrebbe avere grande successo. Potresti anche attirare l'attenzione della community tuttavia:
- se la raccolta fosse di poco valore..... come sopra: tentativo irrilevante
- se invece riuscissi a raccogliere parecchio penso che in tanti starebbero a guardare le successive mosse (anche senza contribuire al crowdfunding) e otterresti l'effetto Robinhood/Game Stop: gente che senza aver partecipato inizierebbe a fare short appena prima del tuo uscendo poi in anticipo.

Insomma attireresti parecchi avvoltoi che cercherebbero di consumare il pasto appena prima di te.
Tenere segrete le date sarebbe difficile: chi potrebbe partecipare ad un crowdfunding accettando di essere tenuto all'oscuro dell'esecuzione dell'operazione ? difficile......



Hai ragione, e poi fondamentalmente sarebbe anche fuori dallo spirito della cosa.
Ragionare in termini speculativo o contro-speculativi non va bene.

Mi hai fatto pensare ad un ritorno alle radici: hai presente le famose parole di Hal Finney

“Since we're all rich with bitcoins, or we will be once they're worth a million dollars like everyone expects, we ought to put some of this unearned wealth to good use.”

L'idea potrebbe essere una chiamata alle armi dei vecchi bitcoiners.

Dopo questo studio, io sono PROFONDAMENTE convinto che il modello ethereum con tutto cio' che gli
hanno costruito sopra sia profondamente TOSSICO, e alla lunga fara' danni enormi.

E non sarebbe davvero un buon uso di una piccola parte della ricchezza accumulata?

In fondo Bitcoin ci ha dato davvero molto, e sarebbe giusto restituirgli qualcosa.

Attenzione, non parlo del popolo che cerca di racimolare qualche spicciolo sbattendosi con tutte
queste menate (short long grafici bot e cazzate simili)

Parlo degli holder di lunga data... quelli che hanno creduto nel progetto iniziale, quelli che hanno
(o dovrebbero avere) una visione.

Sono troppo utopista?







828  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 03, 2021, 07:37:34 PM

non ho capito, intendi idee non sugli aspetti tecnici ma sul reperimento di fondi per "caricare" l'arma?
o su come dare visibilità al progetto, che nella apposita sezione di questo forum è stato bellamente ignorato? Non pensi che si giunto il momento di pubblicarlo su qualche canale dedicato specificamente a Ethereum, per esempio su Reddit?

Effettivamente non mi sono spiegato bene.

Attraverso i passaggi del mio studio sono reso conto che nonostante la cerenze del protocollo ethereum
siano ben note,  a nessuno interessa veramente affossarlo.

I pochi tentivi che ho fatto per discuterne seriamente mi hanno insegnato che non
c'e' il minimo interesse... o addirittura una vera e propria avversione a prendere in considerazione
il fatto che ethereum sia pieno di limiti (anche se la documentazione non manca di certo)

Allora ho pensato di trasformare deathstar, in uno strumento molto piu' sofisticato.

Visto che il mondo ethereum campa di hype piu' che di contenuti reali, facciamo la stessa cosa.

punti a favore:

1) esiste una vera base tecnica
2) esiste la possibilita' di fare il famoso short
3) lo stesso mondo di ethereum ha insegnato che e' possibile raccogliere capitali strabilianti anche per delle cazzate.

l'idea sarebbe di organizzare un crowdfounding, quindi raccogliere capitali,
per realizzare questo grande short...
e ignegnerizzare davvero sia la parte tecnica (e si puo' fare)
che quella finanziaria: ossia come raccogliere i capitali,
come organizzare lo short, i ritorni pensati ecc...

Poi curare bene la parte marketing con un ANNUNCIO urbi et orbi di questa cosa.
Se ben fatta,  penso che potrebbe avere molta risonanza,
molta di piu' di mille discussioni tecniche delle quali non frega un cazzo a nessuno,e che inoltre il 99% degli
utenti ethereum non e' in grado di capire.

mi viene in mente anche tutto uno sguazzare degli articolisti: "Bitcoin Contro Ethereum, chi vincera'?"
e cazzate del genere... proprio il tio di  fuffa di cui campano i fruitori della gran parte degli smart contract ethereum
(che tra l'altro non sono contratti e tantomeno smart... sono semplici programmi che girano, spesso molto malamente).

829  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 03, 2021, 06:03:25 PM
Stavo riflettendo su una cosa. Questo lavoro rappresenta un mattone fondamentale per costruire un attacco potenzialmente devastante, ma che rimane per ora teorico per il vincolo imposto dal punto 2) elencato sopra.
Se però si trovasse un altro mattone, ovvero una vulnerabilità in qualche protocollo DeFi che permetta che quei 250 ETH/h vengano presi a prestito, anziché doverceli mettere in partenza, aggirando i vari meccanismi sui collaterali e i margini... BOOOOM!!

Una combinazione letale inarrestabile, anche perché finché la rete è bloccata, smetterebbero di funzionare gli stessi smart contract su DeFi che dovrebbero comportare la liquidazione forzata, ripristinando l'equilibrio: in pratica si verrebbe a creare un disallineamento fra ciò che succede sugli exchange, dove ETH potrebbe effettivamente crollare di valore, e sui Dex paralizzati dall'attacco. Una cosa simile è successa non molto tempo fa su BSC, dove un improvviso pump di un token su Binance ha destabilizzato il protocollo Venus causando liquidazioni forzate per 200M di USD. E lì non c'è neanche stato bisogno di bloccare la rete: figuriamoci se ci fosse stato un attacco concomitante di questo genere!

https://www.theblockcrypto.com/post/105301/bsc-venus-protocol-liquidations-xvs-token-possible-price-manipulation

Adesso che sono certo che ci sono le basi tecniche, ossia la cosa non puo' essere catalogata come "cazzata"
ci vorrebbe un po' di "ingegneria" finanziaria e parallelamente di marketing.


Ossia, bisognerebbe progettare una sorta di crowdfunding finalizzato dichiaratamente a questo tipo di operazione,
con tanto di specifiche tecniche  ben pubblicate.

E mi piacerebbe che fosse un crowdfunding fatto usando tecnologie Bitcoin, non shitcoin.

Probabilmente farebbe piu' "rumore" dell'attacco stesso

E come ho ben dimostrato, nel mondo delle shitcoin conta solo il rumore,
il contenuto e' assolutamente ininfluente.

Ragazzi... potrebbe essere un progetto davvero importante... se avete idee e' il momento buono per tirarle fuori.



830  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 03, 2021, 05:54:44 PM
Quindi riassumendo ETH si dimostra per quello che è: a livello teorico è una cagata pazzesca da far impallidire la gloriosa corazzata Potëmkin.
Un altro parallelo potremmo farlo con il titanic... ETH galleggia tranquilla finché qualcuno, durante una notte di nebbia, non vede l'Iceberg e...

risposta breve... SI.

Risposta un po' piu' lunga: il voler implementare un linguaggio completo rende cosi' complessa
la gestione di tutte le possibili biforcazioni in un sistema distributo, da renderlo inattuabile.

Mi sono studiato i sorgeni di geth, e dentro e' un intreccio infernale di codice...
perche' dentro c'e' tutta la storia dei fork codificata... geth deve sapere come era la situazione
in ogni epoca

per un client di ethereum validare un blocco di una certa epoca, prima di un certo fork, era diverso
che validare un blocco ora, ma lui deve avere dentro tutte le logiche passate...

Ossia anche il codice stesso dei client diverra' immanutenibile per la complessita' che man mano accumula
ed e' cstretto a portarsi dietro.
831  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 03, 2021, 12:36:29 AM
Attacco block stuffing con DeathStar:

0) lanciare un proprio nodo geth: geth   --syncmode "light"  --mainnet
    si sincronizza in un attimo perche' non tira giu' nulla della blockchain precedente.
    servira' per essere autonomi e non passare da api proprietarie che potrebbero bannarci durante l'attacco.

1)  pre-caricare in rete un certo numero di smart-contract deathStar
ognuno ad un address diverso e con codice leggermente diverso,
per rendere impossibile sia il riconoscimento da parte delle mining pool che un possibile hard fork,
ossia  se ne viene riconosciuto e neutralizzato uno, si parte con un'altro.
(DeathStar_version_xxx, DeathStar_version_yyy ecc..)

2) Rimediare un numero consono di ETH; Ce ne vogliono CIRCA 250 all'ora (al costo gas attuale)
    e suddividerli su alcuni indirizzi che useremo come indirizzi origine delle transazioni.

3) Rimediare del pop-corn

4) crere uno script (python, perl, c, go.... un linguaggio a piacere) che usa chiamate RPC su geth
e fa piu' o meno le cose qui descritte sommariamente:

#
# se DeathStar_version_xxx smette di funzionare,
# passare a DeathStar_version_yyy e cosi' via.
#
CalledDeathStar=DeathStar_version_xxx
while( nuovo blocco minato)
   {
   legge la baseFeePerGas e il BlockGasLimit attuali.  
   calcola BlockGasBurned=BlockGasLimit-X (X serve per lasciare un piccolo spazio anche alle altre transazioni, da decidere se X > 0)
   crea una transazione con fee = BlockGasBurned * (BaseFeePerGas + Tip) ed esegue lo smart contract(CalledDeathStar, BlockGasBurned) da un indirizzo random di quelli origine.
       (dove tip e' la percentuale che va ai miner, diciamo il 20% per essere sicuri di essere inclusi velocemente
       e passa come parametro a CalledDeathStar BlockGasBurned per fargli bruciare esattamente i gas previsti,
       l'indirizzo origine varia  per evitare di essere riconosciti e bloccati facilmente, ricordare che in ethereum fanno HF praticamente ogni giorno)

   while (la nostra transazione non e' inclusa in un blocco minato)
     {
     opzionale
     usare tecniche MAV per controllare nella mempool che siamo davvero  i piu' competitivi,
     altrimenti alzare le fee alla transazione reimmettendo una transazione con la stessa nonce e Fee aumentate.
     }
   }

5) lanciare lo script

6) mangiare il pop-corn.

Note:

Ci ho messo un po' tutto quel che ho imparato in queste 2 settimane,
comprese (opzionalmente) le tecniche piu' avanzate di MAV.

Ametto che il punto 2 non sia banale, ma volete mettere la soddisfazione?

I punti 3 e 6 per quanto importanti non sono indispensabili


832  Local / Mining (Italiano) / Re: ALPS BLOCKCHAIN: mining in Italia da energia 100% rinnovabile on: September 02, 2021, 10:57:15 PM


Tieni presente che , come scritto nell'articolo, quegli impianti erano destinati alla chiusura perchè non economicamente sostenibili. L'autoconsumo ha quindi permesso loro di continuare ad operare. Non è una cosa da poco. Che il miner sia dentro una centrale o fuori, non cambia granchè: comunque assorbono energia (pulita) dalla rete, quindi la rete userà energie più inquinanti, e siamo da capo. Qui abbiamo miner che hanno reso conveniente la produzione di energia idroelttrica che altrimenti sarebbe stata persa. Quindi energia pulita per il mining, nessun impatto sulla rete e profitti per il gestore della centrale, che altrimenti avrebbe chiuso.


Mi piacerebbe rifare un check fra 2 anni,
quando sara' probabilmente passato il periodo bullish,
i prezzi ristagneranno e le cripto saranno nel dimenticatoio da mesi.
(io ne ho vissute gia' 2 di queste fasi)

E se tutto sara' andato bene, ne saro' davvero contento!!!


833  Local / Mining (Italiano) / Re: ALPS BLOCKCHAIN: mining in Italia da energia 100% rinnovabile on: September 02, 2021, 10:40:25 PM

Se non si capisce bene dall'articolo provo a spiegarlo meglio.

Il produttore di elettricità è proprietario della mining farm (apparecchiature fisiche). Ovvio che non sappia nulla di come gestire una mining fam. Quindi fa gestire la mining farm ad alps blockchain che quindi fa da "broker" tra il cliente e le varie ming pool che "comprano" la potenza di calcolo. Quindi la revenues di Alps è sia dalla "fees" che applica ai BTC ricevuti dalla mining farm, che dal contratto di gestione della mining farm.

Tutto questo perchè il lavoro del produttore di nergia è quello di "produrre energia" e gestire la centrale idroelettrica. Quello di ALPS è quello di gestire la mining farm. Sono operations in simbiosi, ma ben differenziate.
Questo ha si il vantaggio di "costi supplementari" , ma ovviamente permette al cliente di non interessarsi della parte di mining.
Ovviamente è un rischio quello di investire in questa apparecchiatura, ma è remunerato da un business plan di rientro dell'investimento basato su una miriade di variabili quali prezzo di bitcoin, difficioltà futura, prezzo dell'energia elettrica presso la rete (PUN, in pratica il costo opportunità dell'autoconsumo) etc.

Spero ora sia più chiaro.



Ora ho capito.

Resta (per il mio modo di essere) un problema di fondo: se uno fa l'imprenditore,  sa benissimo di rischiare.
ma dovrebbe farlo su una materia che conosce.

So che ormai sembra un discorso anacronistico, in quanto ormai e' pieno di gente che fa il ministro, il sindaco,
l'amministratore Delegato (ecc...) senza sapere nulla di cosa amministra e gestisce.

Ma secondo me l'imprenditoria nasce invece dall'idea contraria, cioe' conoscere a fondo un settore, e con
del lavoro e delle idee originali farci nascere attorno un'attivita' che poi cresce e si sviluppa.

Il rischio e' quindi mitigato dalla conoscenza del settore e dalla propria capacita' di capire cosa succede e
muoversi di conseguenza... Io lo chiamo Rischio Consapevole.

Ma questi investono milioni in attrezzature, senza avere (per definizione) una vera consapevolezza del rischio.

E non hai idea di quante volte mi si e' presentata gente con dei business plan che due anni dopo si
sono rivelati completamente sballati (e se erano del mio settore, io sapevo individuare "a fiuto" i punti deboli)

Ma e' perche' io sono vecchio, e quindi ho idee antiquate.

834  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 02, 2021, 10:05:01 PM

Quindi non solo il protocollo ha dei limiti notevoli, ma qusti limiti sono ben conosciuti ed attivamente sfruttati per profitto personale ai danni della rete.
Tutto questo accade mentre ETH continua a tradare invariato, anzi, con una dinamica bella bullish.

Tornand strattamente in tema, non mi è esattamente chiaro questo passaggio:

Quote
Miners’ strategy for selecting transactions
Miners want to maximize their profit by including transactions with highest fees. In the current PoW implementation of Ethereum, mining the block takes significantly more time than executing the transactions. So let’s assume all transactions in the pool are trivially executed as soon as they arrive and miners know the amount of gas each one uses.

Devi quindi ottimizzare "la grandezza" di DeathStar per ottimizzare l'inclusione nel blocco? Se fosse una singola transazione enorme, magari verrebbe scartata dai miner, seppur legittima.
n peggio.

Infatti deathstar deve avere un parametro di input che dice quanto "gas" vuoi bruciare, per tararlo perfettamente ed adattarlo alla perfezione ad ogni blocco da minare.
In questo modo, puoi leggere dall'ultimo blocco minato quale sara' il limite di gas (GasLimit) e il costo di gas del blocco successivo (BaseFee), in base
alle ultime modifiche di London.

Poi lanciare una transazione DeathStar che cosuma esattamente quel gas (GasLimit - magari meno un pochino, per lasciare uno spazio risibile alle altre transazioni, oppure tutto... da decidere),
ad una fee gwei per gas di una certa percentuale superiore al BaseGas (BaseGas + x%) per essere sicuri di essere i piu' competitivi.

E comunque i miner invece che incluedere N transazioni piccole sono incentivati ad includerne una sola che renda molto... fanno prima.
Infatti seguendo questa logica e' meglio che DethStar sia eseguito velocemente. Ma non e' certo un problema.

Resta il fatto che con cifre molto piu' competitive di quel che pensavo all'inizio si puo' veramente mettere in grande difficolta' la rete per ore o anche giorni.

Come dicevo, in base a questi ultimi risultati, con un ordine di grandezza attorno un ETH puoi letteralmente COMPRARE un blocco... e quindi 15 secondi di tempo rete.

Altro dato interessante, tutta la programmazione necessaria per questa operazione (Solidity per deathStar + lo script che lancia le transazioni) rasenta veramente il banale,
non serve ne assembler EVM ne' nessuna tecnica particolarmente sofisticata  di codifica.


835  Local / Mining (Italiano) / Re: ALPS BLOCKCHAIN: mining in Italia da energia 100% rinnovabile on: September 02, 2021, 09:54:11 PM
Interessante iniziativa.

Mi lascia perplesso solo questo punto:


7.Che genere di accordo avete con i clienti? Le revenues da mining sono incerte per natura. Chi si assume il “rischio”?
Quote
Il rischio è di chi ha acquistato i miner. Noi compriamo la potenza di calcolo prodotta a prezzo di mercato e a nostra volta la rivendiamo.



Praticamente il cliente si assume tutti i costi per l'acquisto delle attrezzature, e anche i costo diretti e indiretti
(costo del progetto che non sara' fatto gratis, manutenzione, raffreddamento, rotture, gestione, amministrativi, controllo, ecc..)

Anche supponendo un costo zero della corrente, resta tuttavia un bel rischio, sopratutto se uno
non e' ben addentro al mondo delle crypto.

Inoltre non capisco perche' una volta che uno ha fatto tutto questo impianto, debba passare da un intermediario
che "compra la potenza di calcolo ai prezzi di mercato" (ma ci fara' un pochino di cresta, come e' normale per qualsiasi attivita',
e non possa collegarsi direttamente alla mining pool che da' i ritorni migliori... o magari si?






836  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: September 02, 2021, 12:36:31 PM
Per terminare l'analisi tecnica di questo thread, mi sono chiesto come riempire al meglio i blocchi
con un loop di questo genere e mi sono reso conto che  visto che il blocco ha un limite di 15.000.000 di gas
(variabile dopo London ma non e' un problema)
se facciamo 15.000.000 * costo gas supponiamo 50 gwei = 0.75 ethereum.

se aggiungo una percentuale diciamo del 10% viene 0.85 eth.

In pratica cosa sucede ? ad un costo di poco meno di un eth creo una transazione che

1) viene scelta dai miner perche' pago piu' di tutti in termine di gas.
2) riempie tutto il blocco perche'  cosuma tutti i 15.000.000 gas che un blocco puo' al massimo contenere,
quindi non c'e' spazio per altre transazioni.

Alla fine, basta uno qualsiasi dei miei loop deathstar (senza neppure impazzire tanto sulle performance del loop)
con questo limite di gas da spendere. ad un prezzo leggermente piu' alto del mercato della fee in gwei.

Detto ancora piu' semplicisticamente: A poco meno di un ETH mi compro un blocco. e quindi circa 15
secondi del tempo di ethereum.

Molto meglio di quanto avevo inizialmente pensato!!! con 1.000 ethereum mi compro 15.000 secondi, ossia 250 minuti, ossia piu' di 4 ore.

Ad oggi non esistono rimedi contro questo attacco.

E questa e' anche la dimostrazione con prove che NON c'e' nessuno che vuol fare questo tipo di attacco,
altrimenti l'avrebbero gia' fatto, visto che e' ben documentato.

Viene solo usato sporadicamente come trucco, ad esempio per vincere a qualche gioco, se la posta in gioco ne vale la pena,
o magari per imbrogliare o ritardare qualche speculazione... ma mai sistematicamente per affossare la rete.


https://medium.com/hackernoon/the-anatomy-of-a-block-stuffing-attack-a488698732ae


https://dl.acm.org/doi/fullHtml/10.1145/3391195

Quote
3.3.3 DoS with Block Stuffing (V31
). This vulnerability was first observed from the Fomo3D contract [23].
The vulnerability entails only the attacker's transactions being included in the newly mined blocks
while others are abandoned by miners for a period of time. This can happen when the attacker offers a higher
gasPrice to incentivize the miners to select the attacker's transactions. This vulnerability is caused by the greedy
mining incentive mechanism. At the moment of writing, there is no solution to prevent this vulnerability.
837  Local / Italiano (Italian) / Re: El Salvador: Legge per rendere bitcoin moneta a corso legale on: September 02, 2021, 10:36:53 AM

Io piuttosto non capisco come ci possano essere Salvadoreni contrari a bitcoin. Come può danneggiarti una possibilità, ripeto possibilità ulteriore rispetto a quelle che già hai?


Io abito in una frazione di un comune. Tempo fa, la frazione ha indetto una petizione per diventare comune autonomo.

Non ci potevo credere, ma ho visto coi miei occhi:
Alle riunioni locali, dove si discuteva quali sarebbero stati i vantaggi (enormi) di questa cosa,
il comune inviava dei sobillatori e si vedeva benissimo, personaggi mai visti e che non erano neppure della zona.
Nota a margine: la petizione non e' passata.

Ora, davvero pensate che gli USA non usino qualunque mezzo, lecieto e illecito,
per evitare che questo genere di cose si diffonda?

Figurati che cazzo gliene frega a un cittadino normale che magari fa fatica a mettere assieme
il pranzo con la cena, di andare in piazza a protestare perche' c'e' una modalita' di pagamento in piu'.

838  Local / Annunci / Re: [ANN][NFT] YOOMAN ROBOTS (YR’s)– Nuova collezione NFT italiana on: September 01, 2021, 09:40:36 AM
Almeno abbi la decenza di metterlo nella sezione mercato
839  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: August 31, 2021, 11:22:41 PM
Sono arrivato ad una versione di DeathStar che con 10.000.000 di gas sta in pausa 0.2 secondi:

--input 6e62ff3500000000000000000000000000000000000000000000000000000005  run

EVM gas used:    10000000
execution time:  201.290923ms
allocations:     42
allocated bytes: 94476
0x
 error: out of gas

10.000.000 di gas e' vicino al limite che si puo' mettere in un unico blocco quindi abbastanza realistico (massimo 15.000.000 di gas per blocco)
ovviamente bisogna fare una raffica di transazioni dethstar.

Al costo che uso ultimamente di 50 gwei per gas, con 0.5 eth si congestiona un nodo per 0.2 secondi. (e quindi poi anche tutti gli altri quando la transazione viene inclusa in un blocco)
quindi con 1 eth sono 0.4 secondi. 10 eth 4 secondi 100 eth 40 secondi 1000 eth (3.300.000$ ad oggi) sono 400 secondi  , ossia poco meno di 7 minuti.

Secondo me sono costi altamente sotenibili per il tipo di danno che si puo' fare.

--------

Ma come aveva suggerito qualcuno (non ricordo chi) con la rete ethereum classic ... sono cazzi!

Il loro client ufficiale e' core geth, l'ho guardato e nella struttura la EVM e' praticamente identica a quella di geth,
quindi DeathStar dovrebbe girare con le stesse performance

il loro costo gas e' molto basso... diciamo 5 gwei ma anche meno. e il costo di un etc e' 63$
quindi 10.000.000 di gas * 5 gwei = 0.05 etc per 0.2 sec.
quindi con un etc sono 4 secondi.  con 1000 etc si tengono congestionati i nodi per  circa 4.000 secondi ossia 66 minuti.
(che sono 63.0000$ una cifra direi risibile per quello di cui stiamo parlando, ricordiamoci che pur sempre una rete da alcuni miliardi di dollari)


EDIT trovato:

Se è lo stesso codice che gira in ETC si potrebbe provarlo gratis sulla blockchain di Ethereum Classic e vedere l'effetto che fa.
Farlo live sulla mainnet di ETH comporta un discreto impiego di risorse considerati i tuoi calcoli.
Ora ragionando al contrario, assumendo che questo tipo di attacco funzioni, quali sarebbero le contromisure? Immagino, per l'ennesima volta, che ciò richieda in HF per attuare eventuali correttivi.
840  Local / Italiano (Italian) / Re: Stato DISASTROSO rete ethereum on: August 31, 2021, 03:24:15 PM
ragazzi, ho finalmente dei dati.

una piccola soddisfazione personale: deathstar FUNZIONA PERFETTAMENTE sulla EVM di geth 1.10.8 (l'ultima versione fresca  fresca)
il loop continua finche' non arriva ad out of gas!!!

ho lanciato dei benchmark ...

con 1.000.000.000 di gas  ecco i risultati:

evm version 1.10.8-stable
root@ubuperfcheck:/home/sistemi/eth# ./run
EVM gas used:    1000000000
execution time:  9.017201832s
allocations:     41
allocated bytes: 10248
0x
 error: out of gas

quindi se supponiamo gas=50 gwei  con 50 eth si tiene ferma la rete per circa 9 secondi
(ricordiamo che il controllo lo devono fare TUTTI i nodi)

con circa 500 eth (aka 1.500.000$ cira) sono 90 secondi....

Secondo me e' un attacco che puo' funzionare, non ha un costo totalmente proibitivo.
C'e' cente che trada con decine di milioni di $!!!


scusa, non so se ho capito bene. Stai dicendo che il validatore prende tutti gli smart contract in successione, e continua ad eseguirne uno finché non finisce il gas? Non c'è nessuno scheduler o meccanismo di parallelizzazione dei task che assegni le risorse di calcolo in maniera equa e distribuita fra i diversi contratti?

Lo stesso smart contract viene eseguito in modalita' "mono-thread"
quando il miner trova un hash risolutivo (mina un blocco) deve parlare con un nodo, assemblare un blocco (mettendo assieme tutte le transazioni che ritiene convenienti)
ed eseguirlo sul nodo per determinare i costi  reali finali. E finche questo smart contract non finisce, il blocco non puo' uscire, anche se in un ambinete multithread magari
gli altri smart contract sono finiti da un pezzo.

Poi appena il blocco viene finalizzato, viene propagato in rete, dove ogni altro nodo deve rifare la stessa cosa.


mmm... io pensavo che se un nodo si fosse accorto che quello smart contract va in errore perché out of gas, lo avrebbe flaggato come invalido senza neanche propagarlo in rete, quindi che il miner non lo avrebbe ricevuto... per quello mi chiedevo che fine facesse il gas sprecato. Quindi non si rallenta solo la validazione e la propagazione in rete delle transizioni e dei cambi di stato, ma anche la generazione dei nuovi blocchi: un bel casino totale!

infatti uno delle decine di problemi che ha ethereum e' che al miner non converrebbe aspettare l'esecuzione degli smart contract del blocco minato...
perche' rischia che nel frattempo altri miner trovino un hash giusto e gli "soffino" la possibilita' di generare il blocco
(se leggi a fondo il documento che ho postato precedentemente e' uno dei tanti punti deboli del protocollo)


 
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 ... 195 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!