Blockchain für ein Finanzprodukt: Warum Sie es brauchen und wie Sie es bauen

Hinweis: Die Codebeispiele werden möglicherweise aufgrund von Abschriften nicht richtig angezeigt. Ich empfehle, den Originalartikel in unserem Blog weiterzulesen, um sicherzustellen, dass alle Beispiele richtig angezeigt werden.

Es amüsiert mich, dass die vielversprechendste Technologie des Jahrzehnts mit Spekulationen und Finanzbetrug in Verbindung gebracht wird. Das ist wirklich komisch. Anstatt zu versuchen, es richtig anzuwenden, haben wir Fashion Blockchain-Konferenzen und Geschichten über erfolgreiche ICOs. Glücklicherweise gibt es einige Unternehmer und Ingenieure, die mutig genug sind, Blockchain anzuwenden, damit viele davon profitieren können.

Ich spreche nicht über digitale Revolutionen und die Art von Dingen wie "Lasst uns die Worte ändern", sondern ich werde (1) meine Gedanken darüber teilen, warum Finanzen von Blockchain mehr profitieren können als von jeder anderen Branche und (2) ) lehren Sie, wie man eine einfache Blockchain in Python erstellt.

Sie sind keine Industrie für ihn. Wer ist bereit für Blockchain

In den meisten Artikeln, die ich über "Warum Produkte versagen" gelesen habe, erwähnen die Autoren immer hohe Preise, schwache Marketingkampagnen, mangelnde Einzigartigkeit der Produkte und die Ausrichtung auf den falschen Markt. Wenige haben jedoch etwas darüber geschrieben, dass Produkte zum falschen Zeitpunkt veröffentlicht werden. Das bekannteste Beispiel ist das Internet: Es wurde in den frühen 90er Jahren verfügbar, aber die meisten Menschen, einschließlich der Unternehmer, konnten nicht herausfinden, wie sie es zum Nutzen einsetzen sollten.

Warum ist es passiert? Zum Teil, weil die Menschen für einen so bedeutenden Schritt in Richtung Globalisierung nicht bereit waren. Zum Teil, weil nur wenige versuchten zu lernen, wie man das Internet zu ihrem eigenen Vorteil nutzt, obwohl alle wussten, dass es existiert.

So etwas passiert mit Blockchain - viele reden darüber, weniger verstehen es und viel weniger wissen, wie man es benutzt. Wie kommt es, dass es seit über einem Jahrzehnt keine globale Blockchain-basierte App gibt? Niemand hat die Antwort darauf. Aber zumindest wissen wir, wo wir es einsetzen sollen. Lassen Sie mich erklären.

Quelle: Microsoft Azure

Eine Person ist weniger zuverlässig als eine Maschine. Aus diesem Grund brauchten die Bereiche, in denen menschliche Fehler am häufigsten auftreten (Fälschung und Betrug), eine Technologie, die diese Faktoren ausschließen kann. Das problematischste Gebiet ist das Finanzwesen, weil es mit Geld zu tun hat und die Menschen Geld lieben. Wir alle wissen, dass es manchmal schwierig ist, der Versuchung zu widerstehen, mehr zu verdienen.

Aus diesem Grund versuchen Fintech-Startups, Blockchain im Finanzbereich zu implementieren, um sicherzustellen, dass kein Betrug stattfindet. Diese Blockchain kann Dritte vom Handel ausschließen, die Authentifizierung von Personen optimieren, Finanztransaktionen nachverfolgen und die Echtheit des Dokuments sicherstellen.

Dies bedeutet nicht, dass jedes Fintech-Startup eine Blockchain benötigt. Hier ist ein einfaches Quiz.

Sie benötigen keine Blockchain, wenn Folgendes für Sie zutrifft:

  • Sie haben kein Budget für Experimente. Das Implementieren einer Blockchain ist immer riskant, daher gibt es keine Garantie, dass Sie davon profitieren.
  • Sie sind konservativ. Blockchain kann zu erheblichen Änderungen in der Organisationsstruktur führen. Wenn Sie nicht dazu bereit sind, würde ich dies nicht vorschlagen.
  • Sie möchten die Ergebnisse sofort sehen. Bei Blockchain dreht sich alles um die langfristige Perspektive. Erwarten Sie in weniger als einem Jahr keine Ergebnisse.

Auf der anderen Seite sollten Sie Blockchain in den folgenden Fällen versuchen:

  • Sie möchten Investitionen erhalten. Da Blockchain ein Modewort ist, zieht es mehr Investitionen an als jedes andere versprochene Feature.
  • Sie wollen Ihre Wettbewerbsfähigkeit auf dem Markt steigern. Wenn Sie ein Finanzprodukt auf Blockchain aufbauen, werden Sie Ihre Kompetenz in diesem Bereich unter Beweis stellen. Dies erhöht die Attraktivität Ihres Unternehmens für Investoren und Kunden.
  • Sie können sich Experimente leisten. Entscheiden Sie sich im Gegensatz zu dem, was ich oben geschrieben habe, für Ihr Budget, wenn Sie Blockchain-Entwickler einstellen können und eine starke Vision für Ihr zukünftiges Produkt haben.

Um zu beweisen, dass Blockchain nicht wirklich so schwierig ist, gebe ich Ihnen schrittweise Anweisungen zum Erstellen.

Anwendung der Blockchain in der Fintech

Zu verwendende "Frameworks"

CryptoNote

CryptoNote ist eine Open-Source-Technologie, mit der Sie Token erstellen können. Es enthält eine einfache Anleitung zum Erstellen einer Kryptowährung. Zum Starten sind zwei Knoten erforderlich, die Sie zum Ausführen des Monero-Servers verwenden.

Nützliche Links:

So erstellen Sie ein Token., So erstellen Sie eine Brieftasche

Äther

Eine offene Plattform zum Erstellen von dezentralen Apps mit dem Schwerpunkt auf der Ausführung des Programmcodes. „… Anwendungen, die genau so laufen, wie sie programmiert wurden, ohne Ausfallzeiten, Zensur, Betrug oder Eingriffe Dritter.“

ZeroNet

Verwenden Sie ZeroNet, um dezentrale Websites zu erstellen. Das System verwendet die Adressierungs- und Überprüfungsmechanismen von Bitcoin und das Netzwerk für die Verteilung von BitTorrent-Inhalten, um Websites zu erstellen, die nicht zensiert, blockiert oder gefälscht werden können.

So erstellen Sie eine einfache Blockchain

Nachdem Sie nun die Tools kennen, können Sie eine einfache Blockchain erstellen. In diesem Beispiel verwende ich Python. Zunächst erkläre ich die Kernelemente, die zum Erstellen eines Blocks erforderlich sind.

Erstelldatum

Es ist die aktuelle Uhrzeit im Unix-Format. Sie werden es später benötigen. Wenn Sie über viele aktive Knoten verfügen und Ihrem Zweig einen neuen Block hinzufügen, wählt der Knoten den zu verwendenden Block basierend auf dem Erstellungsdatum aus.

Nonce

Es handelt sich um eine Reihe von Symbolen, die dem Block hinzugefügt werden müssen, um die Prüfsumme zu erstellen, die der Anforderung entspricht. Wenn zum Beispiel der Nonce-Wert 5 ist, müssen wir dem Datenblock 5 Nullen (00000) hinzufügen, um die richtige Prüfsumme zu berechnen.

Prüfsumme

Es handelt sich um Blockdaten mit Nonce plus Prüfsumme des vorherigen Blocks. SHA256 schützt die Kette vor dem Umschreiben. So funktioniert es: Node berechnet die Prüfsumme und vergleicht sie mit dem neuen Block. Wenn sie übereinstimmen, wird der Block zur Blockchain hinzugefügt.

Daten

Ein Datenelement, das in einem Block gespeichert und signiert wird. Es kann jede Art von Daten enthalten: eine Liste von Transaktionen (nicht nur die letzte Transaktion); die Informationen über den Computer, der den Block erstellt hat (wie seine MAC-Adresse); ein detailliertes Erstellungsdatum (die Zeitzone).

Arbeitsnachweis

Proof of Work (PoW) ist ein einzigartiger Konsensus-Algorithmus in einem Blockchain-Netzwerk. Es wird verwendet, um die Operationen und die Erstellung neuer Ketten in der Blockchain zu validieren. Die Hauptidee von PoW besteht darin, den Aufbau eines Blocks auf der Clientseite komplexer zu gestalten und die Belastung auf der Serverseite zu verringern. Ich sage zum Beispiel, dass die Prüfsumme 5 führende Nullen haben muss. es bedeutet, dass wir nonce erhöhen, bis die Prüfsumme 5 führende Nullen hat.

Beginnen wir mit einem Code

Zuerst erstelle ich eine Klasse für einen Block. Es wird eine sehr einfache Klasse mit einem Konstruktor sein - eine Methode zum Berechnen der Prüfsumme und der Eigenschaft, um zu überprüfen, ob der Block gültig ist. Wir haben zwei Konstanten, eine für die Anzahl der führenden Nullen in der Prüfsumme und die zweite, um zu identifizieren, welches Symbol wir mit dem Nonce verwenden.

Importzeit
aus hashlib import sha256
 
Klasse Block:
    CHECKSUM_LEAD_ZEROS = 5
    NONCE_SYMBOL = 'Z'
 
    def __init __ (self, prev_block, data):
        self._prev_block = prev_block
        self.data = data
        self.checksum = Keine
        self.nonce = 0
        self.timestamp = time.time ()
 
    @Eigentum
    def is_valid (self):
        checksum = self.calculate_checksum ()
 
        Rückkehr (
            Prüfsumme [: self.CHECKSUM_LEAD_ZEROS] == '0' * self.CHECKSUM_LEAD_ZEROS
            und Prüfsumme == self.checksum
        )
 
    def berechne_checksumme (selbst):
        data = '|' .join ([
            str (self.timestamp),
            self.data,
            self._prev_block.checksum,
        ])
        data + = self.NONCE_SYMBOL * self.nonce
 
        return sha256 (Bytes (Daten, 'utf-8')). hexdigest ()

Konstrukteur

Der Konstruktor akzeptiert nur 2 Parameter - der erste ist der vorherige Block und der zweite sind die aktuellen Blockdaten. Der Konstruktor erstellt auch die Zeitmarke und setzt nonce als Anfangswert auf Null.

Ist gültig

Eine Eigenschaft, die die Prüfsumme berechnet und vergleicht, ob die aktuelle gleich der berechneten ist und die richtige Anzahl von Nullen aufweist.

Prüfsumme berechnen

Die komplizierteste Methode in unserem Code. Diese Methode packt die Zeitmarke, die Daten und die Prüfsumme des vorherigen Blocks in eine Zeichenfolge. Dann fügen wir eine Nonce-Zeichenfolge hinzu. In unserem Fall handelt es sich um eine Liste mit "Z". Dann berechnet es die Prüfsumme der Ergebniszeichenfolge.

Jetzt haben wir einen einfachen aber funktionalen Block. Lass uns weitermachen und eine Kette von Blöcken erstellen. Vorerst wird eine einfache Kette ohne die Möglichkeit zum Speichern und Laden von Daten funktionieren.

Importieren Sie JSON
 
klasse Kette:
 
    def __init __ (self):
        self._chain = [
            self._get_genesis_block (),
        ]
 
    def is_valid (self):
        prev_block = self._chain [0]
        für Block in self._chain [1:]:
            Aktivieren Sie prev_block.checksum == self._prev_block.checksum
            assert block.is_valid ()
            prev_block = block
 
    def add_block (self, data):
        block = Block (self._chain [-1], Daten)
        block = self._find_nonce (block)
        self._chain.append (Block)
 
        Rückgabeblock
 
    @staticmethod
    def _get_genesis_block ():
        genesis_block = Blockieren (keine, keine)
        genesis_block.checksum = '00000453880b6f9179c0661bdf8ea06135f1575aa372e0e70a19b04de0d4cbc7'
 
        return genesis_block
 
    @staticmethod
    def_find_nonce (block):
        beginn = '0' * Block.CHECKSUM_LEAD_ZEROS
        während wahr:
            checksum = block.calculate_checksum ()
            if Prüfsumme [: Block.CHECKSUM_LEAD_ZEROS] == Beginn:
                brechen
            block.nonce + = 1
        block.checksum = Prüfsumme
 
        Rückgabeblock

Werfen wir einen Blick auf die Methoden in unserer Kettenklasse:

Konstrukteur

Ich habe eine Kette mit nur einem Block erstellt - einem Genesis-Block. Der Genesis-Block ist der erste Block der Kette und hat nur eine Prüfsumme. Dieser Block ist erforderlich, um den ersten reellen Block zur Kette hinzuzufügen, da der reelle Block die Prüfsumme des letzten Blocks in der Kette benötigt.

Hinzufügen eines neuen Blocks

Es gibt nur einen Parameter - Daten für einen neuen Block. Diese Methode erstellt einen neuen Block mit den angegebenen Daten und führt die Methode aus, um den richtigen Nonce-Wert zu finden. Erst dann wird ein neuer Block an die Kette angehängt.

Finde die Nonce

Diese Methode zielt darauf ab, die richtige Nonce für einen Block zu finden. Es gibt eine Endlosschleife, in der ich die Nonce erhöhe und eine neue Prüfsumme berechne. Dann vergleicht es die Prüfsumme mit den Regeln - im Moment ist es nur die Anzahl der Nullen.

Überprüfen Sie die Kette

Diese Methode zeigt, ob die Kette gültig ist - Sie durchläuft alle Blöcke in der Kette und überprüft jeden Block einzeln.

Endeffekt

Die Hauptbotschaft, die ich vermitteln wollte, lautet: Blockchain ist eine junge Technologie, aber wir haben alles, um sie zu studieren. Blockchain hat seine beste praktische Anwendung in der Fintech-Branche gefunden und kann Unternehmen dabei helfen, die Informationen zu schützen, die Geschwindigkeit der Datenübertragung zu erhöhen und vor allem den Faktor Mensch auszuschließen.

Um zu lernen, wie man eine Blockchain erstellt, studiere meine Codebeispiele, schreibe sie in deiner bevorzugten Sprache und versuche, damit zu spielen. Wer weiß, vielleicht wird Ihr Produkt der nächste Game Changer?

Seien Sie gespannt auf den nächsten Teil über Blockchain und Fintech, mit komplexeren Codeteilen und Vorschlägen zur praktischen Anwendung in der Fintech.

Dieser Artikel über Blockchain für Fintech-Produkte wurde von Vadym Zakovinko - Backend Engineer bei Django Stars geschrieben.
Wenn Sie diesen Beitrag nützlich finden, tippen Sie bitte auf unten :)