Einstieg in die Blockchain Technologie

am 28 Okt 2017 in Aktuelles, Tech von
Bisher unkommentiert »

Spätestens seit ihrem Höhenflug im Sommer 2017 ist die Kryptowährung „Bitcoin“ wieder in aller Munde. Im Windschatten des Hypes gewinnt jedoch auch ein anderer Begriff an Bekanntheit: die „Blockchain“. Was die Blockchain ist und welche Probleme sie löst, das soll dieser Beitrag möglichst anschaulich erläutern (das TL;DR findet ihr am Ende des Beitrags).
Bevor wir uns der Blockchain-Technologie selbst widmen, müssen wir zunächst verstehen, welche Probleme sie lösen soll. Ein einfach zu verstehendes Beispiel dafür sind Systeme, die Besitzrechte abbilden (z.B. Hausbesitzer). Systeme, die Besitzrechte speichern, können als sog. Transitionssystem modelliert werden. Ein Transitionssystem besteht aus Zuständen und Übergängen zwischen diesen Zuständen, den Transitionen.

 

Transition

 

System Grundbesitz

Betrachten wir das System „Grundbesitz” genauer. Ein Zustand umfasst hier die Information darüber, welche Grundstücke im System (bspw. einem Neubaugebiet) existieren und wem sie gehören. Wechselt ein Grundstück den Eigentümer (in der Regel durch Verkauf), ist das eine Transition, die wiederum einem neuen Zustand zur Folge hat.

Damit dieses System funktioniert, müssen sich jedoch vor jeder Transition alle Parteien über den aktuellen Zustand einig sein. Sprich: Bevor ein Grundstück verkauft wird, müssen sich alle einig sein, wem es gerade gehört. Sonst ist es möglich, dasselbe Grundstück mehrfach zu verkaufen – das sog. “Double-Spend-Problem”.

Das “Double-Spend-Problem”

Stellen wir uns folgendes Szenario vor: Mallorys Grundstück mit der Nr. 42 steht zum Verkauf (Zustand A). Alice möchte das Grundstück kaufen und bezahlt Mallory dafür den geforderten Preis (Transition). Damit ist Alice die neue Eigentümerin von Grundstück Nr. 42 (Zustand B). Oder?

 

Transition

 

Bob hat ebenfalls ein Auge auf Grundstück Nr. 42 geworfen. Davon, dass Mallory es gerade an Alice verkauft hat, weiß er jedoch nichts – es gehört seines Wissens immer noch Mallory. Die nutzt dieses Missverständnis aus und verkauft Bob ebenfalls Grundstrück Nr. 42.

 

Transition

 

Die Konflikte, die sich daraus ergeben, sind ersichtlich:

  1. Mallory hat dasselbe Grundstück zweimal verkauft.
  2. Alice und Bob sind sich nicht einig darüber, wem Grundstück Nr. 42 jetzt gehört.

Man könnte auch sagen: Ihre jeweiligen Systemzustände sind nicht kompatibel.

 

Konflikt Systemzustände

 

Dieses System funktioniert also ganz offensichtlich nicht. Solange die Möglichkeit besteht, dasselbe Grundstück mehrmals zu verkaufen, wird sich niemand auf einen Handel einlassen.
Damit unser einfaches Grundbesitz-System funktioniert, müssen nämlich folgende
Voraussetzungen erfüllt sein:

  1. Alle Parteien müssen sich über den aktuellen Systemzustand einig sein
  2. Alle Parteien müssen sich über die Validität einer Transition einig sein

Wir brauchen also jemanden (oder etwas), das dafür sorgt, dass diese Bedingungen gegeben sind.

Zentrale Autoritäten (und warum sie keine gute Lösung sind)

In der Realität kümmert sich darum das Grundbuchamt. Das Grundbuchamt kontrolliert als zentrale Autorität den Zustand des Systems (das Grundbuch) und überprüft jede Transition (Kauf bzw. Verkauf eines Grundstücks) auf seine Validität. Auch in der Finanzwirtschaft gibt es eine zentrale Autorität: Banken kontrollieren Konten und ihre Kontostände (Zustand) sowie die Validität jeder einzelnen Kontobewegung (Transition).

Die Existenz einer zentralen Autorität im System bringt aber neue Probleme mit sich.

So bieten sie durch ihre mächtige Rolle im System grundsätzlich Möglichkeiten für Manipulation und Zensur. Der Online-Bezahldienst PayPal etwa sah sich in der Vergangenheit immer wieder Zensur Vorwürfen ausgesetzt, besonders nach der kontroversen Sperrung des Kontos der Wau-Holland-Stiftung, über die ein Großteil der Spenden an die Enthüllungsplattform WikiLeaks geflossen war. Zentrale Autoritäten machen das System zudem angreifbar, denn sie sind per definitionem ein “Single Point of Failure”. Im Risikomanagement bezeichnet man so den Systembestandteil, dessen Ausfall den Ausfall des ganzen Systems nach sich zieht.

Wir suchen also nach einer Lösung, die

  • Konsens über den aktuellen Systemzustand herstellt,
  • die Validität einer Transition überprüft,
  • eine dezentrale Struktur hat und
  • im Internet funktioniert (duh).

Ein solches System existiert – die Blockchain.

Blockchain – The General Idea

Blockchain wurde 2008 als integraler Bestandteil der Referenzimplementierung von Bitcoin von der Person oder Gruppe hinter dem Pseudonym “Satoshi Nakamoto” entwickelt (dessen geheime Identität einen eigenen Beitrag füllen könnte).

Die Blockchain ist ein öffentliches, dezentrales Register (vgl. Datenbank), in dem sämtliche jemals vorgenommenen Transaktionen protokolliert werden. Öffentlich und dezentral deshalb, weil jeder Netzwerkteilnehmer eine vollständige Kopie der Blockchain besitzt. Wenn eine der Kopien verändert wird, werden diese Änderungen an alle anderen Kopien im Netzwerk weitergegeben. Damit ergibt sich ein dynamisches Protokoll aller Transaktionen, das auf den Computern aller Netzwerkteilnehmer redundant gespeichert wird.

 

dezentrales Blockchain Netzwerk

 

Stellen wir uns erneut vor, Mallory verkauft Alice ihr Grundstück Nr. 42. Der Verkauf ist eine neue Transaktion und Mallorys Rechner teilt sie dem Blockchain-Netzwerk mit. Jeder Rechner, der die neue Transaktion erhält, prüft sie auf Validität und gibt sie dann im Netzwerk weiter. So verbreitet sich die Transaktion im gesamten Netzwerk, bis sie jeden Teilnehmer erreicht hat.

Als Miner bezeichnet man einen Netzwerkteilnehmer, der neue Transaktionen sammelt und sie zu einem Block zusammenfasst. Dabei darf ein Block nur valide Transaktionen enthalten, die früheren Transaktionen nicht widersprechen. Der fertige Block wird erneut dem gesamten Netzwerk mitgeteilt und jeder Teilnehmer prüft, ob der neue Block mit der bisherigen Blockchain zusammenpasst. Wenn der Block als valide anerkannt wird, wird er Bestandteil der kollektiven Blockchain und die Transaktionen darin gelten als bestätigt.

Die Blockchain

 

Sollte Mallory nun versuchen, Grundstück Nr. 42 zweimal zu verkaufen, würde diese Transaktion zwar den anderen Netzwerkteilnehmern mitgeteilt, aber von ihnen als invalide abgelehnt und nicht in einen neuen Block aufgenommen.

Doch was hindert Mallory (oder jeden anderen Netzwerkteilnehmer) daran, selbst als Miner zu fungieren, ihre eigenen (invaliden) Blöcke in Umlauf zu bringen und damit verschiedene, widersprüchliche Versionen der Blockchain zu erzeugen?

Schutz vor Manipulation: der “Proof of Work”

Grundsätzlich kann tatsächlich jeder im Netzwerk als Miner fungieren und neue Blöcke berechnen. Das Protokoll schreibt jedoch vor, dass ein Miner nachweisen muss, dabei ein bestimmtes Maß an Rechenleitung (und damit Zeit) aufgewendet zu haben, damit sein produzierter Block als valide gilt.. Dieses Konzept nennt man “Proof of Work”, zu deutsch etwa “Arbeitsnachweis” und es verhindert, dass ein einzelner Miner in kurzer Zeit viele neue Blöcke erzeugen und an die Blockchain anknüpfen kann.

In der Praxis muss ein Miner ein mathematisches Problem lösen, indem er in unzähligen Versuchen zufällige Zahlen in eine Formel einsetzt, bis er auf ein vorgegebenes Ergebnis kommt. Die Schwierigkeit dieses Problems wird vom System so geregelt, dass im Schnitt alle zehn Minuten ein zufälliger Miner im Netzwerk das korrekte Ergebnis errät und einen neuen Block erzeugt.

Dieses Konzept ist jedoch nicht nur stupide Beschäftigung. Es führt nämlich dazu, dass neue Blöcke viel schneller gemeinsam erzeugt werden können als allein.

Um die Blockchain erfolgreich zu manipulieren, müsste ein Angreifer sehr schnell sehr viele seiner manipulierten Blöcke in die Blockchain integrieren (vereinfacht gesprochen). Die Wahrscheinlichkeit, dass derselbe Miner mehrfach hintereinander als erster die richtige Lösung errät, ist jedoch extrem gering. Um sicher zu sein, jede Aufgabe als schnellster zu lösen, müsste ein Miner mindestens 51% der gesamten Rechenleistung im Netzwerk besitzen. Das ist praktisch unmöglich, denn das Bitcoin-Netzwerk besitzt in Summe mehr Rechenleistung als die 500 schnellsten Supercomputer der Welt zusammen … mal 10.000.

Zusammengefasst ist die Erfolgswahrscheinlichkeit für eine Manipulation der Blockchain durch einen Angreifer so gering, dass sich der Aufwand schlicht nicht lohnt.

Die Blockchain ist also sicher — und sie basiert auf vier Grundprinzipien:

  • Dezentraler Datenspeicher: Jeder Teilnehmer des Blockchain-Netzwerks hat Zugang zur gesamten Datenbank und deren kompletter Historie. Keine singuläre Institution kontrolliert die Daten.
  • Peer-to-Peer Kommunikation: Kommunikation findet zwischen zwei Netzwerkteilnehmern direkt statt, statt über einen zentralen Knotenpunkt. Jeder Teilnehmer speichert jedoch Informationen und leitet sie an alle anderen Teilnehmer weiter.
  • Transparenz durch Pseudonyme: Jede Transaktion und die damit verbundenen Daten sind für alle im Netzwerk sichtbar. Dafür besitzt jeder Teilnehmer eine einzigartige Adresse, die ihn identifiziert. Transaktionen finden zwischen Blockchain-Adressen statt.
  • Irreversibilität der Daten: Sobald eine Transaktion der Blockchain hinzugefügt wird (in die Datenbank aufgenommen wird), kann der Eintrag nicht mehr verändert werden, weil eine Verbindung zu jedem zuvor angelegten Eintrag besteht (daher die Bezeichnung “Kette”).

Der Themenkomplex rund um Blockchain, Smart Contracts, Kryptowährungen usw. ist spannend, hochaktuell und vor allem: umfangreich. Dieser Beitrag möchte eine Einführung sein, die Lust auf mehr macht. Deshalb im Folgenden das obligatorische TL;DR und ein paar weiterführende Links für diejenigen, die bis hierhin gelesen haben.

TL;DR

Blockchain ist die Technologie hinter Bitcoin und Ethereum. In der Blockchain wird eine Transaktionshistorie gespeichert – wie in einer ewigen Logdatei. Jeder im Netzwerk besitzt eine Kopie der Blockchain. Neue Transaktionen werden von allen geprüft und der Blockchain in Blöcken hinzugefügt – das macht sie sicher vor Manipulation und daher stammt auch ihr Name.

Weiterführende Links:

XML Grundlagen

am 30 Sep 2016 in Aktuelles von
Bisher unkommentiert »

XML ist eine Metasprache für die Strukturierung von Informationen. Seit ihrer Veröffentlichung als W3C-Empfehlung im Jahr 1998 hat sich XML sowohl für die Speicherung als auch für den Austausch von Daten als Standard etabliert.

Entstehung

XML führt die Ideen der Standard Generalized Markup Language (SGML) fort. SGML wurde bereits 1986 als Metasprache zur Dokumentenbeschreibung [ISO8879] standardisiert. Aufgrund der hohen Komplexität konnte sich SGML jedoch nur begrenzt durchsetzen – abgesehen von HTML, der bekanntesten (und einfachsten) SGML-Anwendung. Zur Verringerung dieser Komplexität und zur Verkürzung der Definition des Standards wurde XML geschaffen. Dabei wurden die wesentlichen Ideen von SGML aufgegriffen und erschwerende Eigenschaften abgeschafft. Und während der offizielle SGML-Standard mehr als 500 Seiten umfasst, kommt die Definition des XML-Standards mit weniger als 30 Seiten aus.

XML-Anwendungen

Da XML (konträr zu seinem Cousin HTML) selbst keine Elemente vordefiniert, haben Entwickler die Möglichkeit, durch die Deklaration eigener Tags ganze Datenformate für spezifische Zwecke zu erzeugen. Auf diese Weise definierte Sprachen werden “XML-Anwendungen” genannt. Beispiele solcher “XML-Anwendungen”, die sich seit ihrer Schöpfung zu weit verbreiteten Standards entwickelt haben, sind SVG (zur Beschreibung zweidimensionaler Vektorgrafiken), MathML (zur Abbildung mathematischer Formelsprache) oder DocBook (zum Markup technischer Dokumentationen).

Gültigkeit

Diese Flexibilität macht XML zu einem integralen Bestandteil der modernen Medienlandschaft. Doch die Freiheiten in der Definition neuer Markup-Sprachen sind keineswegs unbegrenzt. Besonders dann, wenn XML zum Datenaustausch verwendet werden soll, ist eine automatisierte Möglichkeit der Fehlerüberprüfung unabdingbar. Um die automatische Verarbeitung von XML-Anwendungen durch sogenannte XML-Parser zu ermöglichen, gibt es deshalb Kritierien, die in der Empfehlung des W3C festgeschrieben sind und die ein XML-Dokument erfüllen muss, um dieser Prüfung standzuhalten. Fachlich korrekt werden sie nach Bestehen dieser Prüfung als gültig bezeichnet.

Wohlgeformtheit

Zunächst muss ein XML-Dokument die Regeln der Wohlgeformtheit befolgen. Informationen können zwar mit selbst definierten Tags ausgezeichnet werden, dabei müssen jedoch gewisse Syntaxregeln befolgt werden, die das W3C festgeschrieben hat. Erfüllt ein Dokument alle diese Regeln, gilt es als well formed, zu deutsch wohlgeformt.

Validierbarkeit

Zusätzlich zu seiner Wohlgeformtheit muss ein gültiges XML-Dokument eine Grammatik referenzieren und die durch die Grammatik definierte Struktur einhalten. Diese sogenannte Validität bezeichnet die inhaltliche Korrektheit des Dokuments, und setzt eine korrekte Syntax schon voraus. Solche inhaltlichen Regeln werden in XML Schemas festgehalten und obliegen gänzlich dem Entwickler, der sie entwirft.

tl;dr:

XML ist eine Metasprache für die Strukturierung von Informationen. Mithilfe von XML können eigene Datenformate geschaffen werden. Gültige XML-Dokumente sind wohlgeformt und gegen ein Schema validierbar.

Grundlagen des Cross Media Publishing

am 30 Sep 2016 in Aktuelles von
Bisher unkommentiert »

Die Digitalisierung beschäftigt die Verlagswelt wie kaum eine andere Branche. Neben der immer noch nicht abschließend beantworteten Frage nach der Monetarisierung von Online-Journalismus machen mittlerweile Plattformen wie Facebooks Instant Articles oder Snapchats Discover Tab und Dienste wie Google News oder Apples News App den Zeitungsverlagen ihr digitales Geschäftsmodell streitig. Doch deren besonders in Deutschland heftiger Widerstand gegen die Vorstöße aus dem Silicon Valley (siehe die ewige Leistungsschutzrecht-Debatte) weicht mittlerweile an vielen Stellen einem neugierigen Experimentieren mit den neuen Publikationsformen. Stefan Plöchinger, Digital-Chefredakteur der Süddeutschen Zeitung, sieht neue, digitale Plattformen gar als größte Chance der Verlage, neue Absatzwege zu erschließen.
Grundlage für all diese Überlegungen ist ein Begriff, der es von seinen Ursprüngen im Agenturumfeld längst bis in die Digitalstrategie-Konferenzen der größten Medienhäuser geschafft hat: “Cross Media”, in diesem Fall genauer gesagt “Cross Media Publishing”.

Medienneutralität

Für Verlage ist es von höchstem wirtschaftlichen Interesse, ihre redaktionellen Inhalte, deren Erstellung in der Regel ein aufwändiger und teurer Prozess ist, möglichst vielen Lesern zur Verfügung zu stellen, um damit möglichst effizient viele Absatzkanäle parallel zu bedienen. Voraussetzung dafür ist eine Teilmenge des Cross Media Publishing, das so genannte Single Source Publishing. Wie der Name bereits vermuten lässt, bezeichnet es die Mehrfachverwertung von Daten aus einer einzelnen Quelle in unterschiedlichen Trägermedien. Dabei wird der zugrundeliegende Inhalt nur ein einziges Mal spezifiziert (Single Source …) und medienneutral vorgehalten, um später möglichst automatisiert für ein Zielmedium aufbereitet und veröffentlicht (… Publishing) zu werden.
Um Daten medienneutral vorhalten zu können, müssen sie jedoch in eine “Sprache” übersetzt werden, die sich möglichst elegant in alle möglichen Publikationsformen übersetzen lässt. Verlage nutzen dazu in der Regel die Extensible Markup Language XML, deren Grundlagen hier behandelt werden.

Kontextunabhängigkeit

Die Speicherung von Inhalten in medienneutralen Formaten wie XML ist ein wichtiger Grundstein für Cross Media Publishing; um möglichst effektiv individuelle Publikationsangebote zu schaffen, muss aber auch das gesamte Content Management für einen crossmedialen Workflow angepasst sein. Inhalte müssen in wiederverwendbare Bausteine zerlegt werden, aus denen sich nach Bedarf passende Dokumente zusammenstellen lassen. Ein solcher Baustein ist ein in sich geschlossener, möglichst kontextunabhängiger Inhaltsblock. Diese Strukturierung macht Wiederverwendung erst möglich, vorausgesetzt die Baustein-Einteilung erfolgt einer vorgegebenen, klaren Systematik. Anschließend werden aus vielen Bausteinen individuelle Inhaltsgebilde ganz nach Bedarf zusammengestellt und produziert.

Fazit

Das Zusammenspiel dieser Ansätze macht es Verlagen nun möglich, flexibel auf neue Publikationsformen, Trägermedien oder Trends zu reagieren. So können mehrere Absatzkanäle bedient werden, während gleichzeitig Kosten und Erstellungszeiten reduziert, der Pflegeaufwand und Redundanzen minimiert sowie Konsistenz und Qualität gesteigert werden können.

tl;dr:

Cross Media Publishing bezeichnet die Mehrfachverwendung von Daten in verschiedenen Publikationsformen. Schlagwörter sind Medienneutralität und Kontextunabhängigkeit in der Datenhaltung, das passende Werkzeug dazu ist XML. Mehr zu XML findet ihr hier.