Pages:
Author

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

legendary
Activity: 3808
Merit: 2044
September 26, 2021, 11:28:11 AM
C'è un problema di formattazione con un /list] di troppo nella seconda sezione.

A parte questo, mi aspetto che l'obiezione che verrà sollevata è nella stima di 100 gwei per il costo del gas: dal monitoraggio della rete che ho fatto nelle ultime settimane, mi aspetterei che in caso di congestione prolungata il valore possa schizzare di almeno un ordine di grandezza, rendendo l'attacco ancora più proibitivo e non sostenibile troppo a lungo.
legendary
Activity: 3276
Merit: 2898
September 26, 2021, 10:27:35 AM
Grazie al prezioso lavoro di traduzione ed impaginazione di filippone, ecco l'articolo definitivo in inglese.
Se avete dei commenti segnalateli, poi lo postero' nella sezione alt-coin internazionale, poi su altre board.

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

An attack strategy on the Ethereum network based on Block Stuffing technique and the Deathstar smart contract.
By gbianchi bitcointalk.org
Translated by fillippone.

This study stems from some observations:

  • in the Ethereum network there is no concept of a "forbidden smart contract", the network is permissionless, meaning any user could possibly enter any type of code on the network, as long as the code is formally correct and pays for executing and running the code;
  • the only mechanism to "govern" the execution of the code is the fact that the execution of any smart contract costs gas, proportional to the number of instructions executed and the type of each instruction. Not necessarily each smart contract has to execute useful operations: it can create a meaningless gas-burning loop.
  • once it is entered in the network, the code is immutable, so there is no way to “get rid” of the smart contract from the network unless a hard fork-type like what happened with The DAO. But while the hacker of The Dao just exploited a bug in the contract to fund its child DAOs, Ethereum's core architecture is used here, making it really difficult to design a fairly effective hard fork.
  • Each block has a maximum size defined not by the size in Bytes, but by the maximum GAS that can be spent in the block.
    After the London hard fork, the "normal" size of the block is variable around an average of 15,000,000 of gas and can increase up to 30,000,000 of gas based on the demand of the network, with a process called tâtonnement.
    Briefly, the maximum size of a block is given by BlockGasLimit.
  • In the past, attacks have already been performed with the BlockStuffing technique and no effective structural solutions have been found. [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.
  • Advanced MEV technologies can also be used [4][5] to maximize the possibility that our smart contract is included in the next block, scanning the mempool and verifying what are the fees with the highest gwei/gas to execute the transaction with the highest probability of being included.

Based on these observations, it is possible to design a "DeathStar" smart contract whose execution costs exactly the amount of gas needed to fill the block, so that it "burns" ethers only to compete with the other smart contracts for block inclusion.

Briefly, the transaction is buying the entire space of an ethereum block, and therefore does not remain any available for the execution of other smart contracts.


Reasons for a BlockStuffing attack

A group of attackers could be incentivized for various reasons to burn ethers to jeopardize the network, for example:

  • Being supporters of another competing blockchain protocol.
  • Organizing a short on Ethereum before the attack, congesting the Ethereum network and short covering at lower prices, covering the initial costs of the attack and eventually profiting from it.
  • Cause problems/slow down/ profit from one or more of the various smart contracts running on Ethereum to take advantage of certain conditions (prize draws, online auctions, ICOs, financial transactions on DEX, Defi, etc ... as it already is been done [2])

In general, any person or group with sufficient economical and technical means and with any type of interest in the decline of the Ethereum network and/or the smart contracts running on it , could use this line of attack.

To estimate the cost involved, consider that an ethereum block is mined every approximately 15 seconds. Estimating the average block size of 15,000,000 gas, and a gas cost of 100 gwei, that's about 1.5 ETH per block. Let’s add a 10% fee to be the most competitive, we could then estimate a cost per block of about 1.65 ETH. At this cost of gas, at the current exchange rate of about $ 4,000 for an eth, an attack lasting 60 minutes would cost about 400 ETH, or about $ 1,600,000, a very small figure in relation to the value of the network of hundreds of billions of dollars.

Obviously, this estimate varies according to the current cost of gas in gwei, and the eth/usd exchange rate, both of which are extremely variable.


DeathStar technical description

Using the solidity language, a smart contract is encoded executing a loop burning all the gas
passed by the calling transaction with the GasLimit parameter.

Eventually, you can create various slightly different versions of DeathStar, to make it more difficult to identify them by a possible HardFork or from a filter software added by miners or nodes, but each one of them working according to the same logic as in the examples that I will report here:

Examples Code of DeathStar code:

Code:
pragma solidity ^0.6.0;

// this version just before running out the gas stops,
// leaving a small margin of gas to execute the return instructions without error
pragma solidity ^ 0.6.0;
contract DeathStar_a
   {
   function DeathLoop_a () public payable returns (bool)
      {
      uint left = 0;
 
      while (true)
              {
              left = gasleft ();
 
              // just before finishing the gas stops,
              // leave a small margin of gas to execute the return statements without error
              if (left <1000)
                {
                break;
                }
              }
 
      return (true);
     }

Code:
// this version loops until it reaches the out of gas error.
pragma solidity ^ 0.6.0;
contract DeathStar_b
   {
   function DeathLoop_b () public payable returns (bool)
      {
      while (true)
              {
              }
 
      return (true);
     }
   }
   }


Brief description of the dynamics of the BlockStuffing attack:

1) launch your own geth node: geth --syncmode "light" --mainnet
    It will  instantly synchronize because it downloads the previous blockchain.
    We will be necessarily autonomous and not pass trough proprietary API’s that could ban us during the attack.

2) pre-load a certain number of deathStar smart-contracts on the network,
    each at a different address and with slightly different code (DeathStar_a, DeathStar_b, etc. ), to make it difficult either for mining pools to recognize us or for developer recognise the necessity of a possible hard fork,
   3) Find an adequate number of ETH, based on the duration of the attack and the current gas coast in gwei, and pre-load them on a certain number of source addresses.
   (15,000,000 average block size * (gas cost in gwei + incentive fee (Tip) to be certainly included in hte block)) / 1,000,000,000= cost in ETH for a 15 seconds attack)

4) create a script (python, perl, c, go .... or any language of your choice) that uses RPC calls on geth and does more or less the things summarized here:

Code:
# if DeathLoop_a stops working,
# switch to DeathLoop_b and so on.
CalledDeathStar = Deathloop_a

while (newly mined block)
   {
   reads the current baseFeePerGas and BlockGasLimit.  
   calculates GasBurned = BlockGasLimit-X (where X is used to leave a small space for other transactions as well, to be decided if X> 0)
   calculates the transaction fees: MaxFeePerGas (in gwei) = BaseFeePerGas + Tip  
       (where Tip is the percentage that goes to miners, let's say 20%, to be sure to be included in the next block, eventually use MEV techniques to maximize efficiency)
   create a transaction with gasLimit = GasBurned, MaxFeePerGas, which executes the CalledDeathStar smart contract from a random address selected amongst the origin address list.
       (the origin address also should vary to avoid being easily recognized and blocked )

   # optional
   while (our transaction is not included in a mined block)
     {
     use MEV techniques to check in the mempool the fees of other transactions
     If higher fees transactions have been loaded
            Eventually adjust the fees for our transaction by re-entering a transaction with the same nonce and modified fee.
     }
   }

5) run the script.


Thanks to the guys from the Italian community of bitcointalk.org (filippone, acquafredda, HostFat, jack0m and others) who gave me interesting ideas for the realization of this study.


References:

[1]ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER
[2]The Anatomy of a Block Stuffing Attack
[3]A Survey on Ethereum Systems Security: Vulnerabilities, Attacks, and Defenses
[4]How to Fix Ethereum’s MEV Problem and Give Traders the Best Price
[5]Ethereum is a Dark Forest
[6]How Bitcoin and Ethereum solved the Halting Problem differently
[7]Why is Bitcoin not Turing complete?
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
September 24, 2021, 07:45:17 AM
@gbianchi, scusami il ritardo, ma ultimamente sono molto impegnato.
Ti ho inviato via PM la copia del messaggio tradotto e formattato.
Fammi sapere se vuoi ulteriori modifiche.

ottimo lavoro, grazie.

Io al nuovo articolo messo un titolo un po' piu' "perentorio"

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

perche' l'altra volta era un'ipotesi, questa volta invece e' una certezza, corredata di parecchia documentazione e riferimenti,
ma ho visto che hai lasciato il vecchio titolo. C'e' un motivo?





No scusami, una leggerezza.

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

tradurrei con:
Quote
An attack strategy on the Ethereum network based on Block Stuffing technique and the Deathstar smart contract.
legendary
Activity: 3276
Merit: 2898
September 24, 2021, 07:31:27 AM
@gbianchi, scusami il ritardo, ma ultimamente sono molto impegnato.
Ti ho inviato via PM la copia del messaggio tradotto e formattato.
Fammi sapere se vuoi ulteriori modifiche.

ottimo lavoro, grazie.

Io al nuovo articolo messo un titolo un po' piu' "perentorio"

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

perche' l'altra volta era un'ipotesi, questa volta invece e' una certezza, corredata di parecchia documentazione e riferimenti,
ma ho visto che hai lasciato il vecchio titolo. C'e' un motivo?


legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
September 22, 2021, 05:06:47 PM
@gbianchi, scusami il ritardo, ma ultimamente sono molto impegnato.
Ti ho inviato via PM la copia del messaggio tradotto e formattato.
Fammi sapere se vuoi ulteriori modifiche.
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
September 15, 2021, 05:05:53 PM
sia arbitrum che solana hanno avuto problemi enormi oggi.

client out of memory, network praticamente paralizzate.

Ovviamente non e' successo un bel nulla.

Ovviamente, quello che guida il prezzo delle shitcoin non é il loro utilizzo, la funzione ultima che hanno, ma la narrazione. Quello che is pensa facciano o possano fare. ETH ed i suoi cloni lo dimostrano, dell’effettivo utilizzo di questi token non frega niente a nessuno.

Ma non preoccupiamoci, come dicevo esattamente 8148 post addietro:

<…>
Bitcoin is a huge bet but while I don’ know if in 10 years bitcoin would be worth 1 million or zero (or course I have an idea), I am absolutely sure that in 10 years every present shitcoin (all of them, but bitcoin) will be worth ZERO.
<…>
legendary
Activity: 3276
Merit: 2898
September 14, 2021, 03:12:16 PM
sia arbitrum che solana hanno avuto problemi enormi oggi.

client out of memory, network praticamente paralizzate.

Ovviamente non e' successo un bel nulla.

Io ragazzi comincio ad essere seriamente preoccupato, tutta questa
montagna di letame prima o poi franera'... e non sara' bello essere li' vicino.

Se posso darvi un consiglio... state alla larga dalle shitcoin.



Quote
Arbitrum is a Layer-2 solution for the Ethereum network that makes smart contracts scalable, fast, and private.
Arbitrum is interoperable with Ethereum, the most popular blockchain.
It allows dApp developers to easily run Ethereum-based contracts on a second layer.
Users can easily transfer Ether (ETH), or any other Ethereum-based token between Ethereum and Arbitrum, at lower costs.



https://genesisblockhk.com/what-is-solana/




legendary
Activity: 3808
Merit: 2044
September 14, 2021, 11:17:40 AM
Ormai siamo alle comiche finali: una transazione su Uniswap al modico prezzo di $1032, se siete disposti ad aspettare un po' di più... e questo sarebbe il futuro della DeFi? Huh

legendary
Activity: 3276
Merit: 2898
September 11, 2021, 08:07:46 AM

é, in practice la medesima idea di  gbianchi sul block stuffing. Nota dal 2014: mai sfruttata.


A quei tempi tutte le idee erano molto acerbe. Infatti gli risponde qualche post dopo proprio Buterin
spiegando una sorta di primordiale sistema dei gas.

Molto interessante notare che il meccanismo della spiegazione di Buterin NON E' quello poi
implementato dentro ethereum.

Comunque, resta il fatto che fin dall'inizio era stata individuata questa zona come punto debole,
e a tutti gli effetti non e' mai stata trovata una vera soluzione.

legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
September 10, 2021, 06:14:30 PM
Gavin Andresen descrive esattamente il tuo metodo:

Quote
If CPU usage to verify a transaction is NOT related to the transaction size, then you open yourself up to denial-of-service attacks. Like:

Create an Ethereum transaction with a (huge!) fee that will pay for 60 seconds of CPU execution time.
... but craft it so execution takes 61 seconds (or, heck, make it an infinite loop, maybe you'll tickle a bug in the execution termination code).

Now broadcast it.  It will be rejected for insufficient fee, but only after peers have wasted 60 seconds of CPU time. And if the transaction is rejected, the attacker won't pay the fee.

é, in pratica, la medesima idea di  gbianchi sul block stuffing. Nota dal 2014: mai sfruttata.
legendary
Activity: 3276
Merit: 2898
September 10, 2021, 06:03:00 PM
Ho trovato un ottimo thread che dimostra due cose

la prima e' perche' un bitcointalk ha un valore molto piu' alto rispetto ad una delle tante chat:
bitcointalk e' anche un archivio stracolmo di informazioni utilissime (insieme a tanto spam eh... bisogna aver voglia di cercare)


la seconda e' che... i dev di bitcoin avevano gia' dall'inizio indicato praticamente
tutti i punti deboli di ethereum che ho recentemente messo insieme con un po' di sforzo:

https://bitcointalksearch.org/topic/turing-complete-language-vs-non-turing-complete-ethereum-vs-bitcoin-431513

(concetto un po' da sgrezzare, ma ci aveva visto piu' o meno giusto)
https://bitcointalksearch.org/topic/m.4882293
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
September 10, 2021, 04:50:55 PM
Stasera durante la sua Cryptoweek, Ametrano ha citato due interessanti articoli riguardanti ETH.
>Ne consiglio la lettura. Sebbene non molto tecnici, vanno nella stessa "direzione" di questo thread.

OP-ED: Ethereum is making the same mistakes as the Bitcoin hard fork attempts
Quote
This article follows a previous piece that began detailing how Ethereum echoes the Bitcoin Blocksize Wars.

Bitcoin Cash, the last serious iteration of the major Bitcoin hard fork attempts, was underway in 2017. Alternative cryptocurrency network Ethereum was also rising for the first time, on the back of initial coin offering (ICO) hysteria.

Although Bitcoin Cash’s market value briefly flippened Ethereum in late 2017, it’s clear today that the network effects around Ethereum are much greater than Bitcoin Cash.

In some ways, Ethereum is the next logical iteration of the Bitcoin hard fork attempts.

After all, many big block supporters are also fans of Ethereum.



BITCOIN VS. ETHEREUM AS SETTLEMENT NETWORKS

Quote
“We need to move NFTs onto the Layer 2 ecosystem to cut fees. However, doing that *right* requires good cross-rollup portability standards, so the ecosystem can avoid getting locked into one particular L2.” - Vitalik Buterin, Creator of Ethereum

Many people are familiar with the recent none-fungible token (NFT) craze that has occurred over recent months, with digital images of rocks and pixelated characters selling for millions of dollars. Bubble, fad, or the start of something much bigger? That, we cannot know, and we aren’t going to discuss the validity of NFTs as an investment (read: speculation) in today’s Daily Dive, but rather we are going to dive into the comparison of Bitcoin versus Ethereum as monetary settlement networks, as Ethereum proponents have attempted to frame ETH as “ultrasound money” increasingly over the course of 2021.

Today, we will examine various metrics comparing the volume and efficiency of settlement on the base layer of the Bitcoin and Ethereum networks.

legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
September 08, 2021, 11:45:59 AM

Ma con segwit + LN io sono certo che per Bitcoin e' il passato.

Per ETH ... e' il futuro


Ragazzi, c'è un motivo se per il quale Bitcoin SEMBRA non progredire mai: tutte le scelte che sono fatte, lo sono per i buon funzionamento della rete.
Invece su ETH si fanno gli upgrade, poi ci si accorge che il prezzo del Gas aumenta, allora si sente parlare di L2 su ETH...

Mettetevelo in testa: è una shitcoin.
hero member
Activity: 2268
Merit: 709
September 08, 2021, 02:20:29 AM
Tra l'altro anche i nodi stanno calando vistosamente: sono 3600 in totale di cui solo 3000 in sync
il 13 agosto avero rilevato questi valori:

su un totale di 4400 nodi, quelli in sync sono solo 3200.

Zucco lo ha sempre sottolineato, nei suoi speak, facendo domande "a prima vista ingenue" ai presenti in sala su quanti avessero un nodo Ethereum (sincronizzato, eh?!!!? Grin)
Lo si puo' vedere in vari video presenti nel web....
legendary
Activity: 3276
Merit: 2898
September 07, 2021, 02:44:57 PM
Direi che è ufficiale: il London fork non ha risolto nulla...


Due conti interessanti:

La transazione "base" di ethereum (trasferimento eth da un address a un altro) costa 21.000 gas

21.000 * 673 (in questo istante) /1.000.000.000 = 0.014133 eth.
Al prezzo attuale (3500$) sono 50 dollari.

Onestamente queste cose le abbiamo viste anche su Bitcoin, non sono certo una novita'.

Ma con segwit + LN io sono certo che per Bitcoin e' il passato.

Per ETH ... e' il futuro



Tra l'altro anche i nodi stanno calando vistosamente: sono 3600 in totale di cui solo 3000 in sync
il 13 agosto avero rilevato questi valori:

su un totale di 4400 nodi, quelli in sync sono solo 3200.

full member
Activity: 647
Merit: 135
September 07, 2021, 02:13:33 PM
che dire...? W Bitcoin e LN!!!!!!
legendary
Activity: 3808
Merit: 2044
September 07, 2021, 10:31:33 AM
Direi che è ufficiale: il London fork non ha risolto nulla...

legendary
Activity: 3276
Merit: 2898
September 06, 2021, 03:41:23 PM
Sì è cambiata la narrativa sul discorso delle fee ma la sostanza non è per niente cambiata e anzi London non ha portato a nessun vantaggio in tal senso.
L'unica (per loro) è aspettare l'avvento di Ethereum 2.0 con il passaggio al Proof-of-Stake.
A oggi forse l'unica cosa buona di London che mi trova un po' d'accordo è avere per lo meno arginato il problema della mancanza di cap all'emissione.
Non riesco a reggere gli eth lovers quando parlano di ETH meglio di bitcoin in termini di hard money, mi sembra una bella cavolata.
Di nuovo grazie per l'ottimo lavoro gbianchi.

Grazie troppo gentile!

Spero solo che possa venire utile a qualcuno prima di buttare dei soldi in certi scam
perche' sono convinto che prima o poi lo scam si rivelera' per quel che e'.
legendary
Activity: 3766
Merit: 1742
Join the world-leading crypto sportsbook NOW!
September 06, 2021, 03:32:13 PM
Sì è cambiata la narrativa sul discorso delle fee ma la sostanza non è per niente cambiata e anzi London non ha portato a nessun vantaggio in tal senso.
L'unica (per loro) è aspettare l'avvento di Ethereum 2.0 con il passaggio al Proof-of-Stake.


Dubito che arriverà il passaggio al Proof of stare prima di 2 anni, o comunque prima dell'uscita di qualcosa di minabile con le GPU, c'è un forte cartello di alcuni grossi miners che ha tutto l'interesse a far continuare il mining.
legendary
Activity: 1316
Merit: 1481
September 06, 2021, 09:49:44 AM
Sì è cambiata la narrativa sul discorso delle fee ma la sostanza non è per niente cambiata e anzi London non ha portato a nessun vantaggio in tal senso.
L'unica (per loro) è aspettare l'avvento di Ethereum 2.0 con il passaggio al Proof-of-Stake.
A oggi forse l'unica cosa buona di London che mi trova un po' d'accordo è avere per lo meno arginato il problema della mancanza di cap all'emissione.
Non riesco a reggere gli eth lovers quando parlano di ETH meglio di bitcoin in termini di hard money, mi sembra una bella cavolata.
Di nuovo grazie per l'ottimo lavoro gbianchi.
Pages:
Jump to: