Blockchain
Was ist eine Blockchain, was haben Bitcoin, Etherium und Dogecoin damit zu tun und wie wird Blockchain technisch umgesetzt?
Eine Einfache Liste
Stell dir vor du und deine Freundesgruppe tauschen regelmäßig Geld untereinander aus. Ihr kommt auf die Idee ertmal alles auf eine Liste zu schreiben die z.B. so aussieht:
Erstmal zahlen alle 20$ ein:
0)Günter erhält 20$
1)Lisa erhält 20$
2)Franz erhält 20$
3)Herbert erhält 20$
4) Lisa gibt Franz 10$
5) Günter gibt Herbert 7$
6) Herbert gibt Lisa 12$
7) Franz gibt Günter 8$
Anhand der überweisungen kann man genau nachvollziehen wie hoch der Kontostand einer Person jetzt ist in unserem Beispiel
Lisa: 22$ Franz: 22$ Günter: 21$ Herbert: 15$
Statt dies nun in Dolllar auszubezahlen stellen die Informationen in der Liste ab sofort eine eigene Währungsform dar die wie alle anderen Währungen auch in einem Wechselkurs zum Dolar und zum Euro oder Rubel stehen. Nennen wir sie OnlineCoin.
Sagen wir ihr Organisiert eure Liste als öffentliche Website auf der jeder anonym eine Überweisung hinzufügen kann. Das führt zu einigen Problemen...
Vertrauen Schaffen
Das erste Problem ist, dass jeder Überweisungen eintragen kann die nicht von ihm stammen und somit nicht vom Kontoinhaber autorisiert sind. Die Lösung dafür sind digitale Signaturen. Diese sind wie digitale Unterschriften, dies sich für jedes signierte Dokument unterscheiden. Damit eine überweisung nicht mehrmals inklusive Signatur eingefügt werden kann erhält diese außerdem eine fortlaufende Nummerierung, welche die Transaktion und somit auch die Signatur einzigartig macht. mehr darüber kannst du unter dem entsprechenden Abschnitt unserer Website erfahren.
Außerdem werden keine Transaktionen durchgeführt, bei denen der Kontoinhaber mehr von der digitalen Währung ausgibt, als er tatsächlich auf seinem Konto hat.
Trotzdem müssen alle der Website selbst vertrauen, diese ist im moment wie eine Bank. Was wenn diese gehackt wird oder der Websiteinhaber sich selbst sehr viel Geld überweist? Die Lösung lautet Dezentralität! Jede Person speichert eine eigene Kopie der Liste auf seinem eigenen Rechner. Doch auch das führt zu einigen Problemen...
Proof of work
Lisa möchte eine Überweisung machen. Dafür teilt sie allen diese gleichzeitig mit. Doch was passiert, wenn Personen unterschiedliche Listen haben, auf denen manche Transaktionen enthalten sind und andere nicht? woher kann man sich sicher sein, dass die eigene Liste identish zu der aller Anderer ist?
Die Grundidee hinter Bitcoin ist es, die richtige Version anhand der Rechenleitung die in diese Versoin geflossen ist zu identifizieren. Sodass falsche Informationen die angehängt werdne sollen eine unglaubliche Rechenleistung benötigen würden.
Hier kommen die kryptografischen Hash Funktionen ins Spiel. Über die du dich unter SHA256 genauer informieren solltest, denn dies ist der Algorithmus, der Bei Bitcoin zum Einsatz kommt.
Die Informationen in dem Block also Block Nummer, Timestamp sowie Transaktionsdaten stellen die Daten dar, die in einem Block gespeichert werden. Diese werden mittels SHA256 verarbeitet und ergeben so den Hash des neuen Blocks.
Dabei kommt auch der Hash des vorherigen Blocks zum Einsatz. Ändert man also eine Information in einem Block davor, so müssen sich auch die Hashes der darauf folgenden Blöcke ändern, da diese alle miteinander verkettet sind.
Wenn es nun einen Konflikt zwischen zwei Alternativen Fortsetzungen für die Blockkette gibt wird immer der längeren der beiden vertraut, da mehr arbeit in diese Fortsetzung geflossen ist. Ein potentieller Störenfried brüchte also 51% der im gesammten System verfügbaren Rechenleistung um sich gegen das Netzwerk durchzusetzen, wenn er seine eigene Version durchsetzen möchte.
Wenn es nun einen Konflikt zwischen zwei
Außerdem gibt es noch die Nonce (Number Only Used Once) die für den Block vom ersteller frei gewält werden kann und eine besondere Aufgabe hat. um zu beweisen, dass man REchenleistung in den Block gesteckt hat muss der Hash mit einer bestimmten anzahl von Nullen Starten zB. 30 Stück. Der einzige weg das zu erreichen ist es zufällig mit Brute Force verschiedene Nonces auszupropieren, den Block zu hashen und irgendwann das richtige Ergebnis mit genügend Nullen zu erhalten, damit man den Block an die Kette anhängen darf.
Außerdem gibt es noch die Nonce (Number Only Used Once) die für den Block vom ersteller frei gewält werden kann und eine besondere Aufgabe hat. um zu beweisen, dass man REchenleistung in den Block gesteckt hat muss der Hash mit einer bestimmten anzahl von Nullen Starten zB. 30 Stück. Der einzige weg das zu erreichen ist es zufällig mit Brute Force verschiedene Nonces auszupropieren, den Block zu hashen und irgendwann das richtige Ergebnis mit genügend Nullen zu erhalten, damit man den Block an die Kette anhängen darf.