Bitcoin Forum
November 09, 2024, 02:57:25 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Transaction Malleability &  (Read 217 times)
pf55351 (OP)
Jr. Member
*
Offline Offline

Activity: 51
Merit: 1


View Profile
July 15, 2019, 04:26:42 PM
 #1

Salve a tutti ragazzi,
avrei una domanda per voi, non ho ben chiaro il concetto di transaction malleability.
In particolare:
  • se ho ben capito la trx malleability consiste in un cambiamento della firma della trx al fine di produrre un nuovo trxid e al mittente vengono sottratti dei bitcoin.
    Ma i miner quando verificano il blocco non verificano anche la correttezza della transazione? Perchè si accorgerebbero che la firma non è corretta
  • Mi è chiaro che la soluzione a questo problema è segwit, ma nello specifico non mi è chiaro dove la parte della firma viene inserita e come questo possa diminuire la grandezza di una trx (visto che la firma viene solo spostata) 
  • attualmente la grandezza del blocco è passata da 1mb a 2mb?
Grazie per le risposte
FP
LordStapy
Member
**
Offline Offline

Activity: 110
Merit: 94


View Profile
July 15, 2019, 09:03:47 PM
Merited by DarkStar_ (4), Micio (4), Vinsneuve (1)
 #2

La firma modificata è comunque valida (https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki per maggiori info), per questo la transazione viene comunque accettata dai miner.
Segwit risolve spostando la firma "fuori" dal blocco, in questo modo l'hash della transazione è calcolato senza includere la firma, che viene appunto "spostata" all'esterno del blocco (tipo allegato), da questo deriva la minor dimensione delle transazioni e il conseguente aumento della dimensione massima del blocco.
Il blocco bitcoin è comunque da 1MB, ma le firme delle transazioni segwit non sono incluse al suo interno e quindi si può "sforare" di un po' fino ad un massimo teorico di 4MB (anche se in realtà si è più vicini ai 2).

Un nodo che non ha attivato segwit può comunque sincronizzarsi e verificare le transazioni, ma non vedrà le firme esterne al blocco, per lui le transazioni segwit sono delle "anyone can spend" senza firma.

BTC: 1Lord4dwWriXw7T8QoyaNmamYWup8g76Tu
alexrossi
Legendary
*
Offline Offline

Activity: 3892
Merit: 1745


Join the world-leading crypto sportsbook NOW!


View Profile
July 19, 2019, 07:37:36 PM
 #3

Un nodo che non ha attivato segwit può comunque sincronizzarsi e verificare le transazioni, ma non vedrà le firme esterne al blocco, per lui le transazioni segwit sono delle "anyone can spend" senza firma.

In realtà penso che diventino anyone can spend solo con una versione del client aggiornato modificata che legga le transazioni segwit. Se il client non supporta completamente segwit, credo non sia nemmeno in grado di visualizzare l'utxo (potrei sbagliarmi).

  ▄▄███████▄███████▄▄▄
 █████████████
▀▀▀▀▀▀████▄▄
███████████████
       ▀▀███▄
███████████████
          ▀███
 █████████████
             ███
███████████▀▀               ███
███                         ███
███                         ███
 ███                       ███
  ███▄                   ▄███
   ▀███▄▄             ▄▄███▀
     ▀▀████▄▄▄▄▄▄▄▄▄████▀▀
         ▀▀▀███████▀▀▀
░░░████▄▄▄▄
░▄▄░
▄▄███████▄▀█████▄▄
██▄████▌▐█▌█████▄██
████▀▄▄▄▌███░▄▄▄▀████
██████▄▄▄█▄▄▄██████
█░███████░▐█▌░███████░█
▀▀██▀░██░▐█▌░██░▀██▀▀
▄▄▄░█▀░█░██░▐█▌░██░█░▀█░▄▄▄
██▀░░░░▀██░▐█▌░██▀░░░░▀██
▀██
█████▄███▀▀██▀▀███▄███████▀
▀███████████████████████▀
▀▀▀▀███████████▀▀▀▀
█████████████LEADING CRYPTO SPORTSBOOK & CASINO█████████████
MULTI
CURRENCY
1500+
CASINO GAMES
CRYPTO EXCLUSIVE
CLUBHOUSE
FAST & SECURE
PAYMENTS
.
..PLAY NOW!..
LordStapy
Member
**
Offline Offline

Activity: 110
Merit: 94


View Profile
July 20, 2019, 01:14:26 AM
 #4

Se il client non supporta completamente segwit, credo non sia nemmeno in grado di visualizzare l'utxo

Se non potesse identificare l'utxo, non avrebbe modo di validare la transazione che va a spenderlo portando a uno split della blockchain, segwit è stato attivato come soft-fork anche per evitare incompatibilità con i vecchi nodi. Sarebbe vero quello che dici nel caso di un hard-fork che introduce nuovi OP_CODE dedicati a segwit (o a qualunque altra cosa), ma in quel caso i nodi obsoleti non potrebbero validare i nuovi blocchi.
Sarei curioso di fare una prova con un vecchio nodo ed avrei anche un vintage bitcoin-qt 0.9 su un vecchio portatile, ma non è sincronizzato da anni ed ho solo un paio di giga liberi su disco  Undecided

Comunque, un output segwit (p2wkh o p2wsh) ha come script di blocco qualcosa del tipo "OP_0 OP_PUSHDATA pubkeyhash/scripthash", quindi dovrebbe essere perfettamente riconoscibile ad un vecchio nodo anche se non è presente la condizione per spendere l'output, sicuramente non sarà in grado di decodificare l'indirizzo, ma riconoscerà l'output e lo inserirà nel database degli utxo.
Nel caso di indirizzi segwit P2SH, lo script di blocco è irriconoscibile da un generico P2SH finchè non viene speso; c'è stato qualcuno che ha commesso l'errore di inviare transazioni a quegli indirizzi sulla rete BCH che non supporta segwit ed i miner sono stati in grado di spendere/recuperare quei fondi.

BTC: 1Lord4dwWriXw7T8QoyaNmamYWup8g76Tu
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!