Salve a tutti ragazzi, grazie per le risposte dei post precedenti, ho ripreso lo studio del sistema bitcoin ed ho un po di dubbi che elenco di seguito:
- Non è detto che un nodo della rete bitcoin faccia anche da miner?
- Un wallet è un nodo della rete che può essere di tipo full (scarica tutta la blockchain per intero) o light (scarica solo gli header dei blocchi) ?
- Quando invio una transazione questa si propaga prima a tutti i nodi della rete e poi viene minata?
- Nel momento in cui invio la transazione automaticamente il ricevente vede il suo credito aggiornarsi se ha un nodo full mentre se ha un nodo light deve attendere che la transazione sia validata e inclusa in un blocco?
- Che controlli applica un nodo per bloccare una transazione che utilizzi un importo già speso ma non ancora confermato?
Grazie a tutti
1)Un nodo può essere tale anche senza fare mining
2)Si. In particolare un full node usa la propria copia della blockchain per verificare che tutti gli input di tutte le transazioni non siano stati precedentemente spesi. In più verifica che ogni blocco e ogni transazione rispetti le regole del consenso (es. ogni blocco non può essere più grande di 1mb, ogni blocco non deve dare una ricompensa maggiore di 12,5..). Se un blocco o una transazione non rispettano le regole del consenso questi vengono respinti e non instradati, nonostante altri nodi li ritengono validi. I full nodes rispondo alla regola base del processo di consenso distribuito "Don't trust, verify": essi mettono in dubbio qualsiasi informazione gli venga passata da un nodo vicino non potendo sapere, in una rete aperta e ad accesso libero, se il nodo vicino è onesto o disonesto. I "light" node si basano sulla tecnica SPV (Simple Payment Verification) e usano gli header per verificare che la propria transazione sia inclusa in un particolare blocco e verificare solo quella (tramite il merkle tree).
3)Si, in particolare una transazione instradata ma non confermata finisce nella mempool (memory pool) da dove poi il miner che ha "vinto" la proof of work la preleva e la include nel blocco appena minato . Usualmente i miner danno la precedenza alle le transazioni con fee più alte (in modo da incrementare la loro ricompensa)
4)In base al wallet che usi l'aggiornamento è immediato nel saldo anche se per il momento non spendibile fino ad un numero sufficiente di conferme (di solito 6)
5)Anche qui dipende dal wallet. Una transazione trasmessa ma non ancora confermata in teoria può essere "doppio spesa" inviando un uguale ammontare a se stessi con una fee più alta in modo che i miners la accodino alla blockchain prima della transazione originale. Ma molti wallet impediscono questa azione.