Taler per programmatori

Libero

GNU Tale è un software libero che implementa un protocollo aperto. Chiunque è il benvenuto ad integrare la nostra implementazione di riferimento nelle proprie applicazioni. Le diverse componenti di Taler sono disponibili sotto licenze diverse. La licenza Affero GPLv3+ è usata per lo scambio, la LGPLv3+ è utilizzata per il codice di riferimento che dimostra l'integrazione con le piattaforme commerciali, e licenze come GPLv3+ sono usate per i portafogli e per il software correlato al cliente. Siamo aperti a suggerimenti costruttivi per massimizzare l'adozione di questa piattaforma di pagamento.

RESTful

Taler è progettato per funzionare su Internet. Per garantire che i pagamenti con Taler funzionino con configurazioni di rete restrittive, Taler utilizza un protocollo REST su HTTP o HTTPS. La sicurezza di Taler non dipende dall'utilizzo di HTTPS, ma ovviamente i commercianti possono decidere di offrire il protocollo HTTPS per la consistenza e perché, paragonato al protocollo HTTP, in generale è migliore per la privacy. Taler utilizza il formato JSON per codificare le strutture dati, rendendo semplice l'integrazione di Taler conle applicazioni Web esistenti. Il protocollo di Taler è documentato in dettaglio sul sito docs.taler.net.

Codice

Attualmente Taler è sviluppato principalmente da un team di ricerca presso Inria e GNUnet. Tuttavia, sono benvenuti i contributi di chiunque. I nostri repository Git possono essere clonati utilizzando i metodi di accesso Git e HTTP rispetto a git.taler.net con il nome del rispettivo repository. E' possibile trovare un elenco di repository sul nostro GitWeb.

Documentazione

Oltre a questo sito web, il codice documentato e la documentazione API. Si possono trovare i documenti tecnici nella nostra bibliografia.

Discussione

Abbiamo una mailing list per le discussioni tra i programmatori. Puoi iscriverti o leggere l'archivio al seguente link http://lists.gnu.org/mailman/listinfo/taler.

Test delle regressioni

Disponiamo di test di automazione Buildbot per rilevare regressioni e verificare la portabilità al seguente link buildbot.taler.net.

Analisi della copertura del codice

Utilizziamo LCOV per analizzare la copertura del codice dei nostri test, i risultati sono disponibili al seguente link lcov.taler.net.

Panoramica del sistema Taler

Il sistema Taler è costituito da protocolli eseguiti tra diversi attori come mostrato nell'illustrazione a destra. Le transazioni tipiche comportano le seguenti operazioni:

Panoramica del sistema
  1. Un cliente invita la sua banca a trasferire i fondi dal proprio conto al cambio Taler (in alto a sinistra). Nell'oggetto della transazione, egli include un token di autenticazione dal suo portafoglio elettronico. Nella terminologia di Taler, il cliente crea una riserva al cambio.
  2. Una volta che il cambio ha ricevuto il bonifico bancario, consentirà al portafoglio elettronico del cliente di prelevare le monete elettroniche. Le monete elettroniche sono rappresentazioni digitali della valuta originale dal trasferimento. E' importante notare che il cambio non apprende i "numeri seriali" delle monete create in questo processo, in modo da non sapere in seguito quale cliente ha acquistato cosa presso quale commerciante. L'utilizzo di Taler non modifica la valuta o il valore totale dei fondi (ad eccezione delle commissioni che il cambio può addebitare per il servizio).
  3. Quando il cliente avrà le monete digitali nel suo portafoglio, quest'ultimo potrà essere utilizzato per spendere le monete presso portali commerciali che supportano il sistema di pagamento Taler e accettano il rispettivo cambio come partner commerciale (freccia in basso). Ciò dà vita ad un contratto digitale firmato dalle monete del cliente e dal commerciante. Se necessario, in futuro il cliente potrà utilizzare in un tribunale questo contratto firmato digitalmente per dimostrare i termini esatti dell'accordo e il rispettivo importo pagato. Il cliente non conosce i dettagli bancari del commerciante, e Taler non richiede al commerciante di conoscere l'identità del cliente. Naturalmente, il cliente può spendere ogni piccola parte delle sue monete digitali (il sistema pensa ai clienti che ricevono del resto).
  4. I commercianti che ricevono monete digitali depositano le rispettive richieste di risarcimento derivanti dalla firma del contratto con il cliente presso il cambio per riscattare le monete. Lo step del deposito non rivela in alcun modo al cambio i dettagli del contratto tra il cliente e il commerciante o l'identità del cliente. Tuttavia, il cambio apprende l'identità del commerciante tramite le coordinate bancarie fornite. Ad esempio, se obbligato dallo Stato per la tassazione, il commerciante può fornire delle informazioni che collegano il deposito individuale al corrispettivo contratto sottoscritto dal cliente. In questo modo, il database del cambio consente allo Stato di far rispettare ai commercianti di pagare le imposte vigenti (e di non impegnarsi in contratti illegali).
  5. Infine, il cambio trasferisce i fondi corrispondenti alle monete digitali riscattate dai commercianti sul conto bancario del commerciante. Il cambio può combinare diverse piccole transazioni in un unico trasferimento bancario più grande. Il commerciante può interrogare il cambio sulla relazione tra i trasferimenti bancari e le singole richieste di risarcimento che erano state depositate.
  6. Ancor più importante, il cambio mantiente prove crittografiche che gli consentono di dimostrare a terzi che sta operando correttamente. Il sistema richiede ad un revisore esterno, ad esempio un organismo di regolamentazione finanziaria nominato dal governo, di verificare frequentemente i database del cambio e controllare che il suo saldo bancario corrisponda al valore totale delle monete restanti in circolazione.
  7. Senza il revisore, gli operatori del cambio potrebbero approfittare dei fondi che detengono in riserva. Clienti e commercianti non possono imbrogliare né l'un l'altro né il cambio. Se i computer di una delle parti sono compromessi, il danno finanziario è limitato alla rispettiva parte ed è proporzionale ai fondi in circolazione durante quel periodo.