Prendere soldi sul web usando Bitcoin - il modo in cui è stato progettato

Nel 2009, Bitcoin utilizzava una funzionalità che consentiva lo scambio di informazioni da IP a IP. Il portafoglio del 2009 non era altro che una prova del concetto e molti dei migliori aspetti di Bitcoin sono stati disabilitati poiché quelli che hanno sviluppato il software non lo hanno capito.

La scorsa settimana, ho discusso di come utilizzare una chiave in una smart card, mentre la privacy è stata mantenuta utilizzando il modello di identità del firewall di Bitcoin. Per la prossima settimana, mostrerò sia un metodo che consente a un server Web di accettare in modo sicuro pagamenti in bitcoin in modo ingenuo sia un metodo che consente lo scambio di fiat e altri token mantenendo un livello assoluto di privacy.

Certificati PKI: il processo

Tale - non il mining - è l'aspetto peer-to-peer di Bitcoin, ed è una delle prime cose che gli sviluppatori Core hanno rimosso.

Nel 2009 era ancora necessario molto lavoro.

Nel 2009 il sistema non era ancora completo. Diversi metodi possibili dovevano essere testati e il metodo utilizzato nel client 2009 lasciava molto a desiderare. D'altra parte, era semplicemente una prova del concetto.

Per risolvere tali problemi, dobbiamo iniziare capendo che nodi e portafogli sono separati. I nodi sono minatori e i portafogli sono ciò che viene utilizzato dall'utente per consentire una transazione P2P. Nel post di oggi, spiegherò come un certificato web basato su ECDSA, un certificato server SSL / TLS che ti consente di navigare in Internet in modo sicuro, può essere la base di un sistema di pagamento commerciale - un sistema che rimane sicuro e privato, e tuttavia è anche costruito in modo tale da inviare un pagamento a un determinato indirizzo solo una volta.

In altre parole, non riutilizza mai le chiavi.

Esistono due modi per inviare denaro. Se il destinatario è online, tu
possono inserire il loro indirizzo IP e si connetterà, ottenere un nuovo pubblico
chiave e inviare la transazione con commenti. Se il destinatario è
non online, è possibile inviare al loro indirizzo Bitcoin, che
è un hash della loro chiave pubblica che ti danno. Riceveranno
la transazione la prossima volta che si connettono e ottengono il blocco è
in. Questo metodo ha lo svantaggio di non avere informazioni sui commenti
viene inviato e un po 'di privacy potrebbe andare persa se l'indirizzo viene utilizzato
più volte, ma è un'alternativa utile se entrambi gli utenti non possono
essere online contemporaneamente o il destinatario non può ricevere in entrata
connessioni.

Il certificato è qualcosa che può essere utilizzato sia in S / MIME che HTTPS.

Se prendiamo la chiave associata a un certificato registrato dalla CA, possiamo creare un registro pubblico di tutte le monete che vengono inviate al commerciante e allo stesso tempo mantenere la privacy.

Inizieremo con Alice, un consumatore, e Bob, un commerciante web con un certificato web basato su ECDSA per il suo sito HTTPS://www.bob.com.

Alice ha una chiave master Bitcoin. La chiave master non viene utilizzata per inviare o ricevere bitcoin e può essere un metodo per creare una chiave di identità (e potrebbe persino essere su una smart card). Tale è la chiave che chiameremo P (Alice).

Il sito Web di Bob (lascerò che gli altri pensino a quanto sia semplice estendere il meccanismo nell'e-mail con S-MIME) ha una chiave master P (Bob).

Alice ha una serie di monete (cioè riferimenti UTXO) che possono essere completamente estranee a P (Alice) e che non hanno alcuna relazione con la sua chiave principale. Lo chiameremo P (A-1-i); qui, (i) si riferisce al numero della moneta utilizzata.

Alice può creare un segreto comune (s1) usando il processo documentato nel seguente documento:

DETERMINAZIONE DI UN SEGRETO COMUNE PER LO SCAMBIO SICURO DI INFORMAZIONI E CHIAVI CRITTOGRAFICHE GERARCHICHE E DETERMINISTICHE

Per utilizzare un tale meccanismo (uno dei tanti esempi), Alice va nel negozio online di Bob e ora cerca di pagare. Alice può calcolare un segreto condiviso con Bob. Per essere più sicuro, Alice può utilizzare l'ID della sessione Web che condivide con Bob, il numero di fattura o qualsiasi altra cosa. Può essere utilizzato in un valore basato su HMAC per aggiungere ulteriore sicurezza e privacy, ma per oggi userò un semplice hash per semplificare la comprensione del processo.

Sia Alice che Bob possono calcolare un valore S, che è collegato alle chiavi che Alice e Bob usano sul web. Alice può avere una chiave di identità e autenticazione che non si collega pubblicamente ai suoi acquisti, ma protegge tutte le sue comunicazioni con Bob.

Alice invia un messaggio a Bob che è crittografato in una transazione Bitcoin. La transazione può essere completata utilizzando un processo offline o online. Se Bob è online, può archiviare il valore di un nonce da Alice come parte del checkout web.

Se Bob non è online e ha un sito piuttosto semplice, può usare la blockchain per registrare informazioni sul pagamento e verificarlo.

Alice invia a Bob una transazione a P (Bob). Bob non utilizza un tale indirizzo, quindi il pagamento è piccolo; senza il limite della polvere, sarà sufficiente un solo satoshi. Alice invia il messaggio per il pagamento all'indirizzo P (Bob) e Bob non lo utilizza per i fondi. Possiamo dire che Bob spenderà SOLO dall'indirizzo (quello associato alla chiave pubblica P (Bob)) quando il certificato è contrassegnato come scaduto. Il processo funge da forma di "elenco di revoche" distribuito in cui Bob può controllare la propria chiave. Inoltre, se la chiave e il certificato di Bob vengono mai attaccati e le transazioni relative alla polvere qui vengono spese da un utente malintenzionato, agisce come un avviso automatico. Bob potrebbe mantenere una piccola quantità di fondi nell'account come mezzo per consentire agli hacker di pensare che sia un indirizzo valido per l'uso (ad esempio $ 2.000) che andrebbe perso solo se l'account fosse stato violato, ma che avvisa anche tutti i clienti di Bob all'attacco.

Bob può rendere l'account più privato usando una sottochiave - vedi Fig. 9 nel brevetto:

Fig. 9 dal brevetto 42

Bob potrebbe persino avere un processo in cui il numero di fattura è associato a una sottochiave.

Alice ora invia all'indirizzo associato a P (Bob) - e nello script o come valore OP_RETURN include un valore che è stato crittografato (ad esempio con l'uso di un algoritmo di crittografia AES). Utilizzando il metodo indicato sopra, Bob può calcolare (S). I dati nel messaggio a Bob inviati con un singolo satoshi (più le spese di mining) contengono tutto ciò che Bob deve sapere per sapere dove Alice ha inviato il pagamento. Bob utilizza la chiave simmetrica (S) per decrittografare i dati nel messaggio:

  • Cifrare (S) [M]

che dà a Bob il messaggio di Alice, M.

  • Decrypt (S) [M]

Bob ora può calcolare un indirizzo chiave dalla chiave derivata:

  • P (Bob-Paid) = P (Bob) + HMAC (M ~ S) xG
  • La chiave del messaggio è P (messaggio condiviso) = HMAC (M ~ S) xG

SOLO Bob e Alice conosceranno il nuovo HMAC segreto (M ~ S).

Alice può dimostrare di aver inviato un pagamento a Bob. Bob può trovare i soldi da Alice e verificare la transazione.

Allo stesso tempo, nessuna parte esterna può determinare l'indirizzo da cui Alice ha inviato il pagamento da - P (A-1-i) a Bob presso P (Bob-Paid).

Poiché Bob ha un record sulla blockchain di P (Bob) e ha una pista di controllo completa di tutti gli indirizzi di pagamento che ha ricevuto. Il record può essere collegato a fatture, ordini di acquisto e altro, consentendo a Bob di costruire una pista di controllo completa di tutti gli scambi e uno che non può essere cancellato, alterato o manipolato. Il metodo soddisfa tutti i problemi di contabilità legislativa richiesti per Bob e può avere un indirizzo separato in cui l'IVA e altre imposte sulle vendite vengono inviate al governo mentre viene pagato. In altre parole, Bob non ha bisogno di sperimentare costosi audit e l'autorità fiscale può essere pagata immediatamente senza indugio.

Token e Bitcoin

Utilizzando un protocollo come Tokenized o uno dei vari per i quali nChain ha depositato i brevetti, Alice e Bob possono anche scambiare fiat tokenizzate. Significa che Alice potrebbe pagare Bob usando un token GBP emesso da una banca nel Regno Unito. Tale token viene trasmesso utilizzando il processo sopra elencato, consentendo ad Alice e Bob di effettuare transazioni in modo sicuro utilizzando la liquidità digitale nella valuta di propria scelta, pur utilizzando Bitcoin come "impianto idraulico" per lo scambio.

Collegamento alla metanet

Pertanto, anche se Bob sta eseguendo un sito Web offline, ovvero un sistema semplice senza un database back-end, i record ricevuti sulla chiave P (Bob) possono ora fungere da forma di archivio di dati immutabile.

Il messaggio che Alice crittografa su Bob può essere l'ordine completo.

Può essere completato utilizzando tipi di messaggi EDI esistenti. A differenza dell'EDI, il metodo è sicuro, protetto e privato.

Meglio, il disco è immutabile. Non c'è posto per le frodi contabili. È possibile annullare le transazioni, ma ciò richiede un ritorno di fondi alla fonte di origine.

Alice e Bob possono registrare l'intero processo commerciale.

Bob può contenere una serie di indirizzi gerarchici che registrano tutte le fasi dell'ordine, dalla fatturazione e pagamento all'invio e alla consegna. Se ora Bob ha una chiave sub-master per ciascun cliente (vedere il brevetto sopra e la Figura 9), può anche costruire una sottochiave separata, nota a se stesso, al cliente e all'autorità fiscale a fini di verifica, ma no altri, permettendogli di mantenere un livello assoluto di privacy, dove altri clienti e fornitori non sanno nemmeno quante transazioni sta facendo. Inoltre, può costruire pagamenti in un modo che gli consenta di isolare i dipendenti interni e far loro conoscere solo le informazioni relative ai loro dipartimenti.

Mentre la chiave collegata alla CA non viene toccata, gli account possono essere inviati al vecchio indirizzo. Una chiave della CA secondaria potrebbe essere collegata all'esercizio contabile e includere anche ogni periodo fiscale. Chiudi il certificato, riscuoti tutti i pagamenti effettuati come polvere e allo stesso tempo chiudi i libri pronti per il nuovo anno contabile.

Messaggio EDI

EDI è uno schema di codifica esistente per il commercio.

Possiamo vedere i formati dei messaggi ANSI ed EDIFACT nell'immagine qui sotto:

ANSI vs EDIFACT

Nel nostro sistema, utilizziamo la chiave di crittografia per i dati nel messaggio (non il pagamento) come "messaggio di gruppo". Non è necessario un messaggio di interscambio. Sarebbe un uomo di mezzo, e in Bitcoin, abbiamo rimosso il bisogno di lui.

EDI standard

Il nuovo modello per il commercio è quello in cui tutti i record sono immutabili, non possono essere persi e consentono ad Alice e Bob di commerciare privatamente.

Bitcoin Data Interchange

E, gli strumenti per mappare EDI a una transazione Bitcoin apparirebbero semplicemente come strumenti EDI come sono oggi.

Anche incorporato in una transazione Bitcoin, il formato crittografato EDI XML potrebbe essere semplicemente estratto e visualizzato o stampato come qualsiasi altra fattura o ordine:

Fattura visualizzata

Nel mondo EDI esistente, i clienti vengono addebitati utilizzando modelli che operano all'interno di fasce di prezzo in base ai volumi previsti di Kilo-Personaggi (KC) o documenti. Ci sono anche costi nascosti come lunghezze minime dei record con molti fornitori che specificano una lunghezza record da 128 a 512 caratteri. Il risultato è che se invii 12 documenti di 12 caratteri, verrebbero addebitati fino a 5.120 caratteri, anche se si inviano solo 144 caratteri.

Per i commercianti con un grande volume di piccole transazioni, possono aggiungere un importo sostanziale al costo mensile.

Una cosa del genere non è un problema con Bitcoin.

Sebbene la dimensione massima consentita per i messaggi EDI NACCS sia di 500.000 byte, la realtà è che EDI e altri messaggi correlati sono generalmente dell'ordine di 150 byte. L'invio di un sistema di fatturazione e contabilità immutabile, privato e sicuro per frazioni di un centesimo per fattura - confronta facendo da 2 a 3 dollari per alcune soluzioni EDI e persino $ 0,20 per una semplice transazione Visa, e ... è ora di iniziare a ripensare come fai affari.

In un tale modello, nessun indirizzo Bitcoin deve mai essere usato più di una volta e i pagamenti e le fatture sono collegati privatamente, il che può anche essere pseudonimo, poiché l'ID non deve essere inserito in un certificato utente.