Als Aave (ehemals ETHLend) Ambassador organisierte ich 2018 mehrere Meetups in Deutschland, bei denen Stani Kuchelov (CEO von Aave) das Thema „Digital asset backed lending“ vorstellte. Nun sind knapp zwei Jahre vergangen und in der Zwischenzeit hat sich einiges getan im Crypto-Finanzmarkt. Decentralized Finance (DeFi) ist seit dem Start von 2020 der Trend. Doch was ist überhaupt DeFi?
Dieser Blogpost leitet unsere Meetup-Serie ein zum Thema Decentralized Finance (DeFi). In den nächsten Meetups werden wir auf die Grundlagen eingehen und uns immer weiter und tiefer in das Thema herantasten. Das erste Meetup findet wieder virtuell statt. Du bist eingeladen am 26. Mai um 18:30 Uhr teilzunehmen. Registrieren kannst du dich wie immer auf unserer meetup.com Eventseite.
Ein Sneak-Peak: Wir haben bereits über meine Kontakte bei Aave eine Teilnahmezusage für unsere DeFi-Meetup-Serie erhalten. Ein Aave Teammitglied wird uns das Aave-Protokoll vorstellen! Werde Mitglieder auf meetup.com und abonniere unseren Newsletter sobald wir die Agenda und Termin haben.
Die Geschichte von Decentralized Finance
Am 7. Oktober 2019 stellte Felix Feng von Set Protocol auf der „WTF is DeFi“ Konferenz in Osaka die Geschichte von DeFi vor. In seiner Story erzählte er wie er mit seinem Startup und wenigen anderen an einem neuen Finanzsystem tüftelt.
Alles begann vor etwa eineinhalb Jahren, als wir noch ein junges Start-up waren. Wir arbeiteten hart an der Erstellung eines Protokolls, stellten uns den regulatorischen Herausforderungen und suchten nach marktgerechten Produkten. Bald waren wir mit vielen der Projekte in San Francisco vertraut, wir hingen mit den 0x-Jungs, Dharma und DyDx, herum.
Story of DeFi: How it Started, Where It Stands Now, DeFi Definition Revisited
Die gesamte Präsentation „Story of Defi“ ist öffentlich als Google Slide erhältlich. Laut seiner Geschichte hat die DeFi-Bewegung irgendwann im April 2018 gestartet. Du siehst, seit der Entstehung sind knapp 2 Jahre vergangen. Ein sehr frisches Gebiet, das sich meiner Meinung nach in den nächsten Jahren stark weiterentwickeln wird!
Aber was ist denn nun Decentralized Finance? Bevor wir das beantworten, lasst uns mit dem Warum beginnen? Warum wollte eine Gruppe von Entwicklern ein neues Finanzsystem erfinden?
Die DeFi-Bewegung hat eine gemeinsame Vision. Sie möchten ein System entwickeln ohne Intermediäre. Ein System, das fairer und transparenter ist als das aktuelle Finanzsystem. Das sind Kerneigenschaften, die du auf unserer Blockchain Grundlagen Seite nochmal nachlesen kannst. Es geht also um Permissionlessness, Dezentralität, Transparenz und Sicherheit.
Als kleine Community, die in San Fransisco gestartet hat, realisierten Felix Feng & Co., dass sie nur ein Puzzle-Stück sind. Sie bemerkten schnell, dass sie alleine ihre Ziele nicht erreichen können. Zu diesem Zeitpunkt gab es keine gemeinsamen Foren für den Austausch und keine physischen Orte, um andere von ihrer Vision zu begeistern. Aus diesem Grund setzten sie sich zwei Ziele:
1.) Die DeFi-Bewegung bekannter zu machen und
2.) andere zu unterstützen die dringenden Herausforderungen der Finanzindustrie zu lösen.
Aus dieser Vision entstand die DeFi-Bewegung.
Warum ist Decentralized Finance interessant?
Die Gründe warum DeFi interessant ist, sind nicht neu. Falls du dich schon länger mit public Blockchains beschäftigt hast, sind dir die Kerneigenschaften wie Transparenz, Permissionless, Nicht durch eine Institution verwaltet usw. der Technologie bekannt. DeFi möchte diese Kerneigenschaften mit Finanzprodukten „fassbarer“ machen.
1. Globaler Zugang
DeFi möchte globalen Zugang zu Finanzprodukten ermöglichen. Jeder Mensch auf der Welt hat die Freiheit und Möglichkeit Finanzdienstleistungen zu nutzen, unabhängig seiner Herkunft und Vorgeschichte. Es gibt kein Credit-Scoring oder erschwerte Prozesse, um im offenen Finanzsystem teilzunehmen. Es geht also um Financial Inclusion. Übrigens: Chainist hat im Jahr 2018 ein Meetup in Frankfurt zum Thema Financial Inclusion organisiert!
2. Höhere Effizienz
Du hast es sicherlich schon selbst erlebt oder davon gehört. Lange Wartzeiten am Telefon bei der Versicherung, langwieriger Prozess bis du einen Kredit erhältst, komplexe Investitionswege in Aktien oder Unternehmen. Einige dieser Prozesse lassen sich mit Smart Contracts abbilden und ermöglichen Vorgänge voll- oder teilautomatisiert zu durchlaufen. Das spiegelt sich in den Kosten und der User Experience wider. DeFi möchte am liebsten das Finanzsystem neu erfinden und Altlasten bei Seite schieben, die dem Kunden keinen Mehrwert bringen.
3. Stärkere Transparenz
Der Quellcode von Smart Contracts ist einsehbar für jeden. Schau dir einfach mal auf Etherscan den ERC-20 Smart Contract von ETHLend an. Das Beispiel zeigt was ich hier mit „einsehbar“ meine. Jeder kann theoretisch evtl. Fehler im Code erkennen und entsprechend öffentlich kritisieren oder anmerken. Smart Contracts können somit verbessert werden. Zudem stärkt diese Transparenz das Vertrauen in das Finanzprodukt, da das Versprochene in einem Dokument sich in Zahlen und Logik des Smart Contract für dich nachprüfbar wäre. Das Vertrauen in die Entwickler oder der Organisation ist natürlich eine andere Sache. Ich spreche hier vorrangig über den Quellcode. Nachfolgend siehst du einen Auszug des ETHLend Smart Contracts. Klappe den Quelltext auf und schaue diesen gerne durch.
contract EthLendToken is StdToken
{
/// Fields:
string public constant name = "EthLend Token";
string public constant symbol = "LEND";
uint public constant decimals = 18;
// this includes DEVELOPERS_BONUS
uint public constant TOTAL_SUPPLY = 1300000000 * (1 ether / 1 wei);
uint public constant DEVELOPERS_BONUS = 300000000 * (1 ether / 1 wei);
uint public constant PRESALE_PRICE = 30000; // per 1 Ether
uint public constant PRESALE_MAX_ETH = 2000;
// 60 mln tokens sold during presale
uint public constant PRESALE_TOKEN_SUPPLY_LIMIT = PRESALE_PRICE * PRESALE_MAX_ETH * (1 ether / 1 wei);
uint public constant ICO_PRICE1 = 27500; // per 1 Ether
uint public constant ICO_PRICE2 = 26250; // per 1 Ether
uint public constant ICO_PRICE3 = 25000; // per 1 Ether
// 1bln - this includes presale tokens
uint public constant TOTAL_SOLD_TOKEN_SUPPLY_LIMIT = 1000000000* (1 ether / 1 wei);
enum State{
Init,
Paused,
PresaleRunning,
PresaleFinished,
ICORunning,
ICOFinished
}
State public currentState = State.Init;
bool public enableTransfers = false;
address public teamTokenBonus = 0;
// Gathered funds can be withdrawn only to escrow's address.
address public escrow = 0;
// Token manager has exclusive priveleges to call administrative
// functions on this contract.
address public tokenManager = 0;
uint public presaleSoldTokens = 0;
uint public icoSoldTokens = 0;
uint public totalSoldTokens = 0;
/// Modifiers:
modifier onlyTokenManager()
{
require(msg.sender==tokenManager);
_;
}
modifier onlyInState(State state)
{
require(state==currentState);
_;
}
/// Events:
event LogBuy(address indexed owner, uint value);
event LogBurn(address indexed owner, uint value);
/// Functions:
/// @dev Constructor
/// @param _tokenManager Token manager address.
function EthLendToken(address _tokenManager, address _escrow, address _teamTokenBonus)
{
tokenManager = _tokenManager;
teamTokenBonus = _teamTokenBonus;
escrow = _escrow;
// send team bonus immediately
uint teamBonus = DEVELOPERS_BONUS;
balances[_teamTokenBonus] += teamBonus;
supply+= teamBonus;
assert(PRESALE_TOKEN_SUPPLY_LIMIT==60000000 * (1 ether / 1 wei));
assert(TOTAL_SOLD_TOKEN_SUPPLY_LIMIT==1000000000 * (1 ether / 1 wei));
}
function buyTokens() public payable
{
require(currentState==State.PresaleRunning || currentState==State.ICORunning);
if(currentState==State.PresaleRunning){
return buyTokensPresale();
}else{
return buyTokensICO();
}
}
function buyTokensPresale() public payable onlyInState(State.PresaleRunning)
{
// min - 1 ETH
require(msg.value >= (1 ether / 1 wei));
uint newTokens = msg.value * PRESALE_PRICE;
require(presaleSoldTokens + newTokens <= PRESALE_TOKEN_SUPPLY_LIMIT);
balances[msg.sender] += newTokens;
supply+= newTokens;
presaleSoldTokens+= newTokens;
totalSoldTokens+= newTokens;
LogBuy(msg.sender, newTokens);
}
function buyTokensICO() public payable onlyInState(State.ICORunning)
{
// min - 0.01 ETH
require(msg.value >= ((1 ether / 1 wei) / 100));
uint newTokens = msg.value * getPrice();
require(totalSoldTokens + newTokens <= TOTAL_SOLD_TOKEN_SUPPLY_LIMIT);
balances[msg.sender] += newTokens;
supply+= newTokens;
icoSoldTokens+= newTokens;
totalSoldTokens+= newTokens;
LogBuy(msg.sender, newTokens);
}
function getPrice()constant returns(uint)
{
if(currentState==State.ICORunning){
if(icoSoldTokens<(200000000 * (1 ether / 1 wei))){
return ICO_PRICE1;
}
if(icoSoldTokens<(300000000 * (1 ether / 1 wei))){
return ICO_PRICE2;
}
return ICO_PRICE3;
}else{
return PRESALE_PRICE;
}
}
}
Mit der Transparenz kommen jedoch auch Nachteile. Böswillige Entwickler könnten Sicherheitslücken früher erkennen und diese für sich ausnutzen. Das kennen wir aus einigen Hacks der Vergangenheit. Unternehmen haben seit dem ICO-Boom im Jahre 2017 gelernt. DeFi-Protokolle dokumentieren transparent ihre Smart Contracts Entwicklung und Audits. Wie so ein Audit aussehen kann findest du zum Beispiel auf der Aave Sicherheits- und Audit-Dokumentationsseite. Hier findest du Links zu Testergebnissen von externen Audit-Dienstleitern Trail of Bits oder OpenZeppelin Security.
4. Flexible Benutzeroberfläche
Stelle dir vor du könntest deinen eigenen Geldautomaten gestalten wie du möchtest. Silberne Tasten sind zu langweilig? Größere Tasten gefälligst? Du stellst deinen Geldautomaten auf die Straße vor deinem Haus und jeder kann es nutzen. Klingt abwägig, doch so funktionieren ungefähr DeFi-Protokolle. Du nutzt die bereitgestellten Programmierbibliothek der Entwickler und baust deine eigene Benutzeroberfläche und „installierst“ deine eigene Dezentrale App (Dapp). Warum das gut ist? Andere Kulturen, andere Sitten und Geschmäcker. Beim Design ist Benutzer nicht gleich Benutzer. Entwickler und Designer sind nun fähig die Oberfläche für Nischen und andere Zielgruppen individuell zu gestalten. Stelle dir vor jeder könnte ein eigenes User Interface (UI) für das Online Banking einer Sparkasse kreieren und nur das beste UI überlebt. Das Motto „Friss oder stirb“ ist passé.
Das ist die Idealvorstellung. Doch aktuell arbeiten DApp-Entwickler an der Aggregation von verschiedenen DeFi-Protokollen, um die Nutzerfreundlichkeit zu erhöhen. Die Herausforderung liegt darin mit einzelnen Lego-Bausteinen ein nutzbares Gesamtwerk zu bauen – bekannt als „Money Lego„.
„The core philosophy of the DeFi space: build for interoperability. This allows the ecosystem to benefit from individual progress, pushing decentralized finance continually forward.„
Quelle: https://medium.com/totle/building-with-money-legos-ab63a58ae764
Was für Decentralized Finance Produkte gibt es?
Felix Feng hat in seinen Slides einen sogenannten DeFi-Stack vorgestellt. Dieser Stack ordnet DeFi-Produkte und Startups in Anwendungsbereiche ein. Auf der Suche nach weiteren „Stacks“ bin ich auf das Paper von Prof. Dr. Fabian Bär gestoßen. Er lehrt an der Universität Basel und hat sich auf DLT und FinTechs spezialisiert. Kürzlich (März 2020) hat er ein Paper veröffentlicht mit dem Titel Decentralized Finance: On Blockchain- and Smart Contract-based Financial Markets. Ich habe seinen Decentralized Finance Stack genommen, etwas hübscher gemacht und leicht angepasst. Schau selbst. Lade es gerne als PDF herunter.
Diese Schaubilder erinnern mich an einer meiner ersten Blogposts über das Web 3.0. Mit den oben gezeigten DeFi-Stacks verschaffst du dir einen Überblick welche Produkte in welchen Finanzbereichen existieren und einzuordnen sind.
Was ist nun Decentralized Finance? Hast du dir ein Bild machen können?
DeFi steht für „decentralized finance“ und bezieht sich auf das Ökosystem aus Finanzanwendungen, die auf Blockchain-Protokollen entwickelt werden.
DeFi kann als die Bewegung definiert werden, die den Einsatz von dezentralisierten Netzwerken und Open-Source-Software fördert, um verschiedene Arten von Finanzdienstleistungen und -produkten zu schaffen. Die Idee besteht darin, DApps auf der Grundlage eines transparenten und vertrauenswürdigen Rahmens zu entwickeln und zu betreiben, wie z.B. permissionless Blockchains und andere Peer-to-Peer (P2P)-Protokolle.
Ich hoffe, du hast nun einen Eindruck erhalten was DeFi bedeutet. DeFi steht immer noch in den Startlöchern, in der Szene spricht man von der Blockchain Native Phase. Es muss weiterhin an der Sicherheit von Smart Contracts gearbeitet werden und die Frage zur Skalierung von Ethereum & Co. bleibt weiterhin unbeantwortet. Wir werden sehen was die Entwickler und Erbauer von heute und morgen uns bringen werden. Es bleibt weiterhin spannend in der Blockchainwelt.
Du möchtest mehr über Decentralised Finance wissen? Nehme an unserem nächsten DeFi-Meetup teil. Wir werden uns spezielle DeFi-Protokolle anschauen und vorstellen. Du bis herzlich willkommen!
Update 28. Mai 2020: Die Videoaufzeichnung zum Decentralized Finance Meetup ist online.