Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03544.jsonl.gz/2673

Datenarchitektur der Libra Blockchain – Teil 7 – Geschichte der Transaktionen
Die Libra Blockchain löscht im Grundsatz nichts aus ihren Datenbeständen. Sie legt grossen Wert darauf, die Daten vollständig historisiert aufzubewahren, so dass man im Nachhinein jederzeit nachvollziehen kann, wie der Datenbestand zu einem früheren Zeitpunkt aussah.
Um zu verstehen, warum die Datenbestände der Libra Blockchain eine Geschichte habe, die sie als ledger history bezeichnet, werden wir zunächst einen Blick auf das Konzept einer Transaktion werfen. Transaktion ist ein stark überladener Begriff und wir werden zunächst zeigen, was man im traditionellen Bankumfeld darunter versteht und wie sich die Begrifflichkeit der Libra Blockchain davon unterscheidet.
«Transaktionen» mit einer traditionellen Bank
Wenn man eine Dienstleistung einer traditionellen Bank in Anspruch nimmt, erteilt man ihr als Kunden normalerweise einen Auftrag.
-
Mit einem Zahlungsauftrag weisst man sie zum Beispiel an, 100 CHF vom eigenen Konto auf das Konto eines Empfängers zu überweisen.
-
Mit einem Börsenauftrag beauftragt man sie, 100 Einheiten der Aktie X zu kaufen uns ins eigene Depot zu legen.
Man ist sich gewohnt, seine Aufträge präzise zu beschreiben, wenn man mit einer Bank kommuniziert. Typischerweise füllt man ein Formular, elektronisch oder auf Papier, aus, um der Bank zum Beispiel den Auftrag „Überweisen Sie bitte CHF 100 vom Konto A aufs Konto B“ zu erteilen. Die Verbindlichkeit des Auftrags bestätigt man, indem man ihn handschriftlich oder elektronisch unterschreibt, oder indem man sich in einem Web-Portal verlässlich authentisiert,bevor man den Auftrag elektronisch erfasst.
Die Bank nimmt diese Aufträge entgegen und führt sie aus. Man sagt in diesem Zusammenhang, dass sie eine «Transaktion ausführt». Der Begriff Transaktion steht hier für einen Vorgang, an dem Mitarbeitende und IT-Systeme der Bank beteiligt sind und in dem sie den Auftrag erfüllt.
In diesem Zusammenhang fallen bei der Bank Daten über die Transaktion an:
-
Aufgrund welchen Auftrags wurde die Transaktion ausgeführt?
-
War sie erfolgreich? Konnten die CHF 100 überwiesen bzw. die 100 Aktien gekauft werden?
-
Welche Kosten für die Ausführung sind angefallen? Muss dem Auftraggeber für die Ausführung ein Preis verrechnet werden?
-
Was war das Ergebnis der Transaktion? Was ist beispielsweise der neue Kontosaldo, nachdem die 100 CHF überwiesen wurden?
Eine traditionelle Bank bewahrt sowohl Daten zu den Aufträgen (englisch oft als orders bezeichnet) als auch Daten über die ausgeführten Transaktionen auf. Sie nutzt diese Daten vielfältig, zum Beispiel, um Kunden Auskunft geben oder um Auswertungen über die durchgeführten Transaktionen zu erstellen.
«Transaktionen» in der Libra Blockchain
Die Libra Blockchain hat kein Eigenleben. Sie wird nur aktiv, wenn sie dazu angestossen wird. Sie beginnt erst dann zu arbeiten, wenn sie einen Auftrag dazu erhält.
Die Libra Blockchain nennt diesen Auftrag eine transaction, und nicht etwa, wie man vermuten könnte, eine order.
Eine transaction ist ein Datenobjekt, das ein Auftraggeber an die Libra Blockchain schickt und das die Libra Blockchain auffordert, etwas zu tun. Ähnlich wie bei einem Auftrag, den man einer traditionellen Bank erteilt, muss der Auftrag präzise beschrieben sein. Eine transaction ist eine präzise Anweisung an die Libra Blockchain, was sie tun soll. Die Verbindlichkeit des Auftrags stellt der Auftrageber gegenüber der Libra Blockchain klar, indem er die transaction elektronisch unterschreibt.
Ähnlich wie eine traditionelle Bank erfasst und bewirtschaftet die Libra Blockchain Daten über die Ausführung eines Auftrags. In ihrer Terminologie bezeichnet sie diese Datenobjekte als transaction infos.
Zusammengefasst:
-
transactions sind Datenobjekte, die Aufträge für auszuführende Transaktionen enthalten. Die Libra Blockchain unterscheidet zwischen einer transaction ohne (siehe Quellcode) und einer mit elektronischer Unterschrift (siehe Quellcode).
-
transaction infos sind Datenobjekte, die Informationen über ausgeführte Transaktionen enthalten (siehe Quellcode).
Die ledger history ist die Geschichte der ausgeführten Transaktionen
Es käme uns absurd vor, wenn eine Bank alle Aufträge ihrer Kunden ausdrucken und in einem zentralen Büro auf einen Stapel legen würde, um sie anschliessend durch einen Mitarbeitenden Auftrag um Auftrag abzuarbeiten. Auf diese Art und Weise arbeitet die Libra Blockchain aber die eingehenden Aufträge (transactions) ab. Sie kennt (auf unserer konzeptionellen Flughöhe) keine Parallelverarbeitung, sondern arbeitet stoisch einen Auftrag nach dem anderen,das heisst, eine transaction nach der anderen, ab.
Die Geschichte der Libra Blockchain ist deshalb die Sequenz aller ausgeführten Aufträge, oder in ihrer Begrifflichkeit, die Sequenz der transaction infos für alle ausgeführten transactions.
Hohe Ansprüche an die ledger history
Die Libra Blockchain hat hohe Ansprüche an ihre ledger history (die sie auch erfüllt!). Sie stellt sicher, dass die ledger history vor Manipulationen geschützt ist, obschon sie ebenso wie die ledger states zumindest für lesende Zugriffe öffentlich und frei zugänglich ist. Sie gewährleistet ebenso, dass jedermann relativ leicht nachprüfen kann, ob die ledger history manipuliert wurde
Es liegt in der Natur der Sache, dass die ledger history kontinuierlich wächst. Der Schutz vor Manipulationen sollte davon möglichst nicht betroffen sein. Es wäre sehr unbefriedigend, wenn die Libra Blockchain je länger desto mehr Zeit bräuchte, um den angestrebten Schutz aufrecht zu erhalten. Ebenso unbefriedigend wäre es, wenn sie immer mehr Zeit bräuchte, um nachzuweisen, dass die ledger history nicht manipuliert wurde. Sie braucht für die ledger history eine Datenarchitektur, die mit diesen Herausforderungen klarkommt.
Die Datenarchitektur der Libra Blockchain unterhält deshalb die ledger history in der Form eines merkle accumulators, auf den wir im nächsten Blog-Beitrag eingehen werden.