Si tratterebbe di creare uno standard di tag e regole per scrivere negli op_return.
Questo schema standard e pubblico, potrebbe essere usato e letto da chiunque, e da qualunque servizio, che andrebbe a ricreare sull'interfaccia un simil-twitter, con la differenza da quello originale, questo non sarebbe cancellabile, perchè dentro la Blockchain del Bitcoin.
Quindi il servizio dovrà girarsi sempre tutta la blockchain, e in base a cosa trova andrà a ricreare il simil-twitter.
Visto che lo schema è pubblico, ripeto, potrebbero essere 1000 servizi che mostrerebbero questo "database".
Idealmente la soluzione migliore sarebbe che l'interfaccia di uno di questi servizi fornisca anche un wallet interno, cifrato localmente via javascript, che contenga la (o le) chiavi private per firmare queste transazioni.
Dovrebbe essere possibile estrarre e/o importare queste chiavi private.
La soluzione più facile sarebbe se si trattasse di un BIP32.
Esempio di regole, da cui prendere spunto.Creazione account:Si scriverebbe un OP_RETURN con su scritto ad esempio: "TE HostFat" (TE sta per Twitter Eterno, ma certamente si può trovare un nome migliore)
Questa prima regola indica che qualunque messaggio OP_RETURN che da ora in poi avrà come tag TE, E partirà da quell'indirizzo che per primo ha scritto nome HostFat, sull'interfaccia sarà indicato appartenente appunto ad HostFat.
Scrittura messaggio:Data la regola prima, se da un indirizzo che ha già ricevuto un assegnazione scrivo in un OP_RETURN: "TE Oggi sono andato al mare"
Nell'interfaccia apparirà
"HostFat: Oggi sono andato al mare".
Risposte:Se scrivo dal mio indirizzo bitcoin con un assegnazione, ad un altro indirizzo bitcoin sempre assegnato ad un altro utente, l'interfaccia mostrerà questa transazione come una risposta/richiamata ad un altro utente.
Nell'OP_RETURN non ci sarà scritto altro che il messaggio, ma
farà fede l'indirizzo di partenza e quello usato come change address.
OP_RETURN "TE hai mangiato la minestra?"
Esempio nell'interfaccia: "@Mamma @HostFat hai mangiato la minestra?"
Cambio indirizzo:Se per qualche motivo si volesse cambiare indirizzo Bitcoin, e serve una regola per indicare lo spostamento, esempio:
"TE MOVE IDENTITY"
Anche qui farà fede l'indirizzo iniziale e quello nel change address.
Il change address diventerà da quel momento in poi (non prima) considerato dal servizio che mostra l'interfaccia come quello da considerare come autore per l'identità assegnata precedentemente al primo indirizzo.
Retweet:Questo caso è più complesso, idealmente si potrebbe assegnare un numero a tutti gli OP_RETURN presenti sulla blockchain, ripeto, tutti, anche quelli non assegnati al servizio TE
Se un vuole fare un retweet di un messaggio di un altro utente, scriverà ad esempio nell'OP_RETURN: "TE RETWEET 3265" (dove 3265 è il numero nel messaggio da rimostrare nell'interfaccia.
Messaggi più lunghi:Ci potrebbero anche essere dei caratteri speciali di apertura e chiusura, dove se alla fine di un messaggio c'è un carattere di apertura, e al prossimo messaggio, scritto dalla stessa identità, c'è un carattere di chiusura, nell'interfaccia verrà mostrato come un messaggio unito/unico.
Descrizione, avatar, altroIpoteticamente sarebbe anche possibile inserire dei tag indicanti dati che andrebbero a creare ciò che ora su twitter sono appunto la descrizione dell'account, avatar e altre info, esempi di OP_RETURN:
Descrizione "D":
"TE D Sono un tizio qualunque che gli piace il calcio"
Avatar "A":
"TE A
http://www.sito.com/blablavatar.jpg"
Quindi ora l'utente avrà pure l'avatar e la descrizione del suo account.
L'interfaccia considererebbe sempre gli ultimi OP_RETURN come quelli assegnati all'account da mostrare nell'interfaccia.
Se l'utente vuole cambiare descrizione/avatar o altro deve appunto scriverne di nuovi.
Pareri e migliorie?
Il rischio che ad un certo punto cambino le regole di OP_RETURN, e quindi questo social network non potrebbe più esistere (rimarrebbero solo i messaggi precedenti)