Autore Topic: Come salvare dati nella Blockchain  (Letto 742 volte)

Description:

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline smartmouse

  • Administrator
  • Great Moneywanter
  • *****
  • Post: 9030
  • Punteggio feedback: 68
Come salvare dati nella Blockchain
« il: 29 Maggio 2016, 15:39:24 »
Il salvataggio di dati nella Blockchain è reso possibile grazie alle transazioni Bitcoin di tipo "null data", che sfruttano il parametro OP_RETURN, il quale permette di inserire fino a 80 byte di dati in una transazione.
Ci sono alcuni servizi online, come proofofexistence.com o eternitywall.it, che permettono di effettuare lo storage di dati in Blockchain, facilitando di gran lunga l'operazione, altrimenti realizzabile solo da utenti sviluppatori o conoscitori del codice sorgente del software Bitcoin.

Per non operare così a basso livello e per non usare i servizi online sopra citati, è possibile utilizzare un modo che si colloca a metà strada tra i due: il wallet di Coinb.in.

Questo wallet permette oltre l'invio di transazioni esclusivamente monetarie, anche l'invio di dati.
Ecco alcuni passi per inserire in una transazione Bitcoin un messaggio (convertito in esadecimale) oppure l'hash di un file.
Nel caso dell'inserimento di un hash di un file, salvarlo in Blockchain costituirà la prova dell'esistenza di quel file, e ciò, per la natura della Blockchain, lo sarà per sempre!

Potete ottenere l'esadecimale di un messaggio o l'hash di un file attraverso vari modi oppure usando alcuni siti dedicati ad operazioni del genere.
Ad esempio un modo è quello di usare dei comandi di Linux, come ad esempio il seguente nel caso della conversione in esadecimale di un messaggio:

Citazione
echo -n "Messaggio da salvare" | hexdump -C


La corrispondente stringa esadecimale è la seguente: 4d657373616767696f2064612073616c76617265

Dunque, andate su http://coinb.in e scegliete dal menu in alto New -> Transaction



Nella pagina che si apre inserite nel campo Address, WIF key or Multisig Redeem Script l'indirizzo Bitcoin di vostra proprietà su cui avete alcuni fondi da spendere, e poi premete su Load.
In questo modo in fondo alla pagina nel tab Inputs comparirà il saldo del vostro indirizzo
Poi cliccate su Advanced Options e aggiungete il segno di spunta alla voce Null Data, che è proprio l'opzione che estende la natura della transazione monetaria permettendo l'inserimento di byte.



Successivamente cliccate sul simbolo + che trovate sulla destra del tab Outputs, così da avere due righe dedicate agli indirizzi output. Nella prima riga inserite nel campo Address l'indirizzo destinazione e nel campo Amount un importo arbitrario da inviare; nella seconda riga inserite l'esadecimale del messaggio o l'hash del file che avete generato (lasciando in questo caso 0.00 come importo).
Infine premete Submit e verrà generata la transazione "raw". Selezionatela e copiatela.



Nel menu in alto cliccate su Verify e incollate nella casella la transazione raw copiata precedemente.
Cliccando su Submit potrete verificare che lo script della transazione sia corretto.



Una volta verificata la transazione cliccate il pulsante Sign che trovate sempre nel menu superiore.
Nel campo Private key dovrete incollare la chiave privata relativa all'indirizzo Bitcoin di cui avete fatto il load nella prima pagina, e nella casella testo sottostante va incollata nuovamente la transazione raw.
In questo modo si sta firmando la transazione con la propria chiave privata, in modo da renderla pronta per essere inviata sul network. Premete su Submit e copiate la Signed transaction che verrà generata.



Infine cambiate ancora tab nel menu in alto cliccando su Broadcast. Incollate nella casella di testo la signed transaction ottenuta nella pagina precedente e cliccate su Submit. Si otterrà così il txid che è l'id della transazione che è stata appena "pushata" sul network.



Nel giro di qualche minuto sarà visualizzabile in Blockchain, inserendo il txid in siti come blockchain.info o in siti dedicati a transazioni di tipo null data, come coinsecrets.org.

Dunque avete "scritto" qualcosa in Blockchain che resterà lì per sempre! Niente o nessuno potrà cancellare o modificare i dati che avete inviato.
Don't stay in bed, unless you can make money in bed.