Am 11. und 12. Mai 2018 beschlossen das 8base-Team in der Person von Evgeny Semushin, Gabe Kelly und mir, meine Stärke zu testen und beim
Consensus 2018- Hackathon, der in New York stattfand, um den AlphaPoint-Preis zu kämpfen. Insgesamt nahmen 33 Teams am Hackathon teil, und zu seinen Sponsoren gehörten Giganten wie CoinDesk, Microsoft, IBM, Hyperledger und Quorum.

Beim AlphaPoint-Wettbewerb war es notwendig, eine Anwendung zu schreiben, die an einen Kryptowährungsaustausch gebunden war, und wir hofften, dass meine Erfahrung in einem Hedgefonds sehr nützlich sein würde. Wir wollten mehr als nur ein Front-End für die vorhandene Blockchain-Lösung erstellen. Unser Ziel war es, das eigentliche Problem zu lösen, indem wir die einzigartigen Fähigkeiten der Blockchain-Architektur, unsere eigenen Erfahrungen bei der Entwicklung intelligenter Verträge und das Wissen über die internen Mechanismen der Finanzen anwenden.
Wir haben im Ethereum-Netzwerk eine Reihe intelligenter Verträge erstellt, mit denen Sie dezentrale Derivate erstellen und deren Bereitstellung auf der Grundlage der Blockchain verwalten können. Mit unserer Lösung kann jeder Benutzer ein Garant im Rahmen eines Vertrags über den Verkauf oder Kauf eines ERC20-Vermögenswerts werden, ohne dass die Anforderungen und deren Erfüllung extern verwaltet werden müssen. Als Ergebnis haben wir den Hauptpreis gewonnen.
Unter dem Schnitt die Nuancen der Umsetzung dieses Projekts.
Das Problem
Derivate sind eine ernste Sache. Die Kapitalisierung des globalen Derivatemarktes wird auf fast 500 Billionen US-Dollar geschätzt. Wenn Sie dies mit dem Kryptowährungsmarkt (ca. 0,4 Billionen USD), Bargeld (ca. 40 Billionen USD) und dem globalen Aktienmarkt (ca. 70 Billionen USD) vergleichen, wird deutlich, wie wichtig die Rolle von Derivaten für die Weltwirtschaft ist. Schauen Sie sich einfach diese
Infografik an . Banken, Fonds und Unternehmen setzen Optionen, Futures, Swaps und andere Derivate aktiv ein, um das Risiko zu steuern.

Marktkapitalisierung verschiedener Vermögenswerte:
- Krypto - Kryptowährungen
- Flüssiges Geld - Bargeld
- Globale öffentliche Aktienmärkte - globaler Aktienmarkt
- Derivate - Derivate
Die Hauptschwierigkeit bei Derivatkontrakten besteht darin, dass sie normalerweise eine Hebelwirkung einsetzen, da die potenziellen Risiken höher sind als die Beträge, über die die Parteien tatsächlich verfügen. Aus diesem Grund entstehen ein komplexes System der gegenseitigen Abwicklung sowie Anforderungen an eine Mindestmarge und Anträge auf Erhöhung der Marge: Die Höhe der Sicherheiten muss so bleiben, dass der Ausstieg aus der Transaktion immer teurer ist als ihre Ausführung.
All dies brach 2008 zusammen. In die Komplexität von Derivatkontrakten verwickelt, verloren die Wall Street-Spieler die Kontrolle über die Situation. Infolgedessen wirkte der „Dominoeffekt“: Eine Flut von Anfragen nach steigenden Margen und die Unfähigkeit, diese zu erfüllen, führten zum Zusammenbruch von Lehman Brothers und anderen Spielern. Die US-Regierung musste einspringen und als Garantin der Wall Street für die gigantischen Beträge ausstehender Kontrakte für Derivate fungieren. Wir alle wissen, wozu das führte ...
Lösung

BlockSigma ist eine Reihe intelligenter Verträge zum Organisieren von Transaktionen mit Kryptowährungsderivaten und zum Verwalten solcher Transaktionen. Das Sicherheitenmanagement basiert auf der Blockchain. Um die Einhaltung der Mindestmargenanforderungen für im Smart-Vertrag erfasste Fonds sicherzustellen, ist kein Vermittler erforderlich.
Die Hauptinnovation ist das Margenmanagement, das vollständig auf der Blockchain basiert, ohne zentralisierte Kontrolle und den vorhergesagten Kursfluss. Dazu haben wir das
Bancor- Protokoll integriert. Das Bancor-Protokoll wird bereits für Millionen von Dollar im Börsenhandel und im täglichen Dienstleistungsgeschäft aktiv implementiert. Bancor verwendet eine deterministische Preisfunktion, die auf dem Verhältnis von Angebot und Nachfrage für einen bestimmten Vermögenswert basiert. Dementsprechend kann der Preis des Basistokens direkt in der Blockchain bestimmt werden, wodurch Sie die Anforderungen für die Mindestmarge genau formulieren und rechtzeitig Anforderungen für die Erhöhung der Margen erstellen können.
Die Logik von Smart Contracts ist so konzipiert, dass der Optionskäufer die Position zwangsweise schließt, sobald die Sicherheiten im Smart Contract unter die obligatorische Mindestmargenanforderung fallen. Die Funktion zur Bestimmung der Mindestmarge berücksichtigt die Überschussreserve, was für den Optionskäufer wirtschaftliche Anreize schafft, die Position genau zu überwachen und diese Reserve (zusammen mit dem Überschuss) zu erhalten, wenn er im Falle eines Verstoßes gegen die Mindestmargenanforderung zum Schließen gezwungen wird. Der Verkäufer (Garantiegeber) der Option hat wiederum wirtschaftliche Anreize, die Sicherheiten rechtzeitig aufzufüllen, wenn die Transaktion nicht erfolgreich ist, um die überschüssige Reserve nicht zu verlieren.
Implementierung

Der vollständige Lösungsquellcode wird im
GitHub-Repository veröffentlicht .
Die Lösung besteht aus drei Haupt-Solidity-Dateien: BlockSigmaBase.sol, BlockSigmaCall.sol und BlockSigmaPut.sol. BlockSigmaBase implementiert eine gemeinsame Logik, während BlockSigmaCall und BlockSigmaPut diese erben und die Logik von Verträgen für den Kauf bzw. Verkauf implementieren.
So sieht die Vertragsoberfläche aus:
contract BlockSigmaBase is StandardToken { /** * @dev Constructor * @param _underlyingTokenAddress address of the underlying ERC20 token. * @param _currencyTokenAddress address of the currency ERC20 token. * @param _strike option strike denominated in the currency token. * @param _exp expiration timestamp. * @param _minReserve minimum (excess) reserve * @param _underlyingBancorConverter address of the Bancor converter contract that converts underlying token into BNT. * @param _currencyBancorConverter address of the Bancor converter contract that converts currency token into BNT. * @param _issuer address that is allowed to issue(underwrite) new contracts. */ function BlockSigmaBase(address _underlyingTokenAddress, address _currencyTokenAddress, uint256 _strike, uint256 _exp, uint256 _minReserve, address _underlyingBancorConverter, address _currencyBancorConverter, address _issuer) public; /** * @dev get the required maintenance margin level in currency token. */ function getRequiredReserve() public view returns (uint256); /** * @dev Get price of the underlying token expressed in currency token from Bancor */ function getUnderlyingPrice() public view returns (uint256); /** * @dev Ability for writer to issue(underwrite) new contracts * @param amount how many contracts to issue (in wei). */ function issue(uint256 amount) public onlyIssuer returns (bool); /** * @dev Buyer can exercise the option anytime before the maturity. Buyer deposits currency(call) or underlying tokens(put). */ function exercise() public returns (bool); /** * @dev Writer delivers the underlying tokens(call) or currency(put). * @param to which buyer to deliver to. */ function deliver(address to) public onlyIssuer returns (bool); /** * @dev Buyer can force liquidation if exercise is past due or reserve is below requirement */ function forceLiquidate() public returns (bool); /** * @dev Writer can deposit additional reserve * @param amount how much currency token to deposit. */ function depositReserve(uint256 amount) public returns (bool); /** * @dev Writer can withdraw reserve * @param amount how much currency token to withdraw. */ function withdrawReserve(uint256 amount) public onlyIssuer returns (bool); /** * @dev Is reserve below the requirement? */ function isReserveLow() public view returns (bool); /** * @dev Is option series expired? */ function isExpired() public view returns (bool); /** * @dev Can option be liquidated? */ function canLiquidate() public view returns (bool); }
Betrachten Sie nun die grundlegenden Workflows für einen Kaufvertrag. Nehmen Sie zum Beispiel einen Vertrag über den Verkauf von auf DAI lautenden EOS-Token, mit dem Sie Vermögenswerte in EOS effektiv gegen den US-Dollar absichern können. Der Lebenszyklus eines solchen Vertrags ist wie folgt:
- Jeder Benutzer kann einen BlockSigmaPut-Vertrag für eine bestimmte Ausgabe von Optionen veröffentlichen . Bei der Veröffentlichung müssen Sie Folgendes angeben: (1) den Basis-Token, (2) den Währungstoken, (3) das Ablaufdatum, (4) den Streik, (5) die Adresse des Emittenten, der als Garant für die Verträge in dieser Ausgabe fungieren darf, und (6) die Mindestreservepflicht unter dem Vertrag. Beispiel: Verkauf von EOS vor dem 1. Juli 2018 mit einem Streik von 10 DAI und einer Mindestreserve von 2 DAI. Ein solcher Vertrag gibt dem Käufer das Recht, EOS jederzeit bis zum 1. Juli 2018 für 10 DAI an den Garantiegeber zu verkaufen. Die Mindestmargenanforderung für jeden Vertrag beträgt in diesem Fall 2 + max (0, 10 - aktueller EOS-Preis).
- Der angegebene Emittent fungiert als Garant für eine bestimmte Anzahl von Kontrakten und platziert die erforderliche Reserve in einem Währungstoken. Für das obige Beispiel muss der Emittent beim aktuellen EOS-Marktpreis von 12 USD 2 + max (0, 10 - 12) = 2 DAI platzieren, um 1 Optionskontrakt auszugeben. Ausgestellte Kontrakte gelten als normale ERC20-Token, mit denen sie an der Börse zum Verkauf angeboten werden können.
- Der Käufer, der den Vertrag erfüllen möchte, muss die Erlaubnis erteilen, die EOS auf den Smart-Option-Vertrag zu übertragen, und dann die Ausübungsmethode aufrufen. Nach Beginn der Vertragsabwicklung hat der Verkäufer 24 Stunden Zeit, um die Zahlung in einem Währungstoken zu überweisen. In unserem Beispiel muss der Verkäufer 10 DAI für jeden EOS-Token angeben.
- Der Emittent erteilt die Erlaubnis, DAI-Token von seinem Konto auf den Smart-Option-Vertrag zu übertragen, und ruft die Übermittlungsmethode auf. Ein ausgeführter Smart-Vertrag regelt die Transaktion automatisch: Überträgt DAI und EOS an den Käufer bzw. Verkäufer (Emittent), und die Reserve wird an den Verkäufer zurückgegeben.
- (Optional) Wenn der Verkäufer die Zahlung nicht innerhalb von 24 Stunden geleistet hat, kann der Käufer die forceLiquidate-Methode aufrufen, um die platzierte EOS zusammen mit der Reserve zurückzugeben und die falschen Handlungen des Verkäufers abzudecken.
Überlegen Sie nun, wie das Sicherheitenmanagement implementiert ist. In unserem Beispiel betrug der Preis von EOS zum Zeitpunkt der Ausgabe des Optionskontrakts 12 USD. Angenommen, sie ist auf 9 Dollar gefallen. Dann beträgt die erforderliche Reserve 2 + max (0, 10 - 9) = 3. Dies bedeutet, dass der Verkäufer zusätzlich 1 DAI für jeden Vertrag hinterlegen muss, unter dem er als Garant fungiert. Wenn der Verkäufer dies nicht kann, hat der Käufer einen wirtschaftlichen Anreiz, die Position gewaltsam zu schließen:
- Wenn der Käufer von der Option Gebrauch macht, erhält er für jeden Kontrakt eine Zahlung von 10 - 9 = 1 DAI (d. H. Er kauft EOS auf dem Markt für 9 USD und verkauft es für 10 USD an den Emittenten).
- Wenn der Käufer andererseits die Position zwangsweise schließt, erhält er die gesamte Reserve, die in unserem Beispiel 2 DAI für jeden Vertrag beträgt.
Dies motiviert den Käufer, Positionen so früh wie möglich zu schließen, um schnell einen Gewinn zu erzielen.
Schwierigkeiten
Dies ist keineswegs eine vorgefertigte Lösung. Hauptziel ist es, die bahnbrechenden Fähigkeiten von Blockchain- und Smart-Verträgen zur Automatisierung der gegenseitigen Abwicklung und zur Verwaltung der Bereitstellung von Optionsverträgen aufzuzeigen. Traditionell werden diese Dienstleistungen von Vermittlern erbracht und erfordern auch manuelle Arbeit und die Zahlung von Provisionen.
Obwohl unsere Lösung in dieser Hinsicht sehr vielversprechend ist, sehen wir eine Reihe schwerwiegender Schwierigkeiten:
- Das Bancor-Protokoll wurde nicht unter strengen Bedingungen getestet. Es verwendet eine deterministische Preisfunktion, die durch Schiedsverfahren zu Wechselkursen konvergiert. Es ist noch nicht klar, wie dieser Mechanismus mit viel größerer Volatilität und / oder mit gravierenden Preisunterschieden funktionieren wird.
- Der Mechanismus zur Verwaltung von Sicherheiten ist instabil gegenüber starken Preisunterschieden. Theoretisch ist eine Situation möglich, in der die Haftung des Bürgen die Rückstellung übersteigt, aufgrund derer die Bürgschaft die Transaktion abbrechen möchte und der Käufer keine vollständige Entschädigung erhält. Um dies zu vermeiden, können Sie die Mindestreserve erhöhen. Darüber hinaus können Sie dies auf herkömmliche Weise tun: Benutzer des Systems zahlen Geld in einen verteilten „Versicherungspool“ ein, der in Ausnahmefällen automatisch Engpässe abdeckt.
- Da Bancor eine deterministische Preisfunktion verwendet, sind verschiedene Manipulationen möglich, um die Zahlungen an eine Seite des Optionskontrakts zum Nachteil der anderen zu erhöhen. Dies kann nur mit einer kleinen Reserve des Bancor-Wandlers (d. H. Mit hoher Preisempfindlichkeit) im Verhältnis zur Anzahl der Optionspositionen geschehen. In diesem Fall kann sich eine Preismanipulation in Bancor als rentabler herausstellen als Optionszahlungen, die sich aus einer solchen Manipulation ergeben. Dieses Problem ist jedoch nicht nur für Kryptowährungen typisch, sondern auch für traditionelle Märkte (z. B. das Anzünden eines Versicherungshauses).
- Unsicherheit in der Regulierung. Wir haben regulatorische Aspekte nicht untersucht, da unser Projekt bisher nur Forschungsziele verfolgt.
Wenn Sie Probleme bemerken, die nicht aufgeführt sind, schreiben Sie darüber in den Kommentaren.
Schlussfolgerungen
Die allgemein beschriebene Lösung spiegelt die grundlegenden Änderungen wider, die die Blockchain in den kommenden Jahren für die Finanzbranche mit sich bringen wird. Neben einer effektiveren Abwicklung und Sicherheitenverwaltung wird diese Technologie transparente, sich selbst erfüllende und einheitliche Regeln für alle Marktteilnehmer einführen.
Unser 8base-Team ist nicht auf die in diesem Artikel beschriebenen Nischenlösungen und -protokolle spezialisiert. Wir erwarten in den kommenden Jahren ein explosives Wachstum ähnlicher revolutionärer Technologien auf der Welle der digitalen Transformation. Dementsprechend konzentrieren wir uns auf den Aufbau der nächsten Infrastrukturebene, um Geschäftsbenutzern einen einfachen Zugang zu diesen Technologien zu ermöglichen und sie in Unternehmenssoftware zu integrieren, um Geschäftsziele zu erreichen.
GitHub- Quellen