Es ist nun amtlich: Qubic ist ein Protokoll um Smart Contracts mit IOTA zu verheiraten. Da es sich dabei um ein technisches Thema handelt, konnte ich es mir nicht verkneifen und habe den Artikel über die Kritik an IOTA nach hinten geschoben um mich vorher noch mit dem neuen Protokoll zu beschäftigen.

Aber was ist Qubic überhaupt? Wenn man sich die zur Zeit noch recht oberflächlichen Informationen auf der Qubic-Website durch liest, kommt man zum Schluss, das es ähnlich wie Bitcoins Lightning ein 2nd Layer Protokoll ist. Auf gut Deutsch: IOTA bleibt wie es ist und Qubic ist ein zusätzliches Protokoll, dass IOTA verwendet. Die ganzen tollen Funktionen werden zwar über den Tangle abgebildet, aber die Ausführung der Smart Contracts und die Datenermittlung passieren außerhalb in den Qubics.

Oracle, Oracle Machine, Qubic und Assembly

Es gibt gleich eine ganze Reihe von Begriffen die man lernen und begreifen muss, um zu verstehen was das Qubic-Protokoll für IOTA tut.

Die smarte Maschinenökonomie setzt voraus, dass jemand Informationen an die Maschinen weitergibt. Diese außerhalb stehende Informationsquelle nennt man Oracle oder zu Deutsch einfach Orakel. Die Daten werden in Form von IOTA-Transaktionen im Tangle publik gemacht.

Verarbeitet werden diese Daten von Programmen. Diese Programme nennen sich im IOTA-Jargon Qubics. Qubics sind spezielle IOTA-Transaktionen die den Programm-Code als Teil des Transaktionsinhalts enthalten. Zusätzlich enthält die Transaktionen die Definitionen wann der Qubic-Code auf welche Daten ausgeführt werden soll.

Da reguläre Full Nodes Qubic-Transaktionen nicht anders behandeln als meine letzte Überweisung, benötigt es zusätzliche Akteure. Das sind die Oracle Machines. Eine Orakelmaschine führt einen oder mehrere Qubics auf den vom Orakel bereitgestellten Daten aus.

Da IOTA ein verteiltes und vor allem öffentliches System ist, wäre es törricht jedem sofort alles zu glauben, was er über den Tangle hinausposaunt. Deshalb stimmen sich Oracle Machines untereinander ab und machen für jedes Ergebnis eines Qubics eine Abstimmung um das richtige Ergebnis zu ermitteln.

Im Gegensatz zu Systemen wie Ethereum, bei dem aktuell jeder Smart Contract von jeder Mining Node ausgeführt wird um das Ergebnis zu bestimmen, sieht das Qubic-Protokoll eine Aufgabenteilung vor. Das bedeutet, dass sich Oracle Machines in Gruppen zusammen finden, in denen nur über die gleichen Qubics abgestimmt wird. Eine solche Gruppe von Oracle Machines nennt sich Assembly.

Die Abstimmung wird mit einer 2/3 Mehrheit gewonnen. Wenn solche Abstimmungen zum Zwecke des Transaktions-Managements gemacht werden, nennt man das Vorgehen in der Informatik Quorum.

Geld regiert die Welt

Warum sollte jemand seinen Computer breitstellen um Qubics rechnen zu lassen? Jetzt stelle ich schon Full Nodes gratis zur Verfügung und jetzt wird auch noch erwartet, dass ich Oracle Machines bereitstelle? Nein! Denn mit dem Qubit-Protokoll kommen auch Fees ins Spiel.

Man kann ja lange streiten ob Geld nicht das Schlechte im Menschen (und Affen) hervorbringt, aber es ist auf jedenfall ein quantifizierbarer Anreiz Hardware zur Verfügung zu stellen.

Denn die Kalkulation der Qubits wird nur gegen Devisen ausgeführt.

Gangs of IOTA

Devisen wollen verteilt werden und da bedarf es Mechanismen die verhindern, dass die Großen die Kleinen fressen und die Devisen völlig an sich reißen. Im Falle von Qubit gibt es zwei interessante Mechanismen:

  • Assemblies verlangen einen Leistungsbeweis. Dieser Proof of Resources zeigt, wieviel Anteil die Oracle Machine an den Fees nach Berechnung und Abstimmung eines Qubic-Ergebnisses bekommen soll.
  • Sind die anderen Oracle Machines in einem Assembly überproportional stark, muss sich die schwachbrüstige Oracle Machine ein anderes Assembly suchen oder ein neues bilden.

Abra – Die Programmiersprache der Smart Contracts

Über die angekündigte Programmiersprache Abra sind leider nicht viele Details bekannt. Was bekannt ist, lässt allerdings hoffen:

Das klingt abstrakt und unbedeutend, kann aber massive Auswirkungen darauf haben wie einfach es ist, diese Programme zu testen und im mathematischen Sinne auf Korrektheit zu überprüfen. Ein großes Thema, das auch bei Ethereum von Yoichi Hirai bearbeitet wird. In einem Wired-Interview deutet David Sønstebø an, sich diesem Problem bewussst zu sein:

Abra ist eine vollständig funktionale Programmiersprache. Abra bringt das gute aus beiden Welten zusammen. Es ist so nutzerfreundlich und sicher wie Java Script – und gleichzeitig so flexibel wie C++. Solidity hat im Laufe der letzten Jahre enorme Probleme zu Tage befördert. So sorgen Bugs zum Beispiel immer wieder dafür, dass Smart Contracts ihre Aufträge nicht ausführen. Dieser Problematik soll mit Abra begegnet werden.
— David Sønstebø

Die Doku deutet an, dass die virtuelle Maschine der Sprache an Mechanismen aus dem Hardware-Design angelehnt ist und mehrere Pipeline-Schritte definiert. In der Informatik versteht man unter Pipeline eine Kette von Datenverarbeitungsschritten. Der erste Schritt füttert mit seinem Ergebnis den zweiten, der zweite den dritten usw.

Aktuell schwirren noch deutlich mehr Gerüchte, Wünsche und Vorstellungen betreffend der Sprache durch die Luft, dass keine realistische Einschätzung der Möglichkeiten, Vorteile und Probleme möglich ist. Für mich jedoch eines der spannensten Themen, weshalb ich an der Frage dran bleiben werde.

Projektstatus: Website ist fertig

Aktuell – also Anfang Juni 2018 – gibt es außer der Website und den kommunizierten Punkten noch keine weiteren, öffentlich verfügbaren Ergebnisse. Um das FAQ zu zitieren:

The first part of the Qubic Roadmap has in fact already been developed, and is well on its way to production: IOTA and the Tangle. The remaining pieces are in varying stages of research and experimentation. With a complete set of experimental versions of the various components, it will be possible to begin producing non-trivial Qubic proof of concepts and demonstrations, which will ultimately be the proving grounds for Qubic in the real world.

— Qubic FAQ

Angeblich haben sie schon die ersten Teile von Qubic fertig entwickelt, sie aber noch nicht veröffentlicht, da noch andere Teile fehlen.

Mir stellen sich auch weitere Fragen:

  • Wie kann ich Qubics ändern oder löschen?
  • Wie genau sieht Abra aus? Wie die Entwicklungsumgebung?
  • Wie wird die Oracle Machine Ökonomie funktionieren?
    • Wie berechnet sich die Fee? Anhand des Marktes so wie bei Bitcoin?
    • Kann ich als Qubic Betreiber problemlos mein eigenes Assembly aufstellen, in dem dann meine eigenen Oracle Machines ausschließlich meine Qubic-Smart Contracts berechnen?

Conclusio

Die Ideen klingen sehr spannend!

Allerdings bin ich etwas enttäuscht über den aktuellen Projektstatus. Im Mai groß Qubic anzukündigen und Neuigkeiten im Juni zu versprechen um dann im Juni weiterhin nur Überblicksbeschreibungen zu veröffentlichen ist enttäuschend. Ich war tatsächlich der Meinung, dass es Greifbares in der Form von fertiger Software geben wird. Ich habe auch die hoch spekulative Vermutung, dass der ICO von Fantom damit zu tun haben könnte, da hier auf Basis eines DAG eine Smart Contract Plattform gestartet werden soll die Smart Contracts bereits inkludiert hat (Siehe auch das Fantom-Whitepaper).

Wie gesagt handelt es sich dabei nur um eine unbestätigte Vermutung meinerseits. Es wird sich zeigen wie es mit Qubic weitergeht. Ich bin jedenfalls weiterhin sehr gespannt.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

threeundsixty − twoundsixty =