SpankBank v0 Leitfaden
Großartige Neuigkeiten: Heute wurde die SpankBank v0 in Betrieb genommen. Die Smart Contracts wurden in das Ethereum-Hauptnetz eingespeist und die Benutzeroberfläche zum Anlegen von SPANK ist unter bank.spankchain.com erreichbar.
Link zur Aktivierung des Smart Contracts
Und das musst du wissen:
- Obwohl der Smart Contract vollständig ist braucht die Benutzeroberfläche noch etwas Feinschliff. Bisher funktioniert nur die Schnittstelle zum anlegen von SPANK, der Rest des SpankBank Explorers folgt in den nächsten Wochen (Anlegerprofile einsehen, historische Daten, Analysen, etc…)
- Du kannst dein SPANK jederzeit während der kommenden 29 Tage in Periode 0 anlegen um an der Einführungsperiode der SpankPank teilzuhaben. Die nächste Periode, Periode 1, wird am Montag, 31. Oktober um 10:29 PST beginnen (31.10.2018, 19:29 Europäische Sommerzeit)
- BOOTY wird in 30 Tagen aktiviert. Zu Beginn der Periode 1 werden 10.069 BOOTY an alle Anleger der Periode 0 entsprechend ihrer SpankPoints ausgeschüttet (ermittelt anhand des angelegten SPANK und dem Anlagezeitraum, mehr dazu später).
- Wir bereiten das nächste Update der Camsite pünktlich zur BOOTY-Ausschüttung in 29 Tagen vor und werden damit Taschengeldzahlungen in BOOTY ermöglichen. Wir vertrauen auf BOOTY!
- Obwohl wir die Smart Contracts und den Code der SpankBank sorgfältig getestet haben sind wir keine omnipotenten Götter. Falls du irgendeinen Bug findest oder etwas das nur so aussieht, informiere uns bitte und wir werden das Problem so schnell wie möglich beheben.
SPANK anlegen
Es folgt eine Reihe von Screenshots aus der ersten SPANK-Anlage im Ethereum-Hauptnetz. Irgendetwas müssen die Entwickler ja auch tun ;).
Ameen hat sich nicht zu 100% an das Handbuch gehalten aber mach einfach nach was er gemacht hat. Du schaffst das!
Falls das alles überhaupt keinen Sinn ergibt oder du das Projekt gerade erst entdeckt hast: KEINE PANIK! Unser großartiger Bürgerbeauftragter Chase hat eine tolle Übersicht über das Zwei-Token-Modell von SPANK+BOOTY geschrieben mit dem du anfangen kannst.

Zuerst habe ich den SpankBank Explorer unter bank.spankchain.com aufgerufen und habe auf “Stake your SPANK” in der unteren linken Ecke geklickt. Weil ich noch keine Verbindung zu meinem MetaMask-Konto hergestellt habe wurde das kleine graue “Max:” nicht ordentlich geladen und ausgegraut.

Ich habe also den “Connect to MetaMask”-Button angeklickt, er färbte sich pink und die Verbindung wurde bestätigt.

Sobald ich meine MetaMask verbunden hatte zeigte das “Max:” an, wieviel SPANK in meiner Wallet waren. Ich beschloss, 350.000 SPANK für 12 Monate anzulegen, der maximale Anlagezeitraum.
Ein kleiner Hinweis: 1 SpankBank-Periode = 30 Kalendertage, nicht ganz 1 Monat. Die Perioden perfekt in Solidity mit den Kalendermonaten zu synchroniseren stellte sich als überaus schwierig heraus also beschlossen wir, das bleiben zu lassen. Das bedeutet das wir, obwohl die Perioden etwa den Kalendermonaten entsprechen weil wir am 01. September begonnen haben, im Laufe der Zeit ein paar Tage vor Ende des Kalendermonats eine neue Periode beginnen werden.
Bevor es weitergeht habe ich noch auf den “Settings”-Button geklickt:

Hier können optional noch eine Delegate Address und eine Booty Address gesetzt werden. Als Anleger ist es notwendig das du dich einmal pro Periode eincheckst [checkIn] um in der nächsten Periode [claimBooty] aufrufen zu können. Wir bieten Anlegern zusätzliche Sicherheitsmaßnahmen ermöglichen, z.B. das Anlagekonto im kalten Speicher aufzubewahren und stattdessen ein separates delegiertes Konto zu benutzen um [checkIn] und [claimBooty] aufzurufen. Aus demselben Grund haben wir Anlegern die Möglichkeit gegeben eine separate Booty Address — die Adresse auf die das in Anspruch genommene Booty ausgezahlt wird — einzustellen, als Sicherheitsmaßnahme (Beispiel: sollte das Delegate Konto gehackt werden müsste der Hacker auch das Booty Konto hacken um das BOOTY entwenden zu können) aber auch als Komfortfunktion (Beispiel: BOOTY direkt auf das SpankPay-Konto einzahlen lassen).
Ich für meinen Teil habe beschlossen nichts zu tun und die Standardeinstellung zu benutzen: Mein MetaMask-Konto für alle drei Funktionen.
Sollte ich mir das später anders überlegen kann ich die Delegate und Booty-Adressen aktualisieren… sobald das Interface dafür verfügbar ist :)
Ein anderes Detail das du zu dieser Zeit wissen musst: Du kannst von jedem Anlegerkonto nur ein einziges Mal anlegen, du kannst diese Adresse nicht wiederverwenden. Staking Address und Delegate Address müssen für jeden Anleger einzigartig sein, wenn du also einmal anlegst (zum ausprobieren) musst du ein anderes Konto verwenden um nochmal anlegen zu können. Du kannst aber dieselbe Booty Address mehrmals verwenden um all dein BOOTY aus mehreren Anlagen an ein Konto ausgezahlt zu bekommen.

Nachdem ich die Anlagekonditionen eingestellt habe bekomme ich ein Bestätigungsfenster in dem mir gezeigt wird wieviel SPANK ich wielange anlege.
Ja, das mach ich. Ich klick auf “Stake”.

Wenn ich “Stake” klicke sehe ich das bekannte MetaMask-Bestätigungsfenster. Wenn du über dem $0,00 USD-Betrag genauer hinschaust wirst du bemerken das die Transaktion “ApproveAndCall” heißt und die Zieladresse nicht die Adresse des SpankBank-Vertrages ist, sondern die Adresse des SPANK ERC20-Token-Vertrages. Das ist richtig. Kurze Antwort: So sparen wir die Ausführung und das Warten auf eine Extratransaktion zum SPANK ERC20-Vertrag um das Anlagevolumen des anzulegenden SPANKs zu bestätigen. Stattdessen kombinieren wir “Approve” und “Stake” in eine einzige Transaktion indem wir die Anlageparameter als Nutzlast zur SPANK ERC20-”ApproveAndCall”-Funktion senden, welche diese in deinem Auftrag an den SpankBank-Vertrag weiterleitet. Schick.

Weil ich ungeduldig bin habe ich auf “Bearbeiten” geklickt und den Gaspreis auf über 20 gwei gesetzt, weit mehr als die üblichen ~3 gwei, um die Transaktion schneller bestätigt zu bekommen. Dann klicke ich auf “Speichern” und bestätige die Transaktion.

Sobald ich die MetaMask-Transaktion bestätigt habe zeigt mir das Bestätigungsfenster die Transaktions-ID an, welche ich anklicken könnte um die Transaktion auf Etherscan zu verfolgen.

Nach wenigen Sekunden wurde meine Anlagetransaktion bestätigt und nachdem ich die Seite neu geladen habe konnte ich meine aktive Anlage und einige grundlegende Daten sehen.
Ich werde euch nicht anlügen: Es fühlt sich klasse an, der erste Anleger überhaupt zu sein.
Und das ist alles was ihr über’s anlegen zu wissen gibt! Cheers!
Warte! Ich habe noch viele Fragen!
Okay, du hast gesehen wie du anlegst aber wir sind noch nicht in’s Detail gegangen wie die SpankBank überhaupt funktioniert. Lass uns das jetzt tun.
Worum geht’s hier überhaupt?
Du legst SPANK an um BOOTY zu ernten. Alles klar, den Teil hast du verstanden.
Wieviel BOOTY werde ich bekommen?
Um diese Frage zu beantworten müssen wir uns anschauen wie die SpankBank die BOOTY-Ausschüttung verwaltet:

Alle Gebühren die SpankChain jeden monatlich erhebt werden als BOOTY an die SpankBank überwiesen, ausgezählt und verbrannt (aus dem Umlauf entfernt). Zu Beginn jeder neuen Periode wird die SpankBank nur neuen BOOTY in Umlauf bringen wenn die in Umlauf befindliche Menge an BOOTY kleiner ist als das Zielvolumen, welches das 20-fache der Gebühren der vergangenen Periode beträgt.
Wenn, sagen wir, insgesamt 20.000 BOOTY in Umlauf sind und in einer gegebenen Periode 20.000 BOOTY auf der SpankChain-Camsite ausgegeben werden (manches BOOTY wird wiederverwendet und mehrfach ausgegeben), nähmen wir unseren 5%-Anteil (1.000 BOOTY) und schickten es zur SpankBank wo es gezählt und verbrannt würde, womit insgesamt 19.000 BOOTY übrig blieben. Das Zielvolumen wäre dann 20 x 1.000 BOOTY aus Gebühren = 20.000 BOOTY; es würden also 1.000 neue BOOTY generiert um von 19.000 auf 20.000 BOOTY zu kommen. Diese 1.000 neuen BOOTY würden entsprechend der jeweiligen SpankPunkte auf die SPANK-Anleger verteilt.
Wie funktionieren die SpankPunkte? Anleger werden mit zusätzlichen BOOTY belohnt wenn sie für längere Zeiträume anlegen. Die SpankPunkte werden für jeden Anleger berechnet indem das Volumen des angelegten SPANK mit dem Anlagefaktor multipliziert wird. Der Anlagefaktor ist linear von 100% wenn für die maximale Dauer von 12 Perioden angelegt wird bis 45% für die minimale Anlagedauer von einer Periode.
1 Periode = 45%, 2 Perioden = 50%, 3 Perioden = 55%, 4 Perioden gleich 60%, usw…
Nehmen wir mal an, wir haben nur zwei Anleger: Andrea und Bernd, beide mit jeweils 100 SPANK beteiligt. Andrea legt für 12 Perioden an, während Bernd für nur 2 Perioden anlegt. Das bedeutet Andrea hat 100 SPANK * 100% = 100 SpankPunkte und Bernd hat 100 SPANK * 50% = 50 SpankPunkte. Andrea und Bernd würden in jeder Periode entsprechend ihrem Anteil an SpankPunkten BOOTY erhalten. Die SpankPunkte stehen bei 100 Andrea + 50 Bernd = 150 Gesamt. Setzen wir das in unser obiges Beispiel ein und verteilen die 1.000 neu generierten BOOTY auf diese zwei Anleger, bekäme Andrea (100/150)*1.000 = ~667 BOOTY und Bernd (50/150)*1.000 = ~333 BOOTY erhalten.
Einrichten der SpankBank
Wie zuvor erwähnt setzen wir die erste BOOTY-Ausschüttung auf 10.069 fest, welche etwa dem 20-fachen der Gebühren entspricht die wir eingenommen hätten, hätten wir 5% Anteil an den Transaktionen des letzten Monates gehabt. Weil wir keine Gebühren in BOOTY abrechnen können solange wir kein BOOTY haben, haben wir beschlossen die SpankBank einzurichten indem wir die erste BOOTY-Ausschüttung (oder sollten wir es … Arschschütten nennen?) an uns selbst ausgeben und es zu Beginn der nächsten Periode an alle Anleger entsprechend ihrer SpankPunkte verteilen. Wenn du länger anlegst beginnst du also mit mehr BOOTY.
Was kann die SpankBank noch?
Die SpankBank hat weitere Features die wir in der Dokumentation detailliert beschreiben, hier ein kurzer Überblick:
- checkIn — Wird von den Anlegern benutzt um zu zeigen das sie in der nächsten Periode für den Erhalt von BOOTY qualifiziert sind. Kann optional auch den Anlagezeitraum verlängern.
- claimBooty —Wird von den Anlegern benutzt um ihren Anteil am BOOTY der vergangenen Periode abzurufen.
- withdrawStake —Wird von den Anlegern benutzt um ihr angelegtes SPANK abzuziehen wenn der Anlagezeitraum vorüber ist oder die SpankBank mittels
voteToClosegeschlossen wurde. - splitStake —Wird von den Anlegern benutzt um einen Teil des angelegten SPANK (bis zu 100%) an eine neue Adresse zu übertragen. Kann nur aufgerufen werden bevor der Anleger für eine Periode einloggt.
- voteToClose —Wird von den Anlegern benutzt um die SpankBank zu schließen und angelegte SPANK vorzeitig abziehen zu können (z.B. im Falle eines katastrophalen Fehlers oder eines geplanten Upgrades). Falls mehr als 50% der Anleger einer Periode
voteToCloseaufrufen wird die SpankBank sofort in einen “geschlossenen” Status übergehen und den Anlegern ermöglichen ihr SPANK vorzeitig abzuziehen. - updateDelegateKey —Wird von einem Anleger benutzt um das
delegateKeyKonto zu ersetzen, welches er fürcheckInundclaimBootybenutzt. - updateBootyBase —Wird von einem Anleger benutzt um das
bootyBaseKonto, auf das ihr beanspruchtes BOOTY ausgezahlt wird, zu erneuern.
Sobald wir das SpankBank Explorer-Benutzerinterface aktualisieren werden wir einen Folgeleitfaden herausgeben in dem die Benutzung dieser Features erklärt wird.
…und wenn alles total schiefgeht?
Im absolut schlimmsten Fall, wenn angelegtes SPANK auf irgendeinem Weg von der SpankBank gestohlen oder eingefroren wird, müssten wir einen Hardfork unseres eigenen SPANK ERC20-Tokens einleiten. Wir würden unverzüglich mit allen Börsen in Kontakt treten um den weiteren Handel mit SPANK zu stoppen um den möglichen Vorteil eines Angreifers beim Verkauf an unwissende Kunden zu begrenzen. Dann würden wir zu einem neuen SPANK ERC20-Vertrag migrieren, einen Schnappschuss der Kontostände an alle Anleger auszahlen und eine neue SpankBank einrichten, an welche die Gebühren dann gesendet werden.
Das wäre ein massiver logistischer Aufwand, schlussendlich wären unsere Kopfschmerzen aber nicht sooo doll. Wir sind zuversichtlich das der Code so sorgfältig getestet und gestaltet wurde das der Vorteil durch einen Angriff so stark limitiert ist das es sinnvoller wäre uns einfach darüber zu informieren. Ich mache mir wegen dieses Szenarios also keine Sorgen.
Im weniger schlechten Fall in dem wir einen kritischen Fehler finden aber noch kein SPANK gestohlen oder eingefroren wurde würden wir mit unserem angelegten SPANK voteToClose aufrufen damit alle Anleger sofort ihr SPANK zurückbekommen können. Dann würden wir eine neue SpankBank aufsetzen aber müssten keinen Hardfork des SPANK ERC20-Tokens durchführen.

In dem Moment in dem dieser Absatz ursprünglich geschrieben wurde, wurden gerade die $69.000 in angelegtem SPANK überschritten, hossa!
Verbinde dich mit der SpankChain
-> registriere dich für unsere Beta-Camsite
-> wirf einen Blick auf unser Whitepaper
-> schau dir unser Einführungsvideo an
-> folge uns auf Twitter
-> begleite uns auf Discord
-> abonniere unser Subreddit