Taler für Entwickler

Frei

Taler ist freie Software mit einem offenen Protokoll. Alle Programmierer sind dazu eingeladen, unseren Referenzcode in ihre Anwendungen aufzunehmen. Verschiedene Taler-Komponenten sind unter verschiedenen Lizenzformen verfügbar. Für die Taler-Wechselstube (den "Exchange") dient Affero GPLv3+, LGPLv3+ für den Referenzcode der Integration in Handelsplattformen, GPLv3+-Lizenzen gelten für Geldbörsen ("Wallets") und Kundeninteraktions-Software. Wir heißen alle konstruktiven Vorschläge willkommen, die Taler-Komponenten in eigene Anwendungen zu integrieren.

RESTful-basiert

Taler als Bezahlsystem benutzt ein RESTful-Protokoll über HTTP oder HTTPS-Verbindungen, um auch in eingeschränkten Netzwerkumgebungen sichere Buchungen über das Internet auszuführen. Das Sicherheitskonzept von Taler hängt nicht vom Gebrauch der HTTPS-Verbindungen ab, doch werden Handelsunternehmen aus Gründen der Konsistenz mit ihren Webshops HTTPS vorziehen, das auch gerade wegen seiner Verschlüsselung eine noch höhere Sicherheit als eine HTTP-Verbindung bietet. Taler nutzt das JSON-Format, um strukturierte Daten zu verschlüsseln. Dies erleichtert die Integration von Taler in bestehende Webseiten und Anwendungen. Eine ausführliche Dokumentation des Taler-Protokolls befindet sich auf docs.taler.net.

Code

Taler wird hauptsächlich entwickelt von einem Forscherteam bei Inria und GNUnet. Unterstützung von externen Beitragenden ist immer willkommen. Unsere Git-Repositories können mit Git und HTTP-basiertem Zugriff auf git.taler.net geklont werden. Eine Liste der Repositories befindet sich auf unserem GitWeb.

Dokumentation

Neben dieser Webseite bestehen die Code-Dokumentation, die Entwicklerdokumentation. Wissenschaftliche Literatur findet man in der Bibliographie.

Diskussion

Zum Austausch unter Entwicklern haben wir eine Mailingliste. Um sich einzutragen oder das Listenarchiv zu lesen besuche man http://lists.gnu.org/mailman/listinfo/taler.

Regressiontests mit Buildbot

Unter buildbot.taler.net befinden sich Ergebnisse der Testumgebung Buildbot, um Fehler nach Modifikationen aufzeigen zu können und die Portabilität des Codes zu gewährleisten.

Testabdeckung

Wir verwenden LCOV, um die Testabdeckung unserer Funktionstests zu analysieren, die Ergebnisse sind auf lcov.taler.net.

Das Taler-System im Überblick

Das Taler-Bezahlsystem verwendet Protokolle für den Geldfluss zwischen den Beteiligten. Die grundlegenden Transaktionen sind in der Grafik dargestellt:

Das Taler-System im Überblick
  1. Zuerst überweisen Taler-Nutzer Geld von ihren herkömmlichen Girokonten in den Währungen der Geschäftsbanken (in der Grafik oben links) an die Taler-Wechselstube (der sog. "Exchange" in der Mitte der Grafik). Im Betreff der Überweisung nennen sie eine Transaktionsnummer ihrer Taler-Geldbörse. Damit bilden sie eine Münzen-Reserve bei der Taler-Wechselstube.
  2. Sobald die Taler-Wechselstube die Überweisung von der Bank erhalten hat, erlaubt sie die Verwendung der digitalen Münzen in der Taler-Geldbörse. Die Ursprungswährungen werden dabei zu gleichnamigen Währungen in der Taler-Geldbörse und behalten ihren ursprünglichen nominellen Wert abzüglich einer gegebenenfalls von der Wechselstube geforderten Tauschgebühr. Wichtig zu wissen ist, dass die Taler-Wechselstube keine Kenntnis der "Seriennummern" der erzeugten digitalen Münzen erlangt. Dies hat zur Folge, dass später nicht mehr nachvollzogen werden kann, welcher Käufer von welchem Verkäufer welche Güter erwarb. Auch die Güter selbst bleiben unbekannt.
  3. Die digitalen Münzen der Geldbörse kann man ausgeben bei allen Verkäufern, die das Taler-Bezahlsystem unterstützen und eine Taler-Wechselstube als Geschäftspartner akzeptieren (in der Grafik unten rechts). Dieser Vorgang erzeugt einen digitalen Vertrag, der sowohl von den Verkäufern als auch von den Käufern mit einer Signatur versehen wird (in der Grafik unten als Pfeil dargestellt). Dieser elektronisch "unterschriebene" Vertrag enthält die genauen Vertragsbedingungen und ist für eventuelle Streitfälle auch vor Gericht verwendbar als Eigentumsnachweis eines gekauften Gutes zum gegebenen Kaufpreis. Dazu müssen weder Käufer noch Verkäufer über die Identität oder Bankdaten ihrer Geschäftspartner Bescheid wissen. Natürlich kann jeder beliebige Teilbetrag von Münzen aus der Taler-Geldbörse verwendet werden, das System sorgt für das korrekte Wechselgeld.
  4. Nach dem Vertragsabschluss übertragen die Käufer ihre digitalen Münzen an die Verkäufer, die sich die entsprechenden Forderungen von der Taler-Wechselstube auf ihre Girokonten erstatten lassen. Die Wechselstube veröffentlicht dabei weder Vertragsdetails noch Käuferdaten und kennt nur die Identität der Verkäufer durch ihre Bankverbindungen. Die Verkäufer können daher gegenüber staatlichen Steuerbehörden einen Nachweis ihrer rechtmäßigen Geschäfte erbringen. Die Datenbank der Wechselstube unterstützt auf diese Weise den Staat, ausnahmslos alle Verkäufer zu ihren Steuerzahlungen zu verpflichten und von illegalen Geschäften abzuhalten.
  5. Als letzten Schritt überweist die Taler-Wechselstube die Forderungen der Verkäufer an deren Geschäftsbanken (in der Grafik oben rechts). Die Geldbeträge entsprechen den Werten der digitalen Münzen. Die Taler-Wechselstube kann mehrere kleinere Beträge zu einem Gesamtbetrag zusammenfassen und an die Geschäftsbank überweisen. Die Verkäufer haben die Möglichkeit, ihre angemeldeten Forderungen und deren Überweisung an die Geschäftsbank bei der Taler-Wechselstube abzufragen.
  6. Eine bedeutende Eigenschaft der Wechselstube besteht darin, dass sie kryptografisch verschlüsselte Prüfdaten bereitstellt, um ihre korrekte Funktionalität nachzuweisen. Diese verschlüsselten Prüfdaten werden unabhängigen Parteien wie z.B. von Regierungen ernannten Finanzaufsichtsbehörden oder Auditoren zur Verfügung gestellt, die regelmäßig die Wechselstube-Datenbanken auf Funktionalität überprüfen können. Dabei vergleichen sie die Übereinstimmung der im Umlauf befindlichen Summe von digitalen Münzen mit den Überweisungen an Geschäftsbanken.
  7. Die Rolle des Auditors sorgt dafür, dass die Taler-Wechselstube keine Forderungen oder Überweisungen unterschlagen kann. Ebenso wenig können Käufer oder Verkäufer sich gegenseitig oder die Wechselstube betrügen. Sollte der Computer eines Beteiligten beschädigt oder korrumpiert worden sein, beschränkt sich der finanzielle Schaden immer nur auf den Wert der digitalen Münzen auf dem jeweiligen Computer zum Zeitpunkt der Schadensentstehung.