Bachelorarbeit FAKULT AT INFORMATIK - Jan Alexander Welling Die Umsetzbarkeit von Tokensales in der Blockchain - OPUS 4

Die Seite wird erstellt Marion Huber
 
WEITER LESEN
Bachelorarbeit FAKULT AT INFORMATIK - Jan Alexander Welling Die Umsetzbarkeit von Tokensales in der Blockchain - OPUS 4
FAKULTÄT INFORMATIK

                Bachelorarbeit

Die Umsetzbarkeit von Tokensales in der Blockchain

               Jan Alexander Welling

             Betreuer: Prof. Dr.-Ing. Johann Uhrmann

                            In Kooperation mit
                            xpecto talonec GmbH
Bachelorarbeit FAKULT AT INFORMATIK - Jan Alexander Welling Die Umsetzbarkeit von Tokensales in der Blockchain - OPUS 4
ERKLÄRUNG ZUR BACHELORARBEIT
                                  (gemäß § 11, Abs. (4) 3 APO)

                                   Welling, Jan Alexander

                       Hochschule Landshut
                        Fakultät Informatik

 Hiermit erkläre ich, dass ich die Arbeit selbständig verfasst, noch
nicht anderweitig für Prüfungszwecke vorgelegt, keine anderen als
die angegebenen Quellen oder Hilfsmittel benützt, sowie wörtliche
      und sinngemäße Zitate als solche gekennzeichnet habe.

      ....................                      ....................................................
       (Datum)                                (Unterschrift des Studierenden)
Bachelorarbeit FAKULT AT INFORMATIK - Jan Alexander Welling Die Umsetzbarkeit von Tokensales in der Blockchain - OPUS 4
Bachelorarbeit FAKULT AT INFORMATIK - Jan Alexander Welling Die Umsetzbarkeit von Tokensales in der Blockchain - OPUS 4
Zusammenfassung/Abstract

Mit der Erfindung der Blockchain eröffnete sich eine neue Sparte in der IT-Welt. Ihre
stetige Weiterentwicklung sorgt für immer mehr Anwendungsfälle. So bot sich auch für
die xpecto/talonec GmbH der Einstieg in die Technologie. Mit ihrem Anwendungsfall, der
Realisierung des Tokensales in der Blockchain, wird sich eine Optimierung des Online-
Zeichnungsprozesses erhofft, indem das traditionelle Bankdepot durch Smart Contracts in
der Blockchain ersetzt wird. Damit wurde sich das Ziel gesetzt die Gebühren und den Zeit-
aufwand für Emittenten und Anleger zu verringern, während sich ihre Sicherheit verstärkt.

Um dieses Ziel bestmöglich erreichen zu können, wurden Blockchain-Plattformen nach den
gewichteten Kriterien Smart Contracts, Öffentlichkeit, Gebühren, Blockzeit und Knotenzahl
bewertet. Dadurch ergab sich, dass die Ethereum Blockchain nach dem Bewertungsmaßstab
der xpecto/talonec am besten für die Umsetzung des Tokensales in der Blockchain eignet.

Nach der Festlegung auf die Ethereum Blockchain wurde für Vermittler und Anleger je ein
Konzept erarbeitet.
Im Konzept für den Anleger wurde sich damit auseinandergesetzt wie der Anleger mit und
ohne eines bereits vorhandenen Ethereum-Wallet Sachwertanlagen erwerben und anschlie-
ßend handeln kann. Des Weiteren wird dem Anleger angeboten, erzeugte Zugangsdaten
bei der xpecto/talonec GmbH sicher aufzubewahren. Beim Konzept des Vermittlers ging es
darum, wie er seine Produkte in Form eines Smart Contracts in der Ethereum Blockchain
veröffentlichen und auch im Nachhinein noch verwalten kann. Im letzten letzten Schritt
wurden die erarbeiteten Konzepte in Form eines Smart Contracts umgesetzt. Dieser wurde
in der Ethereum eigenen Programmiersprache Solidity geschrieben.

Der Tokensale in der Blockchain wird bereits von einigen Kunden der xpecto/talonec GmbH
erwartet. Produkte in Form von Smart Contracts können bereits in Ethereum platziert
werden. Auch der Kauf und Handel dieser Tokens ist möglich. Noch im März 2020 soll
der Tokensale in der Blockchain in Betrieb gehen. Dann soll ein Produkt, welches über den
Tokensale in der Blockchain vertrieben werden soll, von der Bundesanstalt für Finanzdienst-
leistungsaufsicht fertig überprüft worden sein. Mit der Freigabe dieses Produktes wird die
letzte Hürde für den Tokensale in der Blockchain genommen.
Bachelorarbeit FAKULT AT INFORMATIK - Jan Alexander Welling Die Umsetzbarkeit von Tokensales in der Blockchain - OPUS 4
Inhaltsverzeichnis
1 Begriffserklärung                                                                                                                         1
  1.1 xpectoOnline . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   1
  1.2 Die Blockchain . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   2
  1.3 CAP-Theorem . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
      1.3.1 Konsistenz . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
      1.3.2 Verfügbarkeit . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
      1.3.3 Partitionstoleranz       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
  1.4 Smart Contracts . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
  1.5 Block-Zeit . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5
  1.6 Token . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5

2 Einführung                                                                                                                                6
  2.1 Die Firma xpecto talonec GmbH . . . . . . . . . .                                          .   .   .   .   .   .   .   .   .   .   .   6
  2.2 Ziel der Bachelorarbeit . . . . . . . . . . . . . . . .                                    .   .   .   .   .   .   .   .   .   .   .   6
  2.3 Bisheriges Vorgehen der Online-Fondzeichnung .                                             .   .   .   .   .   .   .   .   .   .   .   7
  2.4 Erwartungen an den Tokensale in der Blockchain                                             .   .   .   .   .   .   .   .   .   .   .   8

3 Auswahl der geeigneten Blockchain Plattform                                                                                                 9
  3.1 Vorgehen . . . . . . . . . . . . . . . . . . . . .                             .   .   .   .   .   .   .   .   .   .   .   .   .   .    9
  3.2 Vorbemerkung . . . . . . . . . . . . . . . . . .                               .   .   .   .   .   .   .   .   .   .   .   .   .   .    9
  3.3 Anforderungen . . . . . . . . . . . . . . . . .                                .   .   .   .   .   .   .   .   .   .   .   .   .   .   10
      3.3.1 Smart Contract Plattform (Must-have)                                     .   .   .   .   .   .   .   .   .   .   .   .   .   .   10
      3.3.2 Öffentlichkeit . . . . . . . . . . . . . .                              .   .   .   .   .   .   .   .   .   .   .   .   .   .   10
      3.3.3 Gebühren . . . . . . . . . . . . . . . .                                .   .   .   .   .   .   .   .   .   .   .   .   .   .   11
      3.3.4 Blockzeit . . . . . . . . . . . . . . . . .                              .   .   .   .   .   .   .   .   .   .   .   .   .   .   13
      3.3.5 Knotenanzahl . . . . . . . . . . . . . .                                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   14
  3.4 Bewertung . . . . . . . . . . . . . . . . . . . .                              .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
      3.4.1 Kandidaten . . . . . . . . . . . . . . .                                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
      3.4.2 Vorauswahl . . . . . . . . . . . . . . .                                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   17
      3.4.3 Analyse . . . . . . . . . . . . . . . . .                                .   .   .   .   .   .   .   .   .   .   .   .   .   .   18
      3.4.4 Auswertung . . . . . . . . . . . . . . .                                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   20
  3.5 Fazit . . . . . . . . . . . . . . . . . . . . . . . .                          .   .   .   .   .   .   .   .   .   .   .   .   .   .   21

4 Konzept                                                                                                                                    23
  4.1 Tokenisierung . . . . . . . . . . .                .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   23
  4.2 Prozessteilnehmer . . . . . . . . .                .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   24
  4.3 Zeichnungsablauf mit Ethereum                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
  4.4 Erstellung eines neuen Produktes                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
Bachelorarbeit FAKULT AT INFORMATIK - Jan Alexander Welling Die Umsetzbarkeit von Tokensales in der Blockchain - OPUS 4
5 Implementierung Smart Contract                                                                   30
  5.1 Überprüfungen . . . . . . . . . . . . . . . . . . . . . . . . .    .   .   .   .   .   .   30
       5.1.1 Ist der Funktionsaufrufer Issuer oder Emittent? . .           .   .   .   .   .   .   30
       5.1.2 Zeitstempel Überprüfung . . . . . . . . . . . . . . .       .   .   .   .   .   .   30
       5.1.3 Authentifizierung . . . . . . . . . . . . . . . . . . . .     .   .   .   .   .   .   31
       5.1.4 Pausierung des Smart Contracts . . . . . . . . . . .          .   .   .   .   .   .   31
       5.1.5 Bestandsüberprüfung bei Token- Übertragungen .             .   .   .   .   .   .   31
       5.1.6 Gesamttokenbestand bei Token- Erstübertragungen              .   .   .   .   .   .   31
  5.2 Konstruktor . . . . . . . . . . . . . . . . . . . . . . . . . . .    .   .   .   .   .   .   32
  5.3 Tokentransfer . . . . . . . . . . . . . . . . . . . . . . . . . .    .   .   .   .   .   .   33
  5.4 Token-Erstübertragung zum Kunden . . . . . . . . . . . . .          .   .   .   .   .   .   34
  5.5 Whitelisting . . . . . . . . . . . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   35
  5.6 Kontostandabfrage . . . . . . . . . . . . . . . . . . . . . . .      .   .   .   .   .   .   36
  5.7 Tokenerzeugung . . . . . . . . . . . . . . . . . . . . . . . . .     .   .   .   .   .   .   37
  5.8 Tokenauflösung . . . . . . . . . . . . . . . . . . . . . . . . .    .   .   .   .   .   .   38
  5.9 Zerstörung des Smart Contracts . . . . . . . . . . . . . . . .      .   .   .   .   .   .   39
  5.10 Austauschen des Emittenten- und des Registerwallets . . .           .   .   .   .   .   .   40
  5.11 Probleme und Herausforderungen . . . . . . . . . . . . . .          .   .   .   .   .   .   41
       5.11.1 Mitgegebene Zeitstempel . . . . . . . . . . . . . . .        .   .   .   .   .   .   41
       5.11.2 Synchronisation der Historie mit den Kontoständen           .   .   .   .   .   .   42

6 Verwendung und Ausblick                                                            43
  6.1 Verwendung des Tokensales in der Blockchain . . . . . . . . . . . . . 43
  6.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Abbildungsverzeichnis                                                                              46

Tabellenverzeichnis                                                                                47

Glossar                                                                                            48

Akronyme                                                                                           50
Bachelorarbeit FAKULT AT INFORMATIK - Jan Alexander Welling Die Umsetzbarkeit von Tokensales in der Blockchain - OPUS 4
1 Begriffserklärung
1.1 xpectoOnline
Wie der Name schon vermuten lässt, bietet xpecto-Online die Web Lösung analog zu
xpectos Desktop-Anwendungen an. Sie lässt sich nahtlos in die bestehenden Web-
sites und/oder Anleger- bzw. Vermittlerportale der xpecto/talonec Kunden einbin-
den. Eine große Besonderheit bieten die dynamischen Anpassungsmöglichkeiten
der Anforderungen des einzelnen Kunden. Grundlegend kann man xpecto-Online
in drei Hauptbestandteile gliedern.

Online-Zeichnung
bietet Emittenten ein papierloses Verfahren, um beliebige Sachwertanlagen im In-
ternet zu zeichnen. Dabei wird eine vollständige Integration der jeweiligen aktuel-
len rechtlichen Anforderungen zur Verfügung gestellt. Je nach Emittent können die
Prozesse hinter der Online-Zeichnung nach den Wünschen des Vertriebspartners
angepasst werden.

Webportal für Vermittler
ermöglicht es den Kunden von xpecto, einen schnellen und umfassenden Überblick
ihrer Vorgänge und Verwaltung zu erlangen. Dazu gehört beispielsweise die Über-
sicht der Kunden des Vertriebspartners, ihrer Verträge und ihrer letzten Ereignisse.

Webportal für Anleger
stellt dem Kunden eine Übersichtsplattform bereit, welche Ereignisse, Verträge und
zugehörige Dokumente zur Verfügung stellt.

                                         1
1.2 Die Blockchain

                           Abb. 1.1: Blockchain Prinzip

Die Blockchain ist eine Technologie, mit der sich Daten verteilt speichern lassen.
Dabei verwendet sie eine Reihe bewährter Verfahren, welche in den folgenden
Punkten genauer erörtert werden. All diese Punkte verfolgen das Ziel, die gespei-
cherten Daten vor Manipulationen zu schützen, ihre Integrität zu gewährleisten
und die Ereignisse in der Blockchain für all ihre Teilnehmer transparent zu halten.
Die Blockchain ist ein verteiltes System, welches aus einzelnen Knotenpunkten
besteht. Sie werden auch Nodes oder Knoten genannt und bilden zusammen die
Infrastruktur einer Blockchain. Jeder Knoten enthält eine Kopie der Blockchain,
welche auch Distributed Ledger genannt wird. Das Speichern in der Blockchain
funktioniert nach folgendem Prinzip:
Daten, die in die Blockchain gespeichert werden sollen, werden Transaktionen ge-
nannt. Diese werden zunächst in einem Pool aus Transaktionen gesammelt, bis
sie von einem Miner ausgewählt werden und zu einem Block zusammengefasst
werden. Ein Block besitzt eine gewisse Kapazität oder Blockgröße, welche das
Datenlimit angibt. Die Kapazität eines Blocks ist innerhalb einer Blockchain festge-
legt, kann aber zwischen unterschiedlichen Blockchains variieren. Überschreitet ein
Block sein eigenes Limit, wird er vom Netzwerk abgewiesen. Das ist eine Sicher-
heitsmaßname, welche Distributed Denial-of-Service (DDoS) Attacken verhindert.
Ob ein Miner eine Transaktion zu seinem Block hinzufügt, ist von der Transakti-
on abhängig. Mehrere Miner können ein und die selbe Transaktion gleichzeitig in
ihren Block aufnehmen. Es gibt verschiedene Konzepte, nach denen ein Knoten
autorisiert ist, Blöcke in die Blockchain zu speichern. Eines der meist verbreiteten
Konzepte ist Proof-of-Work. Dabei muss ein Knoten als Erster einen gültigen Hash-
wert finden, um seinen Block der Blockchain mitzuteilen. Ein weiteres Konzept
nennt sich Proof-of-Stake, welches im Abschnitt 2.4 noch genauer erörtert wird.
Auf weitere Konzepte wird im Umfang der Bachelorarbeit aber nicht eingegangen.

                                         2
Mit diesem Hashwert soll der Block, sobald er in der Blockchain platziert wurde,
eindeutig identifizierbar sein und gleichzeitig die in ihm gespeicherten Daten wi-
derspiegeln. Das Generieren des Hashes ist ein aufwändiges Verfahren, denn nicht
jeder Hashwert wird von der Blockchain akzeptiert. Der Hashwert muss einem von
der Blockchain vorgewiesenen Muster entsprechen. In der Bitcoin Blockchain muss
er beispielsweise mit einer gewissen Anzahl führender Nullen beginnen. Da eine
Hash-Funktion eine gegebene Datenmenge immer auf dieselbe Zahlenfolge abbil-
det, muss der Miner die Datenmenge folglich abändern können. Um den Bezug zu
den eigenen Daten dabei nicht zu verlieren, wird die Datenmenge in 3 Argumente
aufgeteilt, von denen sich nur eine frei ändern lässt, um dem vorgegebenen Hash-
muster gerecht zu werden.

Das frei wählbare Argument wird Nonce genannt. Der Nonce lässt sich wie eine
Stellschraube für den Hashwert betrachten. Er wird solange inkrementiert, bis er
mit den beiden anderen Argumenten einen Hashwert ergibt, der dem Anforde-
rungsmuster der Blockchain entspricht.

Das Argument, welches die eigenen gespeicherten Daten widerspiegelt ist ebenfalls
ein Hashwert und resultiert aus allen Transaktion die sich im Block angesammelt
haben. Sobald sich also die Daten einer Transaktion, ändern würden, ändert sich
gleichzeitig auch ihr Hashwert und somit die gesamte Eingabemenge der Hash-
Funktion für den Block. Das letzte Argument stellt den Hashwert jenes Blocks dar,
welcher zuvor in der Blockchain gespeichert wurde. Also der Hashwert des Block-
vorgängers. Damit lässt sich auch der Begriff Blockchain erklären. Da der Hashwert
eines Blocks unter anderem auf dem Hashwert seines Vorgängers beruht, bildet sich
eine Kette aus Blöcken. Sollten sich die Daten eines Vorgängerblocks verändern,
so ändert sich auch der Hashwert des Vorgängers, welcher wiederum Argument
des Nachfolgeblocks ist. Dies zieht sich wie ein Dominoeffekt durch die ganze
Blockkette. Die geänderten Hashwerte folgen nun mit höchster Wahrscheinlichkeit
nicht mehr dem geforderten Muster der Blockchain, was die mit ihnen assoziierten
Blöcke ungültig werden lässt.

Der erste Miner, der einen gültigen Hashwert gefunden hat, teilt dies den Knoten-
punkten der Blockchain mit. Sie verifizieren den generierten Hashwert des Miners
und bestätigen ihn bei Erfolg unabhängig von einander. Der Miner hat somit die
Erlaubnis, seinen Block den Nodes der Blockchain mitzuteilen, denn jeder Node
besitzt eine Abbildung der Blöcke, die bereits in die Blockchain geschrieben wur-
den. Das bedeutet, dass alle Daten dezentral und redundant gespeichert sind. Dies
ist ein weiterer Sicherheitsmechanismus der Blockchain. Besitzt ein Node eine ma-
nipulierte Version der Blockchain, so würde dieser sofort ausgebessert und von
den umliegenden Nodes berichtigt werden, indem die manipulierte Version mit
der richtigen überspielt wird. Richtig ist in der Blockchain, was die Mehrheit vor-
gibt. Es ist daher weiterhin möglich, die Blockchain zu manipulieren, allerdings
muss dafür über die Hälfte aller Nodes infiltriert werden, um ihre Kopien mit einer
neuen Wahrheit oder richtigen Version zu ersetzten. Dieses Vorgehen ist unter dem

                                          3
Namen 51% Angriff“bekannt (vgl. Lin & Liao 2017, S. 656).
     ”

1.3 CAP-Theorem
Das CAP-Theorem weißt einem verteilten System drei Eigenschaften vor. Konsis-
tenz, Verfügbarkeit und Ausfalltoleranz. Ein verteiltes System kann zwei dieser
Eigenschaften gleichzeitig erfüllen, jedoch ist es nicht möglich, alle drei Eigen-
schaften zu bedienen. Das CAP-Theorem ist für diese Arbeit interessant, da die
Blockchain-Technologie ebenfalls ein Verteiltes System ist. Es wird Teil der Ar-
beit sein herauszufinden, wie sich die Blockchain in Bezug auf das CAP-Theorem
verhält und ob dieses Verhalten Einfluss auf die Lösungsfindung hat.

1.3.1 Konsistenz
Konsistenz bedeutet, dass zu jeder Anfrage die richtige Antwort gesendet wird.
Was im einzelnen Fall richtig ist, hängt von der gewünschten Service Spezifikation
ab. Möglicherweise kann es zu einer Anfrage sogar mehrere richtige Antworten
geben. Die Bedeutung der Konsistenz hängt hier vom jeweiligen Service ab. (vgl.
Gilbert & Lynch 2012, S. 2)

1.3.2 Verfügbarkeit
Verfügbarkeit bedeutet, dass für jede Anfrage eine Antwort garantiert ist. Die Ge-
schwindigkeit der Antwort spielt dabei keine Rolle, obwohl schnelle Antworten
natürlich besser sind als langsame. In vielen realen Systemen sind zu langsame
Antworten genau so schlecht wie gar keine Antwort. (vgl. Gilbert & Lynch 2012,
S. 2)

1.3.3 Partitionstoleranz
Partitionstoleranz besagt, dass das System auch dann noch weiter arbeiten kann,
wenn Teile des Netzes nicht mehr miteinander kommunizieren können. Das kann
durch den Verlust von Nachrichten, den Ausfall einzelner Netzknoten oder den
Abbruch von Verbindungen im Netz auftreten (vgl. Simon 2000, S. 4).

1.4 Smart Contracts
Smart Contracts sind Verträge, welche durch einen Algorithmus definiert sind.
Das hat den Vorteil, [...] dass Leistung und Gegenleistung durch die Programm-
                     ”
logik vorgegeben [...]“(Kaulartz & Heckmann 2016, S. 618) wird. Dadurch wird
die Interaktion mit dem Menschen gering gehalten, welche als unzuverlässig oder
riskant angesehen wird. Auch müssen die (menschlichen) Vertragsparteien einan-
der kein Vertrauen schenken - sie vertrauen lediglich darauf, dass die Maschine

                                         4
funktioniert (Kaulartz & Heckmann 2016, S. 618). Dieses Prinzip findet so auch bei
einigen Blockchain Implementierungen Anwendung. So ist es auf der Ethereum
Blockchain beispielsweise möglich, in der Ethereum eigenen Sprache Solidity“,
                                                                          ”
Smart Contracts zu programmieren, in Bytecode zu kompilieren und anschließend
in der Etherium Virtual Machine (EVM) auszuführen. Der kompilierte Bytecode
wird dabei im Ledger von Ethereum gespeichert (vgl. Kaulartz & Heckmann 2016,
S. 91). Smart Contracts reagieren auf vordefinierte Ereignisse mit einer vordefinier-
ten Aktion. Ein Ereignis oder eine Aktion kann Beispielsweise eine Transaktion in
der Blockchain sein.

1.5 Block-Zeit
Block-Zeit nennt man die Zeit, welche die Blockchain benötigt, um einen gültigen
Hashwert für einen Block zu finden. In der Blockchain gibt es einen Richtwert,
wie viele Blöcke innerhalb einer gewissen Zeit geschrieben werden sollten. Dieser
Richtwert wird geschätzte Block-Zeit genannt. Nun wird gemessen, wie viel Zeit
vergeht, bis die gültigen Hashes für eine gewisse Anzahl von Blöcken gefunden
wurden. Hier ist die Rede von der durchschnittlichen Block-Zeit. Es wird versucht,
die Differenz zwischen geschätzter und durchschnittlicher Block-Zeit so gering wie
möglich zu halten. Dies gelingt, indem die Schwierigkeit, einen gültigen Hash zu
finden, angepasst wird. Je schwerer es ist, einen Hash zu finden, umso weniger
Blöcke können in einem Zeitfenster geschrieben werden und umgekehrt.

1.6 Token
Der Begriff Token wird im Kontext der Bachelorarbeit als Wertmarke verstanden.
Da Sachwertanlagen aufteilbar sein müssen, um sie unter verschiedenen Parteien
aufteilen zu können, wird eine Sachwertanlage in einer festen Anzahl Tokens de-
finiert. Sobald ein Anleger Anteile an einer Sachwertanlage erworben hat, werden
ihm Tokens zugewiesen. Die Anzahl der Tokens eines Anlegers spiegeln die Anteile
der Sachwertanlage wieder.

                                         5
2 Einführung
2.1 Die Firma xpecto talonec GmbH
Die xpecto AG wurde 2001 gegründet, wobei die Idee für xpecto bereits 1994 auf-
kam. Diese entstand durch einen Programmierauftrag während des Studiums von
Harald Elsberger. Die xpecto/talonec GmbH gibt es in diesem Sinne erst seit 2014.
Bis dato gingen die in Landshut ansässige xpecto AG und die talonec business solu-
tions GmbH noch getrennte Wege, bis sie sich dann auf eine Partnerschaft einigten.

Mittlerweile beschäftigt sich die Firma xpecto talonec GmbH schwerpunktmäßig
mit der Entwicklung von Software für den Finanz- und Kapitalanlagenmarkt. Zu
den Kunden zählen unter anderem Emissionshäuser, Finanzbetriebe, Vermögens-
verwalter sowie Fonds- und Treuhandgesellschaften.

Der Zuwachs der Firma ist in den vergangenen Jahren stark angestiegen und die
Firma kann zum jetzigen Zeitpunkt bis zu 50 beschäftigte Mitarbeiter zählen, wel-
che sich auf die Standorte Landshut und Krailling verteilen.

Der Online Bereich ist die neueste Errungenschaft der xpecto/talonec GmbH und ein
wichtiges Standbein für die Firma geworden, welche ihr einen neuen Vertriebska-
nal bietet. Da sich der Trend immer mehr in Richtung der Onlineportale verschiebt,
wird dieser Bereich auch stets ausgebaut und erweitert. Dieser bietet zahlreiche
Vorteile gegenüber den plattformabhängigen Softwarelösungen und verspricht ei-
ne Zukunft mit viel Potential. Ein bedeutender Bestandteil der Online Services sind
die Online-Zeichnungen, bei denen sich Beteiligungen an Sachwertfonds über das
Internet erwerben lassen.

2.2 Ziel der Bachelorarbeit
In den bisherigen Prozessen einer Online-Fondszeichnung werden Bankdepots
vom Kunden benötigt, um Sachwertanlagen zu erwerben. Ziel dieser Bachelorarbeit
wird es sein herauszufinden, ob sich diese Bankdepots in die Blockchain verschie-
ben lassen. Dabei werden mehrere Blockchain-Plattformen betrachtet und anhand
ihrer Eigenschaften evaluiert, welche Plattform sich am besten eignet. Unter an-
derem muss auch betrachtet werden, ob sich die rechtlichen Rahmenbedingungen
in einer Blockchainumgebung einhalten lassen. Findet sich eine Plattform, die den
Ansprüchen der xpecto/talonec GmbH genügt, und lässt sich das Vorhaben in den
gesetzlichen Rahmenbedingungen realisieren, wird eine Prototypen-Schnittstelle

                                        6
vom bestehenden Zeichnungsprozess zur geeigneten Blockchain-Plattform entwi-
ckelt und die weitere Machbarkeit untersucht.

2.3 Bisheriges Vorgehen der Online-Fondzeichnung
Möchte ein Kunde Anteile an einem Fonds online erwerben, so registriert er sich
zunächst über ein Online-Portal eines xpecto/talonecs Vertriebspartners. Anschlie-
ßend kann der Kunde seine Zeichnung vornehmen, welche den Zeichnungsprozess
in der Middleware des xpecto/talonec Servers auslöst. Es ist abhängig vom Emitten-
ten, ob ein Kunde nach oder während des Zeichnungsprozesses über verschiedene
Ebenen überprüft wird. Bei der Überprüfung hat der Emittent die Möglichkeit,
Nacharbeiten beim Kunden anzufordern, die Zeichnung abzulehnen oder anzu-
nehmen und den Vertragsstatus folglich aktiv zu schalten, wie es in der Abbildung
2.1 beim Vertriebspartner abgebildet ist. Für eine Zeichnung benötigt der Kunde
ein Bankdepot, dem die zukünftig erworbene Sachwertanlagen zugeordnet wer-
den können. Ist dieses zum Zeitpunkt der Zeichnung noch nicht vorhanden, so
müssen diese Daten nachgereicht werden. Manche Emittenten bieten den Service,
Bankdepots für Kunden, die noch keines besitzen, anzulegen. Sobald die Daten für
ein vorhandenes Bankdepot bereitstehen, können die erworbenen Sachwertanlagen
auf das Depot gebucht werden.

          Abb. 2.1: Ablauf Onlinezeichnung xpecto AG (Elsperger 2018)

                                         7
2.4 Erwartungen an den Tokensale in der Blockchain
Wenn es darum geht, Finanzen zu verwalten, sind die Eigenschaften Manipulati-
onssicherheit, Zuverlässigkeit, Verfügbarkeit und Transparenz essentiell. In der mo-
dernen Menschheitsgeschichte wurden Banken diese Eigenschaften zugeschrieben.
Sie wurden mittels ihrer Infrastruktur (Gebäude, Tresore, internationale Verbin-
dungen) diesen Anforderungen weitgehend gerecht. Ereignisse wie Bankenkrisen
haben allerdings immer wieder deutlich gemacht, dass Banken den Anforderun-
gen nicht zuverlässig gerecht werden können und daher nur eine Näherungslösung
für das Problem der Finanzverwaltung sind. Die Technologie der Blockchain ver-
spricht, diese Eigenschaften durch technische Verfahren einhalten zu können. So
wird das Vertrauen keinem dritten Mittelsmann, sondern einem transparenten
Mechanismus geschenkt, der frei von Eigeninteressen seinen vorbestimmten Re-
geln folgt. Weil Prozesse in der Blockchain nicht von Menschen gesteuert werden
müssen, fällt gleichzeitig ein enormer Kostenfaktor weg, der sich bei Banken bei-
spielsweise in Form von Kontoführungsgebühren äußert. Mit dem Einbinden der
Blockchain-Technologie sollen genau diese Vorteile genutzt werden. Von diesen
Vorteilen würden Kunden direkt profitieren, indem ihnen Kosten und Risiken er-
spart bleiben. Aber jede Technologie hat auch ihre Schwächen. Und da es sich bei
der Blockchain-Technologie um eine noch sehr junge Technologie handelt, mögen
viele Schwächen noch unbekannt sein. Des Weiteren verändern sich die Konzep-
te der Blockchain in verschiedenen Ausführungen stets weiter, und es lässt sich
schwer abschätzen, welche sich durchsetzen. Es besteht die Gefahr, auf ein Kon-
zept zu vertrauen, welches sich als Sackgasse entpuppt. Beispielsweise sichern
viele Implementierungen ihren Ledger mit dem Proof-of-Work Konzept ab, was
allerdings einen hohen Rechenaufwand und starke Ineffizienz zur Folge hat. Al-
ternative Konzepte wie Proof-of-Stake haben dieses Problem gelöst, Proof-of-Stake
läuft aber Gefahr, reiche Validatorknoten für das Blockforging zu bevorzugen und
sie dabei noch reicher zu machen. Das kann zu einer stärkeren Zentralisierung
der Blockchain führen. Es wird deutlich, dass unterschiedliche Ausführungen auch
unterschiedliche Schwächen und Stärken aufweisen, die es zu erkennen und zwi-
schen ihnen abzuwägen gilt. Welche Umsetzung sich in Summe am meisten für
die Umsetzung des Tokensales in der Blockchain für xpecto/talonec eignet, wird im
nächsten Kapitel ersichtlich.

                                          8
3 Auswahl der geeigneten
  Blockchain Plattform
3.1 Vorgehen
Um eine Blockchain zu finden, die den im Abschnitt 2.4 genannten Erwartungen
bestmöglich erfüllt, werden in diesem Kapitel Bewertungskriterien aufgestellt und
erläutert. Anschließend wird jeder Anforderung eine Gewichtung zugeteilt werden.
Die Gewichtung wird auf einer Skala von 1 - 10 getroffen. 1 stellt damit die niedrigs-
te Gewichtung dar, während 10 die höchste Priorität eines Kriterium repräsentiert.
Zusätzlich werden Must-have Kriterien formuliert. Kann eine Blockchain nicht alle
Must-have Kriterien aufweisen, scheidet diese bereits in der Vorfilterung aus und
wird nicht weiter beurteilt. Für alle anderen Blockchains wird eine Gesamtwertung
mittels der Formel 3.1 errechnet. Die Prioritäten der einzelnen Kriterien wurden
alle in Absprache mit dem Unternehmen xpecto/talonec GmbH getroffen, um eine
Blockchain passend zu den Anforderungen der Firma zu finden. Anschließend wer-
den eine Reihe vorhandener Blockchains diesen Anforderungen gegenübergestellt.

                G ∈ {1, ..., 10}                       Gewichtung
                z ∈ [0, 1]                                Erfüllung
                n∈N                           Anzahl Anforderungen
                  Xn
                      Gi · zi                        Gesamtwertung               (3.1)
                   i=1

Die Blockchain mit der höchsten Gesamtwertung, wird die geeignete Blockchain-
Umgebung repräsentieren. Im Folgenden werden die Kriterien aufgezeigt, beschrie-
ben und anschließend gewichtet.

3.2 Vorbemerkung
Nach dem CAP-Theorem von Eric Brewer, welches im Abschnitt 1.3 genannt wurde,
können nur 2 der Eigenschaften Konsistenz, Verfügbarkeit oder Partitionstoleranz
in einem verteilten System erfüllt werden. Jedes verteilte System trifft mit seiner
Architektur die Entscheidung, eine Eigenschaft zu vernachlässigen. Mit dem To-
kensale in der Blockchain wird sich auf die Blockchain-Technologie gestützt, die
sich für eine Architektur der Verfügbarkeit und Partitionstoleranz entschieden hat.

                                          9
Sie behält die Verfügbarkeit bei, während sie inkonsistent ist und versucht den
Zeitversatz so gering wie möglich zu halten, den es benötigt, um die Daten wie-
der auf einen konsistenten Stand zu bringen. Auf die Entscheidungen, die das
CAP-Theorem betreffen, kann mit der Priorisierung bestimmter Blockchain Eigen-
schaften keinen Einfluss mehr genommen werden.

3.3 Anforderungen
3.3.1 Smart Contract Plattform (Must-have)
Wenn ein Bankdepot in der Blockchain umgesetzt werden soll, müssen dafür Regeln
und Abläufe definiert werden. Was passiert wenn Person A eine Summe S an Person
B überweist? In manchen Blockchains wird das durch Smart Contracts ermöglicht.
Hier sollen die Bedingungen und Abläufe formuliert werden, um ein Bankdepot
nutzbar und verwaltbar zu gestalten.

Fazit
Da, wie schon erwähnt, nicht alle Blockchains Smart Contracts unterstützen, muss
diese Anforderung als Must-have“Kriterium formuliert werden.
                      ”

3.3.2 Öffentlichkeit
Dezentrales und redundantes Speichern von Daten sind mit die wichtigsten Argu-
mente für das zukünftige Abbilden der Bankdepots in der Blockchain. Je größer die
Infrastruktur einer Blockchain ist, umso dezentraler und redundanter können die
gespeicherten Daten abgelegt werden. Daher wächst analog zur Blockchain auch
der damit verbundene Sicherheitsfaktor und Aufwand, Daten zu manipulieren.
Aber auch die Unabhängigkeit spielt in diesem Kriterium eine Rolle. Mit dem To-
kensale in der Blockchain sollten auch dritte Institutionen wie Banken wegfallen,
um zusätzliche Abhängigkeiten zu vermeiden. Die Öffentlichkeit einer Blockchain
hat darauf direkten Einfluss. Denn die Größe der Blockchain sollte sich auf eine
ebenso große, voneinander unabhängige, Gruppe Knotenbetreiber verteilen. Eine
große Blockchain, welche zu 51% von einer Institution betrieben oder verwaltet
wird, kann nicht mehr als vertrauenswürdig angesehen werden, da damit ein im-
plizites Vertrauen in die betreibende Institution einhergeht. Die Wahrscheinlichkeit,
dass ein solches Szenario eintreten kann, sinkt mit der Größe der Blockchain und da-
her auch die Abhängigkeit zu einzelnen Institutionen. Es gibt zwei unterschiedliche
Blockchain Konzepte, die sich auf die genannten Punkte unterschiedlich auswirken.

Öffentliche Blockchain
Wie der Name bereits verrät, gehört die öffentliche Blockchain keiner einzelnen
Institution. Sie gehört der Öffentlichkeit, und jeder kann als Knoten im Entschei-
dungsprozess der Blockchain teilnehmen. Alle Nutzer dieser unregulierten Knoten

                                         10
erhalten eine Kopie der Blockchain auf ihren lokalen Knoten und nutzen eine
verteilte Einigkeit über den Entscheidungsmechanismus. Dieser entscheidet über
den möglichen Zustand oder Inhalt aller Knoten in der Blockchain (vgl. Bashir
2017, S. 33). Die zur Zeit größten und etabliertesten Blockchains, Bitcoin mit 9426
Knoten (Yeow 2019) und Ethereum mit 8509 Knoten (ethernodes.org 2019) verfol-
gen beispielsweise das öffentliche Blockchain Prinzip. Mit der Verteilung auf die
öffentlichen Nutzer ist die Verfügbarkeit ebenfalls redundant sichergestellt. Ein
öffentliches Netzwerk, mit Knoten verteilt über die ganze Welt, ist robuster ge-
genüber geographisch bezogenen Ereignissen wie beispielsweise Stromausfällen,
Naturkatastrophen oder sogar politischen Regulierungen.

Private Blockchain
Auch hier verrät der Name bereits seine Bedeutung. Private Blockchains obliegen
gewissen Regulierungen. Sie stehen nur für ein Konsortium oder eine Gruppe
individueller Personen zur Verfügung. Dies ist beispielsweise sinnvoll für eine
Organisation, welche Daten untereinander teilen möchte und dabei die Vorteile der
Blockchain für sich nutzen möchte. So ist die Organisation von der Öffentlichkeit
unabhängig, kann ihre Blockchain komplett selber verwalten und ist ganz allein
für sie verantwortlich. Blockchains wie HydraChain oder Quorum fallen in die
Kategorie der privaten Blockchains (vgl. Bashir 2017, S. 33).

Fazit
Das Ziel, ein Bankdepot in eine Blockchain zu verlagern, ließe sich in einer priva-
ten wie auch einer öffentlichen Blockchain realisieren. Da Abhängigkeiten in einer
öffentlichen Blockchain allerdings breiter gestreut sind und die Sicherheit entschei-
dend größer ist als die einer privaten, ist der öffentlichen Blockchain der Vorzug
zu geben. Öffentliche Plattformen haben in der Regel einen größeren Verbreitungs-
grad. Das wirkt sich positiv auf die Knotenanzahl aus, siehe Abschnitt 3.3.5. Eine
große Blockchain bietet eine Streuung in der geografischen Verteilung, was vor
lokalen Krisen, wie beispielsweise Stromausfällen oder Erdbeben, absichert. Das
führt zu einer höheren Verfügbarkeit und geringeren Abhängigkeit. Daher eine
Gewichtung von 5 Punkten.

3.3.3 Gebühren
Wie bei einem klassischen Bankdepot fallen auch in der Blockchain Gebühren an,
die bezahlt werden müssen. Sie entlohnen die Personen, welche die Hashes der zu
schreibenden Blöcke berechnen. Bei diesen Berechnungen fallen Kosten an, welche
durch die Gebühren gedeckt werden sollen. Dadurch wird einer Transaktion selber
ein Wert verliehen und Transaktionen werden vom Anwender überlegter und nicht
verschwenderisch durchgeführt. Gleichzeitig werden dadurch DDoS Angriffe für
Angreifer unwirtschaftlich und die Blockchain somit sicherer.

                                         11
Zu hohe Gebühren wiederum verschaffen einem Depot in der Blockchain keinen
wirtschaftlichen Vorteil gegenüber dem herkömmlichen Bankdepot. Hier muss
also ein Bewertungsmaßstab gewählt werden, der mit sinkenden Gebühren das
Gebührenkriterium zunehmend erfüllt. Keine Gebühren sind für ein Unternehmen
wirtschaftlich immer von Vorteil, weshalb keine Gebühren das Gebührenkriterium
vollständig erfüllen. Weil sich Gebühren in einer Blockchain mit der Zeit an den
Markt anpassen und variieren, kann nur der Kurs betrachtet werden, welcher zum
Zeitpunkt der Bachelorarbeit aktuell war.

Bewertungsmaßstab
Ziel ist es, herkömmliche Transaktionsgebühren von Banken zu unterbieten. Die
Obergrenze des Bewertungsmaßstabs spiegelt daher die durchschnittlichen Trans-
aktionsgebühren verschiedener Banken wider. Die Transaktionsgebühren der Block-
chain und die der Banken lassen sich allerdings nicht im selben Maßstab verglei-
chen. Denn die Transaktionsgebühren der Blockchain sind, anders als die der Ban-
ken, unabhängig von der Transaktionssumme. Die Transaktionsgebühren der Ban-
ken ergeben sich prozentual aus der Transaktionssumme. Der Graph 3.1 stellt den
durchschnittlichen Gebührenverlauf verschiedener Bankangebote in Abhängigkeit
des Ordervolumens dar. Angaben wie Orderanzahl pro Jahr, Orderanteile im In-
ternet und Depotvolumen sind fix. Es wird von 12 Ordern pro Jahr ausgegangen,
davon alle im Internet und mit einem Depotvolumen von 20.000€. Dabei wird sich
auf Daten des Vergleichsportals verivox bezogen (verivox 2019). Der Quellcode,
mit dem diese Daten erfasst und analysiert wurden, befindet sich mit den Ver-
gleichsdaten im Anhang. Wie gut ein Blockchain Kandidat das Gebührenkriterium
erfüllt, wird mit der Formel 3.2 bestimmt. Um negative Werte zu vermeiden, wird
die Erfüllung aller Kandidaten, deren Transaktionsgebühren fm überschreiten, mit
0 bewertet.

                                        12
Abb. 3.1: Durchschnittliche Ordergebühren abhängig vom Ordervolumen
                     30
                               Ordergebühr/Ordervolumen
                    25.1
 Ordervolumen [€]

                     15

                    7.83

                           0             0.5             1               1.5                  2
                                                Kosten pro Order [€]                        4
                                                                                        ·10

                                  fm ∈ R+                   Gebühren max.
                                   fi ∈ R+                 Gebühr Kandidat
                                          fi
                                     1−                           Erfüllung            (3.2)
                                         fm

Fazit
Weil niedrige Gebühren ein wichtiges Argument für den Tokensale in der Block-
chain sind, darf dieses Argument in der Bewertung nicht vernachlässigt werden.
Da aber erwartet wird, dass die Blockchaingebühren generell erheblich günstiger
ausfallen, als bei den Ordergebühren der Banken und sich daher nicht stark von
einander abheben werden, wird die Priorisierung auf 5 Punkte festgelegt.

3.3.4 Blockzeit
Je kürzer die Blockzeit desto mehr Transaktionen können in kürzerer Zeit durch-
geführt werden. Weil Transaktionszeiten in der Blockchain, verglichen mit denen
der Banken, um vieles schneller sind, ist die kurze Bearbeitungszeit von Transak-
tionen ebenfalls ein Vorteil, der für die Blockchain spricht. So benötigt eine Trans-
aktion in der Bitcoin Blockchain durchschnittlich 10 Minuten (Luxembourg 2017)
und eine Transaktion in der Ethereum Blockchain zwischen 10 und 20 Sekunden
(Etherscan.io 2019) bis zur Bestätigung.

Bewertungsmaßstab
Wie schon bei den Gebühren gilt auch bei beim Blockzeit Kriterium: Je geringer,
desto besser.

                                                     13
Um einen Bewertungsmaßstab zu erstellen, welcher angeben soll, wie gut eine
Blockchain das Blockzeit Kriterium erfüllt, werden die durchschnittlichen Block-
zeiten der Blockchain Kandidaten gesammelt. Alle Kandidaten werden mit dem
Kandidaten der längsten Blockzeiten verglichen. Die Erfüllung des Blockzeit Kri-
teriums wird anhand der Formel 3.3 ermittelt.

                   tm ∈ R+                          Blockzeit max.
                    ti ∈ R+                     Blockzeit Kandidat
                           ti
                      1−                                  Erfüllung                (3.3)
                          tm

Fazit
Die Priorität für das Blockzeit Kriterium fällt nicht so stark ins Gewicht, da es sich
hierbei eher um ein nice to have “Feature handelt. Daher eine Priorität von nur 3
                       ”
Punkten.

3.3.5 Knotenanzahl
Die Blockchain ist ein verteiltes System, welches sich aus Knoten zusammensetzt.
Daher lässt sich an dem Kriterium der Knotenanzahl die Größe der Blockchain be-
urteilen. Die Knoten in öffentlichen Blockchains werden von freiwilligen Personen
und Organisationen betrieben, welche einen Client der entsprechenden Blockchain
auf ihrem System laufen lassen. Dieser Client bestätigt Transaktionen und Blöcke
anderer Knoten, validiert diese und leitet sie dann an andere Knoten weiter. Die
gesamte Rechenlast der Blockchain verteilt sich auf ihre einzelnen Knoten. Aus je
mehr Knoten eine Blockchain also besteht, desto besser verteilt sich ihre Rechen-
last, steigert ihre Verfügbarkeit und umso robuster ist sie gegenüber störenden
Ereignissen. Diese störenden Ereignisse können beispielsweise Angriffen, Natur-
katastrophen oder lokalpolitischen Vorfällen. Dabei ist es von Vorteil, wenn sich
das Knotennetzwerk über die ganze Welt verteilt. Da die Knoten öffentlicher Block-
chains ausschließlich von Freiwilligen betrieben werden, lässt sich anhand der
Knotenanzahl auch auf die Größe der Community schließen, welche hinter der
Blockchain steht. Sie kann ein Indikator für den zukünftigen Entwicklungsverlauf
und Erfolg sein.

Bewertungsmaßstab
Da Robustheit, Verfügbarkeit und Sicherheit mit Zunahme der Knotenanzahl steigt,
erfüllt eine Blockchain mit vielen Knoten das Kriterium der Knotenanzahl besser
als eine Blockchain mit wenigen Knoten. Die Erfüllung wird mit der Formel 3.4
errechnet.

                                           14
nm ∈ R+                        Knotenzahl max.
                   ni ∈ R+                    Knotenzahl Kandidat
                      ni
                                                         Erfüllung              (3.4)
                     nm

Fazit
Da die Knotenanzahl ein ausschlaggebender Indikator für die Sicherheit, Perspek-
tive, Verfügbarkeit und Robustheit einer Blockchain ist, fällt dieses Kriterium ent-
sprechend stark ins Gewicht. Daher werden hier 7 Prioritätspunkte vergeben.

                                         15
3.4 Bewertung
3.4.1 Kandidaten
Für die Evaluierung werden aufgrund eigener Recherchen die aktuell bekanntesten
Blockchains zusammengetragen und bewertet.

Folgende Kandidaten werden betrachtet:

                   Ethereum                      EOS
                   Kadena                        TRON
                   Openchain                     Stellar
                   Bitcoin                       nem
                   Dune                          waves
                   Litecoin                      Cardano
                   Ripple                        Cosmos

                   Rootstock                     Tezos
                   NEO
                     Tab. 3.1: Blockchain Kandidaten Auswahl

Nach den oben definierten Mindestanforderungen müssen alle Kandidaten Smart
Contracts unterstützen. Daher durchlaufen alle Kandidaten eine Vorauswahl, um
jene Kandidaten, die dieses Kriterium nicht erfüllen, gleich ausschließen zu können.

                                         16
3.4.2 Vorauswahl
Kandidaten welche keine Smart Contracts unterstützten werden in der Vorauswahl
aussortiert.

Ausgeschiedene Kandidaten
Die Blockchains Bitcoin, Litecoin und Ripple(Huffman 2019) unterstützen keine
Smart Contracts und scheiden daher in der weiteren Evaluierung aus.

Weiterbestehende Kandidaten
Übrig bleiben:

                       Ethereum (ethereum.org 2020, vgl.)
                       Kadena (vgl. Bashir 2017, S. 506)
                       Openchain (openchain.org 2019, vgl.)
                       Rootstock (vgl. Bashir 2017, S. 520)
                       NEO (neo.org 2019, vgl.)

                       EOS (Smart Contract Development n.d., vgl.)
                       TRON (Smart Contract Deployment n.d., vgl.)
                       Stellar (Stellar Smart Contracts n.d., vgl.)
                       nem (NEMT ECHNOLOGY n.d., vgl.)
                       waves (RIDE n.d., vgl.)
                       Cardano (blockchaincenter.net 2019, vgl.)

                       Tezos (vgl. Bashir 2017, S. 523)
                       Dune (vgl. The Dune Network 2019, S. 1)
                  Tab. 3.2: Blockchain Kandidaten nach Vorauswahl

                                          17
3.4.3 Analyse

   Blockchain       öff./priv. (5 )   Gebühren (5 )                Blockzeit (3 )         Knoten (7 )
                                       12Gwei =ˆ
     Ethereum         öffentlich      0.00000159852€
                                                                     15sec.                 8509
                                                   1.60 × 10−6 €                15sec.            8509
     Score:              5∗1           5 ∗ (1 −                  )   3 ∗ (1 −          )    7∗(        )
                                                      7.83€                       tm               nm
     Kadena            beides          noch nicht bekannt            30 sec.                -
                                                                                30sec.
     Score:              5∗1                                         3 ∗ (1 −          )
                                                                                  tm
     Openchain        öffentlich      0,-€                          319sec.                34
                                                0, −€                         319sec.             34
     Score:              5∗1           5 ∗ (1 −       )              3 ∗ (1 −         )     7∗(      )
                                                7.83€                           tm                nm
                                       65Mwei =ˆ
     Rootstock        öffentlich                                    32sec.                 17
                                       0,00000000837€
                                                   8.37 × 10−9 €                32sec.            17
     Score:              5∗1           5 ∗ (1 −                  )   3 ∗ (1 −          )    7∗(      )
                                                      7.83€                       tm              nm
     NEO                               0.001GAS =ˆ
                      öffentlich      0,000916807€
                                                                     21sec.                 27
                                                9.17 × 10−4 €                   21sec.            27
     Score:              5∗1           5 ∗ (1 −               )      3 ∗ (1 −          )    7∗(      )
                                                   7.83€                          tm              nm
     EOS              öffentlich      0EOS =
                                            ˆ 0,-€                   0,5sec.                21
                                                    0,-€                        0.5sec.           21
     Score:              5∗1           5 ∗ (1 −          )           3 ∗ (1 −           )   7∗(      )
                                                   7.83€                          tm              nm
     TRON             öffentlich      0TRX =
                                            ˆ 0,-€                   3sec.                  906
                                                    0,-€                        3sec.             906
     Score:              5∗1           5 ∗ (1 −          )           3 ∗ (1 −         )     7∗(       )
                                                   7.83€                         tm               nm
                                       0.00001XLM =ˆ
     Stellar          öffentlich                                    5sec.                  145
                                       0,0000004770174€
                                                4.77 × 10−7 €                   5sec.             145
     Score:              5∗1           5 ∗ (1 −               )      3 ∗ (1 −         )     7∗(       )
                                                   7.83€                         tm               nm
                                       1.25XEM =ˆ
     NEM               beides          0,0396225€
                                                                     60sec.                 418
                                                   3.96 × 10−2 €                60sec.            418
     Score:              5∗1           5 ∗ (1 −                  )   3 ∗ (1 −          )    7∗(       )
                                                      7.83€                       tm              nm
                                       0.001Waves =
                                                  ˆ 0,000045232
     Waves            öffentlich                                    60sec.                 380
                                       €
                                                   4.52 × 10−5 €                60sec.            380
     Score:              5∗1           5 ∗ (1 −                  )   3 ∗ (1 −          )    7∗(       )
                                                      7.83€                       tm              nm

                 Tab. 3.3: Blockchain Kandidaten Analyse Teil 1

                                              18
Blockchain      öff./priv. (5 )   Gebühren (5 )               Blockzeit (3 )        Knoten (7 )
                                   0,18ADA= ˆ
  Cardano          public                                       20sec.                -
                                   0,00529€
                                              5.29 × 10−3 €                20sec.
  Score:             5∗1           5 ∗ (1 −                 )   3 ∗ (1 −          )
                                                 7.83€                       tm
                                   0.025uatom=ˆ
  Cosmos           public                                       7sec.                 49
                                   0,0000000965€
                                              9.65 × 10−8 €                7sec.            49
  Score:             5∗1           5 ∗ (1 −                 )   3 ∗ (1 −         )    7∗(      )
                                                 7.83€                      tm              nm
  Tezos (Tot)          -           -                            -                     -
 Score: 0
                                   0,468571429d =
                                                ˆ
  Dune             public                                       60sec.                65
                                   0,00001827€
                                              1.82 × 10−5 €                60sec.           65
  Score:             5∗1           5 ∗ (1 −                 )   3 ∗ (1 −          )   7∗(      )
                                                 7.83€                       tm             nm

             Tab. 3.4: Blockchain Kandidaten Analyse Teil 2

                                       19
3.4.4 Auswertung
Für die Auswertung der Kandidaten werden die erreichten Kriterienpunkte zusam-
mengetragen und zu einer Gesamtpunktzahl aufaddiert. Anschließend werden sie
in der Tabelle 3.5 nach der erreichten Gesamtpunktzahl sortiert. Der Kandidat mit
den meisten Punkten soll die best geeignetste Blockchainplattform sein, den To-
kensale in der Blockchain für die Firma xpecto/talonec umzusetzen.

                  Rang        Blockchain       Gesamtpunktzahl
                    1           Ethereum              19,86

                    2           TRON                  13,72
                    3           Stellar               13,07

                    4           EOS                   13,01

                    5           Cosmos                12,97
                    6           NEO                   12,82

                    7           NEM                   12,75
                    8           Waves                 12,71
                    9           Rootstock             12,71
                    10          Dune                  12,49
                    11          Openchain             10,03
                    –           Cardano                 –
                    –           Kadena                  –

                    –           Tezos (Tot)             –

                   Tab. 3.5: Blockchain Kandidaten Auswertung

Für die Kandidaten Cardano, Kadena und Tezos war es nicht möglich alle benötigten
Daten zu ermitteln. Genaueres wird später im Fazit behandelt. Daher konnte für sie
keine Gesamtpunktzahl errechnet werden und dementsprechend fallen sie aus der
Auswertung und dem Ranking heraus. Ethereum erreichte 19,89 von 20 möglichen
Punkten und belegt damit Platz eins. Ethereum qualifiziert sich somit für die Block-
chainplattform, mit der der Tokensale in der Blockchain umgesetzt werden soll.

                                          20
3.5 Fazit
Ziel war es eine geeignete Blockchain Plattform nach den Anforderungen der xpec-
to/talonec GmbH zu finden. Dabei hat sich herausgestellt, dass die Ethereum Block-
chain jene unter den betrachteten Kandidaten ist, welche den Anforderungen am
besten gerecht wird. Wichtig zu betonen ist, dass die Auswertung der Blockchain
Plattformen speziell den Anforderungen der xpecto/talonec GmbH entsprechen.
Ethereum besitzt mit Abstand die meisten Knoten unter den Blockchain Kandida-
ten, was ausschlaggebend für die Erreichung seiner Höchstpunktzahl war. Doch
obwohl Ethereum der Spitzenreiter ist, muss die Entwicklung der Knotenanzahl
weiterhin kritisch und kontinuierlich beobachtet werden, weil die Zahl wie in Ab-
bildung 3.2 erkennbar ist stark fluktuiert.

           Abb. 3.2: Ethereum Verlauf Knotenanzahl (Etherscan.io 2020)

Die Plattformen Cardano, Kadena und Tezos wurden aus der Wertung ausgeschlos-
sen. Das liegt daran, dass manche Eigenschaften der Blockchains sich entweder
nicht ermitteln ließen, Services mancher Blockchains zum Zeitpunkt der Analyse
nicht zur Verfügung standen oder die Plattform selber gar nicht mehr existiert wie
es im Fall Tezos war. Die Einstellung des Tezos Projektes wurde durch eine private
E-Mail Korrespondenz mit einem Tezos Mitarbeiters in Erfahrung gebracht.

Am Beispiel Tezos lässt sich gut verdeutlichen, dass die Zukunftsbeständigkeit von
Blockchain Plattformen nicht garantiert ist. Daher war es in der Analyse wichtig,
einen Eindruck über Verbreitung und Größe der Plattform Kandidaten zu gewin-
nen. Diese sind zwar keine Garantie für eine erfolgreiche oder fortbestehende Zu-
kunft, doch aus ihnen lässt sich ein weiterer Fortbestand und Erfolg ableiten. Dieser
Eindruck sollte über die Eigenschaft der Knotenzahl in die Analyse mit einfließen.

Eine weitere Schwierigkeit der Analyse war, dass sich manche Blockchain Konzep-

                                         21
te schwierig, und daher nicht ganz fair, miteinander vergleichen lassen. Kadena
beispielsweise besitzt nicht nur eine lineare Kette an Blockreferenzen, sondern viel-
mehr ein ganzes Netz von Blockreferenzen. Es laufen dabei mehrere Chains parallel,
welche sich gegenseitig referenzieren.3.3

        Abb. 3.3: Kadena 3D Blockexplorer (Kadena 3D Blockexplorer 2020)

                                         22
4 Konzept
Im letzten Kapitel stellte sich heraus, dass die Ethereum Blockchain jene Plattform
ist, mit der sich der Tokensale in der Blockchain realisieren ließe. In diesem Kapitel
geht es darum, ein Konzept auszuarbeiten, wie der Tokensale in der Blockchain im
bestehenden online-Zeichnungsprozess integriert werden soll, welche Prozessteil-
nehmer für den Tokensale in der Ethereum Blockchain notwendig sind und wie ein
Emittent sein Produkt dort platzieren kann.

4.1 Tokenisierung
Nach der BaFin handelt es sich dabei um die digitalisierte Abbildung eines (Vermö-
gens-) Wertes inklusive der in diesem Wert enthaltenen Rechte und Pflichten sowie
dessen hierdurch ermöglichte Übertragbarkeit (bafin.de 2019, vgl.). Dieser Schritt
wird benötigt, um Sachwertanteile in der Blockchain später abbilden, handeln, und
zuweisen zu können.

                              Abb. 4.1: Tokenisierung

                                         23
4.2 Prozessteilnehmer

                           Abb. 4.2: Übersicht Tokensale

Registerwallet
Synonyme: Registerführer, Registrar.
Das Registerwallet lässt sich wie die Schnittstelle zwischen Emittentenwallet und
Kundenwallet begreifen und wird von xpecto/talonec verwaltet. Es wird benötigt,
um einen neuen Smart Contract zu erzeugen. Für die Erzeugung fallen Gebühren in
der Ethereum Blockchain an. Diese werden aus dem Registrarwallet bezahlt. Des-
weiteren ist das Registrarwallet in einer Administratorfunktion für den erzeugten
Smart Contract. Damit nicht jeder, der ein Ethereum Wallet besitzt, eine Funk-
tion auf dem Smart Contract durchführen kann, muss der Zugriff auf den Smart
Contract begrenzt werden. Vor Funktionsaufrufen, die nur dem Registerführer vor-
behalten sind, wird zunächst die Walletadresse des Funktionsaufrufer abgefragt.
Kann die Walletadresse dem Registerführer zugewiesen werden, darf er alle Funk-
tionen durchführen für die er autorisiert ist. Funktionen die nur der Registerführer
aufrufen darf sind Beispielsweise kill() 5.9 oder transferRegistrar() 5.10.

modifier onlyIssuer {
require(msg.sender == issuer, "only valid for issuer");
_;
}
Listing 4.1: Walletadressenvergleich       zwischen       Funktionsaufrufer       und
             Registerführer

                                          24
Emittentenwallet
Synonyme: Emittent, Owner, Issuer.
Das Emittentenwallet hält alle Tokens nach Erzeugung. Für jedes Produkt oder jede
Emission, von der Anteile durch eine Zeichnung erworben werden können, gibt es
ein eigenes Emittentenwallet. Der Wert des Produkts wird in Tokens aufgeteilt. So
lässt sich das Produkt später auf die unterschiedlichen Anteilhaber aufteilen. Das
Emittentenwallet hält zu Beginn alle Tokens, in die das Produkt aufgeteilt wurde.

Kundenwallet Customer“
                ”
Die Adresse des Kundenwallets wird verwendet, um die vom Kunden erworbenen
Tokens dem Kunden zuzuweisen. Alle Kundenwallets werden dabei in einer Map
festgehalten. Sie ordnet jeder Walletadresse eine Tokenbilanz zu. Beim Kauf oder
Übertragen von Tokens werden diese Änderungen in der Map übernommen.

Systemwallet
Für jede xpectoPro Datenbank sollte ein Systemwallet erzeugt werden. Dieses soll-
te für die automatische Erzeugung der Kundenwallets verwendet werden. Dabei
fließt der Publickey des Systemwallets als Parent in den Kundenwallet mit ein. Die
generierten Wallets nennt man dann HD Wallets. Sie enthalten einen Ableitungs-
pfad. Falls ein Kunde den Privatkey seines Kundenwallets verlieren sollte, wäre
es möglich, den Privatekey zu errechnen. Für die Errechnung würde der extended
Privatekey des Systemwallets aus seinem Mnemonic erzeugt. Dieses Konzept lässt
sich allerdings wegen Vorschriften der BaFin nicht umsetzten. Falls der Private-
key des Kunden verloren gehen sollte, kann dieser daher nicht wiederhergestellt
werden. Alternativ können Tokens auf einem verlorenen Wallet verbrannt werden,
und einem neuen Wallet zugewiesen werden. Tokenverbrennung oder burning be-
schreibt den Prozess, vorhandene Tokens zu zerstören, wie es im Abschnitt 5.8
erläutert wird.

                                        25
4.3 Zeichnungsablauf mit Ethereum
Der Tokensale soll im bestehenden Online-Zeichnungsprozess der xpecto/talonec
GmbH integriert werden. Der Ablauf ist dabei wie folgt definiert:
Für den Tokensale in der Onlinezeichnung wird ein Wallet des Kunden benötigt,
auf dem die Anteile der Sachwertanlage überschrieben werden können. Besitzt der
Kunde bereits ein solches Wallet, hat er die Möglichkeit, die damit verbundene Wal-
letadresse anzugeben. Anschließend wird die Adresse auf ihre Richtigkeit geprüft.
Dabei muss die Walletadresse mit 0x beginnen. Anschließend wird die Prüfsumme
der Walletadresse überprüft. Dafür muss die Walletadresse groß und kleingeschrie-
bene hexadezimale Buchstaben von A-F enthalten. Ein Prüfsummenabgleichs ist
nicht möglich wenn alle Buchstaben in der Walletadresse klein geschrieben sind, da
die Groß- Kleinschreibung Element des Prüfsummenabgleichs ist. Die Implemen-
tierung des Prüfsummenabgleichs kann unter folgender URL eingesehen werden:
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-55.md

Falls ein Kunde noch kein Wallet besitzt, wird eines für ihn erstellt und die Wal-
letadresse dem Kunden zugeordnet. Bei der Erstellung eines Wallet werden auch
Zugangsdaten erstellt. Da dies vertrauliche Daten sind, gibt es zwei Szenarien wie
mit ihnen umgegangen wird.

    Verschlüsselt bei der xpecto/talonec GmbH speichern:
    Der Kunde hat die Möglichkeit, die erzeugten Zugangsdaten des Wallets bei
    xpecto zu speichern. Diese werden mittels PGP und eines gewählten Passworts
    des Kunden verschlüsselt gespeichert.

    Übermittlung der Zugangsdaten:
    Die erzeugten Zugangsdaten können dem Kunden im Browser übermittelt
    werden. Die Verantwortung, die Zugangsdaten sicher zu bewahren, liegt nur
    noch beim Kunden. Bei xpecto liegen keinerlei Zugangsdaten für das erzeugte
    Wallet.

Anschließend erhält der Kunde eine Zahlungsaufforderung für den Erwerb der
Sachwertanteile. Die Zahlung kann per Überweisung oder Lastschrift getätigt wer-
den. Trifft die Zahlung ein, wird folgendes sequentiell überprüft:

    1. Wurde der Kunde bereits überprüft?
    Bevor ein Kunde erstmalig Tokens erhalten kann, muss er sich beim Emitten-
    ten legitimieren lassen. Dies geschieht über eine Videolegitimation. War die
    Legitimation erfolgreich, wird er vom Emittenten in eine Liste von verifizier-
    ten Personen eingetragen.

                                        26
2. Hat Emittent genug Tokens?
    Hält der Emittent noch genügend Tokens, um sie dem Zahlenden übertragen
    zu können?

    3. Deckt die eingehende Zahlung die offene Rechnung?
    Der Registerführer verbucht die Zahlungen gegen die offene Rechnung und
    überprüft sie auf Vollständigkeit.

Wurden alle Bedingungen erfolgreich überprüft, erlaubt der Emittent dem Regis-
terführer, die gekauften Tokens der Kundenwalletadresse zuzuweisen.

                Abb. 4.3: Zeichnungsablauf mit Ethereum Wallet

                                      27
4.4 Erstellung eines neuen Produktes
Für jedes neue Produkt wird ein neuer Smart Contract erzeugt. Der Code für die-
sen Smart Contract ist in der Ethereum eigenen Sprache Solidity geschrieben. Der
Quellcode des Smart Contracts befindet sich in einem xpecto eigenen Git Reposito-
ry.
Die Erstellung des Smart Contracts nimmt folgenden Weg:

    1. Die Client-Anwendung xpectoPro downloaded den Smart Contract vom
    xpecto Git Repository. Dieser Code ist noch kein gültiger Solidity Code, da
    im Konstruktor noch Platzhalter sind die nach dem Download durch Texter-
    setzung ausgetauscht werden. Der Platzhalter tokenname kann beispielsweise
    durch den Namen xpecto-Token“ersetzt werden.
                      ”

    // contract
    constructor() public {
       xpectoMandator = "{{mandator}}";
       symbol = "{{tokensymbol}}";
       name = "{{tokenname}}";

        issuer = {{issuer}};
        registrar = {{registrar}};

        addToWhitelist(issuer, "issuer");
        addToWhitelist(registrar, "registrar");
    }
Listing 4.2: Platzhalter für Textersetzung des in doppelt geschweiften Klammern.

    2. Damit der Smart Contract der Ethereum Blockchain übergeben werden kann,
    muss er in Bytecode konvertiert werden und es muss ein Application Binary
    Interface über den Smart Contract generiert werden. Beide Schritte werden
    über den eigenen xpecto Ethereum Node durchgeführt.

    3. Der Bytecode wird in die Blockchain geschrieben. Da Ethereum zwei Ar-
    ten von Chains besitzt, das Mainnet und das Ropsten Testnet, muss ange-
    geben werden, in welcher der beiden Instanzen geschrieben werden soll. Ei-
    ne Übertragung in die Chain geschieht über einen Remote Procedure Call
    Aufruf des xpecto eigenen Ethereum-Nodes. Da das Hochladen eines Smart
    Contracts ebenfalls eine Transaktion in der Ethereum Blockchain ist, fallen
    dabei Gebühren an. Diese Gebühren werden Gasprice genannt und können
    frei gewählt werden. Umso höher der Gasprice einer Transaktion gewählt
    wird, desto schneller wird sie von einem Miner in einem Block geschrieben.
    Der Gasprice beim Hochladen eines Smart Contracts bei xpecto orientiert sich

                                       28
am durchschnittlich gezahlten Gasprice im Ethereum Netzwerk. Dieser wird
über den xpecto Ehtereum-Node ermittelt, um anschließend einen geeigneten
Gasprice zu wählen.

4. Bei einer erfolgreichen Transaktion wird dem hochgeladenen Smart Contract
eine Adresse zugeordnet. Unter dieser Adresse ist der Smart Contract in der
Ethereum Blockchain verfügbar und kann Beispielsweise über das Etherscan
Portal https://etherscan.io/ eingesehen werden.4.4

             Abb. 4.4: Etherscan Smart Contract Übersicht

                                  29
5 Implementierung Smart Contract
Der Implementierte Smart Contract orientiert sich an dem Ethereum Request for
Change (ERC)Ethereum Improvement Proposal (EIP)20 Standard. Dieser Standard
ist eine Schnittstellenbeschreibung für Tokensale Smart Contracts auf der Ethereum
Blockchain. Der Standard stellt eine Basisfunktionalität, wie Tokentransfer und die
Genehmigung von fremden Tokens (EIPs 2020, vgl.), bereit.

5.1 Überprüfungen
5.1.1 Ist der Funktionsaufrufer Issuer oder Emittent?
Bei dieser Überprüfung handelt es sich um einen Modifier. Hier wird überprüft,
ob der Methodenaufrufer der registrierte Registrar oder Emittent ist. Falls der
Methodenaufrufer weder Registrar noch Emittent ist, wird die Funktion, welche
diesen Modifier verwendet nicht aufgeführt.

    modifier onlyIssuerOrRegistrar {
       require(msg.sender == issuer || msg.sender == registrar, "only
           ,→ valid for issuer or registrar");
       _;
    }

5.1.2 Zeitstempel Überprüfung
Manchen Funktionen muss ein Zeitstempel übertragen werden. Dieser gibt an,
zu welchem Zeitpunkt die Funktion aufgerufen worden ist. Der Zeitpunkt muss
dabei lokal vom Client mitgeteilt werden, da es nicht möglich ist, den aktuellen
Zeitpunkt über die EVM zu erfahren. Um zu verhindern, dass der mitgeteilte
Zeitpunkt in der Zukunft liegt, wird überprüft, ob der Zeitpunkt älter ist als der
Erzeugungszeitpunkt des Blocks, in dem die Mintingoperation durchgeführt wird.

        require(
5.1.3 Authentifizierung
Für manche Funktionen muss zuerst überprüft werden, ob die verwendeten Wallet-
Adressen zugelassen sind. Dies wird über eine Whitelist gelöst, die im Abschnitt
5.5 genauer erläutert wird.

        require(isWhitelisted(), " needs
           ,→ to be whitelisted by registrar or issuer");

5.1.4 Pausierung des Smart Contracts
Wurde eine Instanz des Smart Contracts erzeugt, ist er zu Beginn immer pausiert.
In dieser Zeit können manche Funktionen nicht ausgeführt werden. Daher wird vor
Ausführung einer solchen Funktion erst der Status des Smart Contracts abgefragt.

        require(!paused, "public transfer is paused");

5.1.5 Bestandsüberprüfung bei Token- Übertragungen
Der zu übertragene Betrag darf den Bestand des Senders nicht überschreiten.

        require(_value
5.2 Konstruktor
Im Konstruktor wird dem Smart Contract der Mandator, das Tokensymbol, der
Tokenname, die Walletadresse des Emittenten und des Registrars mitgeteilt.
Die Argumente werden dem Smart Contract nicht über die Konstruktorargumente
mitgeteilt, da der geschriebene Quellcode bereits in einem Repository liegt. Darum
wird der Quellcode des Smart Contracts, zur Erstellung eines Produktes, von dem
xpecto/talonec Repository heruntergeladen und die Argumente für den Smart Con-
tract über eine Textersetzung eingefügt. Sobald die Walletadressen des Emittenten
und des Registrars bekannt sind, werden sie der Whitelist hinzugefügt. Siehe Ab-
schnitt 5.5.

// contract
constructor()
public {
   xpectoMandator = "{{mandator}}";
   symbol = "{{tokensymbol}}";
   name = "{{tokenname}}";

    issuer = {{issuer}};
    registrar = {{registrar}};

    addToWhitelist(issuer, "issuer");
    addToWhitelist(registrar, "registrar");
}

                                        32
Sie können auch lesen