Die Geschichte des delegierten Proof-of-Stake (DPOS)

in #deutsch4 years ago (edited)

Interessanter und lehrreicher Artikel von @blocktrades in #blockchain, am 10.03.2020, in deutscher Übersetzung nach bestem Wissen und Gewissen. Übersetzt von DeepL, dem kostenlosen neuronalen Netzwerk. Das Tümpel-Institut meint, dass selbst Faulenzer unter den Steem-Minern die Chance haben sollten, ja die Gelegenheit beim Schopf packen müssten zu erfahren, wie ihre Blockchain funktioniert und warum gerade so. Jeder sollte wissen, was daran so einmalig unter den Blockchains ist. Je besser wir den Steem kennen, desto einfacher können wir ihn Interessierten vermitteln.

Hier findet ihr das Original des übersetzten Artikels. Und nun lest Blocktrades, die lange vor Beginn des Steem ganz tief im Projekt – und mit @dan die Köpfe zusammen steckten. Blocktrades erzählt locker und verständlich:

The History of Delegated Proof-of-Stake (DPOS)

DPOS (aka Delegated Proof-of-Stake) wurde von Daniel Larimer als Ersatz für den Proof-Of-Work-Konsens-Algorithmus erfunden, der von Bitcoin und den meisten anderen Krypto-Währungen zu dieser Zeit verwendet wurde. Alle von Dan entwickelten Blockketten (einschließlich BitShares, Steem und EOS) verwenden DPOS zur Auswahl ihrer Blockproduzenten.

In diesem Beitrag werde ich die Geschichte diskutieren, die zur Erfindung von DPOS führte. Ich habe zur Zeit der Erfindung eng mit Dan zusammengearbeitet, und so ist es geschehen, soweit ich mich erinnere.

Bevor ich mich jedoch mit den Einzelheiten der DPOS-Geschichte befasse, muss ich etwas Hintergrundmaterial darüber durchgehen, wie Blöcke zu einem Blockketten-Netzwerk hinzugefügt werden.

Bestellung von Transaktionen (z.B. ein Geldtransfer) in einem Blockketten-Netzwerk

Eine der wichtigsten Funktionen eines Blockketten-Netzwerks ist die Erstellung einer zeitlich geordneten Liste von Transaktionen, wobei Gruppen dieser Transaktionen in einer Abfolge von verknüpften Blöcken, einer sogenannten Blockkette, gespeichert werden. Diese zeitliche Reihenfolge ist wichtig, weil sie verhindert, dass jemand seine Kryptowährung mehr als einmal ausgibt (ein als "Doppelausgabe" bekannter Angriff).

Um neue Transaktionen zu verarbeiten, muss einer der Computer im Blockketten-Netzwerk eine gültige Reihenfolge für neue Transaktionen, die er erhalten hat, festlegen, sie in einen Block setzen und diesen Block dann an alle anderen Computer im Blockketten-Netzwerk senden. Die anderen Computer im Blockketten-Netzwerk können diesen Block dann überprüfen, und wenn er die Regeln des Blockketten-Netzwerks erfüllt, fügen sie ihn ihrer lokalen Kopie der Blockkette hinzu. Nach einer gewissen Zeitverzögerung (oft als Blockintervall bezeichnet) wiederholt ein anderer Computer die oben genannten Schritte, und ein weiterer Block wird der Blockkette hinzugefügt.

Probleme mit einem Blockketten-Netzwerk, das einen einzigen Computer zur Erzeugung aller Blöcke verwendet

Theoretisch könnten die Regeln einer Blockkette einen einzigen Computer im Netzwerk zuweisen, der alle Blöcke erzeugt. Aber es gibt mehrere Probleme mit dieser Idee.

Zum einen macht sie ein sehr zerbrechliches Netzwerk aus: Wenn dieser eine Computer abstürzt oder die Verbindung zum Internet verliert, können die Transaktionen von niemandem verarbeitet werden, solange dieser Computer nicht in der Lage ist, mit den anderen Computern im Netzwerk zu kommunizieren (mit anderen Worten: niemand kann Geldtransfers durchführen).

Ein weiteres Problem besteht darin, dass ein einziger Computer, der alle Blöcke durchführt, alle Überweisungen aller Personen, die ihm gefallen, blockieren kann, wodurch auf einem Konto gespeichertes Geld "eingefroren" wird. Das liegt daran, dass der Computer, der eine Blockierung vornimmt, wählen kann, welche Transaktionen er in eine Blockierung einfügt. Wenn er eine Transaktion nicht einbeziehen will, kann er einfach so tun, als hätte er sie nie gesehen. Aber selbst dieser Computer kann nur Gelder einfrieren, er kann sie nicht wirklich stehlen (weil er nur Transaktionen blockieren kann, er kann keine gefälschte Transaktion durchführen, die Geld von einem Konto bewegt, das ihm nicht gehört, weil das gegen die Regeln der Blockkette verstößt).

Wessen Computer macht den nächsten Block in der Blockkette?

Aber die Möglichkeit, Gelder im Netzwerk willkürlich einzufrieren, ist eine Menge Macht, und Sie wollen auch nicht, dass Ihr Finanznetzwerk von der Gesundheit eines Computers abhängig ist. Deshalb wurde Bitcoin, die erste Kryptowährung, mit einer Funktion namens "Mining" entwickelt, die es Computern im Netzwerk ermöglicht, um das Recht zu konkurrieren, den nächsten Block in der Blockkette zu erzeugen.

Wie der Bitcoin-Minenbetrieb (auch bekannt als "Proof-of-Work" oder kurz POW) funktioniert

Beim "Bergbau" (Minen) tritt jeder Computer, der um das Recht auf den nächsten Block (ein Bergmann) kämpft, gegen die anderen Computer an, um eine brachiale Quelllösung für ein mathematisches Problem zu finden. Da die Computer dieses mathematische Problem lösen und beweisen müssen, dass sie die richtige Lösung haben, werden auf dem Mining basierende Kryptowirkungen auch als "Proof-Of-Work"-Kryptowirkungen (POW) bezeichnet.

Im Allgemeinen werden die Bergleute mit den schnellsten Computern als erste die Lösung finden und dann einen Block an das Blockketten-Netzwerk senden, der ihre Lösung enthält. Wenn die anderen Computer im Netzwerk zustimmen, dass die Lösung korrekt ist, wird dies der nächste Block in der Blockkette.

Zunächst war das Mining scheinbar eine großartige Lösung für das Problem der Auswahl, wer den nächsten Block produzieren würde. Jeder Bergmann im Netzwerk konnte den nächsten Block produzieren, so dass selbst wenn ein Bergmann beschloss, die Transaktionen eines Benutzers nicht mit einzubeziehen, die Transaktionen wahrscheinlich vom nächsten Bergmann einbezogen werden würden. Im schlimmsten Fall könnten sich die Transaktionen eines Benutzers also um einige Blöcke verzögern.

Aber Computer, die im Bergbau eingesetzt werden, verbrauchen viel Energie für die Lösung dieser mathematischen Probleme, was Geld kostet. Damit die Bergleute ihre Ausgaben decken können (und sogar von ihrem Abbau profitieren), erhalten sie bei erfolgreicher Produktion eines Blocks eine Blockprämie. Dies führt zu einem Wettrüsten unter den Bergarbeitern, und letztendlich griffen die Bitcoin-Bergleute zu sehr spezialisierten und teuren Geräten, um einen Abbauvorteil zu erlangen. Leider wurde es dadurch für die meisten Menschen zu teuer, Bitcoin abzubauen, und mit der Zeit wurden die meisten Bitcoin-Blöcke von nur wenigen Leuten mit sehr teuren Geräten hergestellt.

Schritte, die zur Erfindung des delegierten Proof-of-Stake (DPOS) führen

Im Jahr 2013 arbeitete ich zusammen mit Dan Larimer an der Schaffung einer neuen Kryptowährung namens BitShares. BitShares wurde als eine auf einer Blockkette basierende dezentrale Börse konzipiert (d.h. ein Ort, an dem Benutzer Peer-to-Peer-Handel mit kryptotechnischen Währungen und anderen Waren betreiben konnten). Mein Team arbeitete hauptsächlich am Peer-to-Peer-Netzwerkcode und an der Kommandozeilen-Brieftasche, und Dans Team arbeitete am Blockkettencode, einschließlich der Methode zur Bestimmung, welcher Computer im Netzwerk den nächsten Block machen darf. Trotz der Trennung der Arbeit, vielleicht nicht überraschend, diskutierten wir oft Implementierungsideen, und manchmal halfen Leute aus meinem Team auf der Blockchain-Seite aus, wenn es ein Problem gab.

Warum nicht mit einem bewährten Proof-of-Work?

Der Arbeitsnachweis verbrauchte eine Menge Computerressourcen (so dass die Blockkette den Bergarbeitern viel bezahlen musste) und war für unsere Bedürfnisse als Handelsplattform relativ langsam. Das Bitcoin-Netzwerk hatte eine Blockzeit von 10 Minuten, und wir strebten eine Blockzeit von 10s an (schließlich setzten wir die Blockzeit auf 3s). Daher schloss Dan die Verwendung von Proof-of-Work für die Auswahl des nächsten Blockproduzenten aus.

Ein einziger Blockproduzent? Ein einziger Fehlerpunkt und zu viel Vertrauen

Um die schnellste Geschwindigkeit zu erreichen, war Dans erste Idee, nur einen einzigen Blockproduzenten einzusetzen. Dies hat tatsächlich einige Leistungsvorteile, da jeder seine Transaktionen an diesen einen Blockproduzenten schicken kann, was es ermöglicht, Transaktionen schneller in einen Block aufzunehmen. Aber ein einziger Versagenspunkt ließ dies nicht praktikabel erscheinen, und man legt wirklich viel Macht in die Hände einer Person.

Wie wäre es mit einer Gruppe von "Treuhändern"? Erfordert immer noch zu viel Vertrauen

Dans nächste Idee war nur eine Reihe von Treuhändern: vertrauenswürdige Personen in der neugeborenen BitShares-Gemeinschaft, die damit beauftragt werden sollten, Blöcke in der Reihenfolge des Round-Robin zu produzieren. Die Idee war, dass selbst dann, wenn ein Treuhänder eine Transaktion nicht mit einbezieht, der nächste eine solche durchführen würde. Die einzige Möglichkeit, eine Transaktion zu blockieren, war also, wenn alle Treuhänder beschlossen, die Transaktion zu blockieren. Einer der großen Reize dieser Idee war die völlige Einfachheit, die eine sehr schnelle Kodierung ermöglichte, und wir standen unter großem Zeitdruck, um ein funktionierendes Blockketten-Netzwerk in Betrieb zu nehmen, bevor die Mittel ausgingen.

Die Idee des Kuratoriums war zwar aus technischer Sicht sehr durchführbar und wegen ihrer einfachen Implementierung sehr attraktiv, aber sie war auch insofern etwas fragil, als sie auf einer festen Anzahl von Computern im Netzwerk beruhte und es keinen Mechanismus gab, wie diese Liste von Benutzern im Laufe der Zeit geändert werden konnte, außer durch die harte Arbeit an einer neuen Gruppe von Kuratoren.

Außerdem wurde den Treuhändern viel Vertrauen entgegengebracht, und Kryptoanarchisten wollen im Allgemeinen niemandem zu viel Vertrauen entgegenbringen. Deshalb argumentierten ich und andere, dass es zu viel Vertrauen erfordere und von der Krypto-Gemeinschaft nicht akzeptiert würde. Nach einem Tag oder so gab Dan diesen Punkt zu und suchte nach einer neuen Methode, um
schnellstens den nächsten Blockproduzenten auszuwählen.

Proof-Of-Stake (POS): eine alternative Methode zur Auswahl des nächsten Blockproduzenten auf der Grundlage des Münzeinsatzes

Als nächstes begann Dan mit der Prüfung von Proof-of-Stake-Systemen. Proof-of-Stake (POS) war damals die neue, aufstrebende Methode zur Auswahl von Blockproduzenten, und die bekanntesten Implementierungen waren Peercoin und NXT. NXT war von besonderem Interesse, da es auch zur Unterstützung eines dezentralen Austauschs ähnlich wie BitShares konzipiert wurde.

Proof-of-Stake-Konsens-Algorithmen wählen den nächsten Blockproduzenten auf der Grundlage einer Kombination aus der Anzahl der Münzen, die ein Blockproduzent hat, der Dauer, in der er die Münzen hält (ein Faktor, der als "Münzalter" bezeichnet wird), sowie einer gewissen Zufälligkeit aus.

Die wahrscheinlich interessanteste Idee zu den POS-Konsens-Algorithmen war, dass sie sich auf das Eigeninteresse der Blockproduzenten verließen, um sie an Absprachen zur Blockierung von Transaktionen zu hindern. Die Idee ist einfach: Durch die Gestaltung von POS-basierten Blockketten halten die Blockproduzenten einen großen proportionalen Anteil der Münzen. Der Wert dieser Münzen wird von Personen unterstützt, die bereit sind, diese Münzen für andere Waren zu akzeptieren. Und wenn die Benutzer entscheiden, dass die Blockproduzenten die Verarbeitung ihrer individuellen Transaktionen einstellen könnten, werden die Münzen wahrscheinlich an Wert verlieren, so dass die Blockproduzenten im allgemeinen Fall einen Anreiz haben, die Transaktionen anderer Benutzer zu verarbeiten.

Ich kann mich ehrlich gesagt nicht erinnern, warum Dan sich dafür entschieden hat, keinen POS-Konsens-Algorithmus zu implementieren. Er hatte seine Verleumder, einschließlich der Behauptung, er sei Gegenstand von "Nichts-am-Pfahl"-Angriffen (nothing on Stake) gewesen. Ich habe eine vage Erinnerung aus der Zeit, als ich den POS-Algorithmus für NXT gelesen habe, dass er ziemlich kompliziert erschien (z.B. klingt die Verwendung der Randomisierung im Blockproduzenten-Auswahlprozess etwas unordentlich, und die Berechnung des Münzalters hätte die Rechenkomplexität erhöht), und ich vermute, dass dies bei seiner Entscheidung, keinen POS-Konsens-Algorithmus zu implementieren, eine große Rolle gespielt hat, insbesondere angesichts des Zeitdrucks, einen funktionalen Konsens-Algorithmus zu implementieren, der mit begrenzten Mitteln schnell funktioniert.

Die Erfindung des delegierten Proof-of-Stake

Aber Dan war schon immer ein starker Befürworter der Wirtschaftsanalyse, insbesondere wenn es um die Gestaltung von Blockketten geht, und ich glaube, dies war seine Hauptattraktion für Proof-of-Stake-Systeme.

Gleichzeitig gefiel ihm aber auch die Einfachheit des zuvor besprochenen Treuhändermodells (leicht zu implementieren, vorhersehbare Blockproduktion, funktioniert hervorragend, solange man den Treuhändern vertrauen kann).

DPOS war also im Wesentlichen eine Synthese dieser beiden Ideen, kombiniert mit einer Wendung: Anstatt dass die großen Stakeholder die Blöcke direkt produzieren, würden die Stakeholder die Blockproduzenten für die Herstellung der Blöcke wählen. Hier erfüllen die Blockproduzenten eine ähnliche Rolle wie die Treuhänder in seinem ursprünglichen Plan für den Konsens-Algorithmus. Aber unter DPOS muss man ihnen nicht ganz so viel Vertrauen entgegenbringen, und das System verfügt über einen definierten Mechanismus, wie die Treuhänder ausgewählt und ersetzt werden, so dass sie nicht aufwändig ersetzt werden müssen.

Eine letzte Anmerkung zum "Einfrieren von Geldern" auf einer Blockkette

Es erstaunt mich immer wieder, wie Geschäftsleute, die als "Vordenker" und "Beeinflusser" agieren, oft die Grundlagen der technologischen Revolution, die sie angeblich anführen, nicht verstehen.

Eine Sache, die mich dazu inspiriert hat, diesen Beitrag zu schreiben, war ein kürzlich von Changpeng Zhao, dem CEO von Binance, alias CZ Binance, auf Twitter getwitterter Tweet, der mich zum Lachen brachte. CZ sagte: "Blockchains sollten KEINE Einfrierfunktionen haben."

CZ war offenbar verärgert, dass die Steem-Blockkette die Gelder eines Kontos einfrieren konnte, und dachte, dass dies eine Besonderheit einer DPOS-basierten Blockkette sei. Doch wie ich hoffe, dass Sie aus diesem Beitrag gelernt haben, kann jedes bestehende Blockchain-Netzwerk, einschließlich des Bitcoin-Netzwerks, die Gelder auf einem Konto einfrieren, solange alle Blockproduzenten in diesem Netzwerk dem zustimmen. Sie müssen nur zustimmen, die Transaktionen nicht in ihre Blöcke aufzunehmen.

Beachten Sie, dass dies nicht wirklich ein "Feature" der Blockkettentechnologie ist, in dem Sinne, dass nicht alle Blockkettenentwickler sich verschworen haben, ihre Blockketten so zu gestalten, dass sie so funktionieren. Es ist hauptsächlich eine Einschränkung der Technologie, zumindest soweit wir bisher in der Lage waren, Blockketten zu entwerfen.

Je weniger Blockhersteller an einer Blockkette beteiligt sind, desto einfacher ist es, die notwendige Koordination zu erreichen, um die Gelder eines Kontos einzufrieren. Das bedeutet zum Beispiel, dass die obersten Bitcoin-Minenpools die Gelder eines Kontos wahrscheinlich für sehr lange Zeit einfrieren könnten, wenn sie sich dafür entscheiden, dass es sinnvoll ist. Aber im Allgemeinen wird davon ausgegangen, dass dies nicht geschehen wird, weil sie in Bitcoin bezahlt werden und das willkürliche Einfrieren von Geldern von jemandem im Allgemeinen von den Leuten, die den Wert von Bitcoin unterstützen, nicht wohlwollend betrachtet wird.

Daher muss die Wirtschaftlichkeit einer Blockkette so gestaltet werden, dass die Blockproduzenten der Kette davon abgehalten werden, ein Konto ohne guten Grund einzufrieren. Ich werde wahrscheinlich in meinem nächsten Beitrag über einige Möglichkeiten sprechen, dies zu tun.

Weitere kommen noch

Wie bereits erwähnt, habe ich diese Stelle hauptsächlich geschrieben, um die Grundlage für mein nächstes Posting zu schaffen, das sich mit der Ökonomie und Philosophie der DPOS befasst, ihre Vorteile und Schwächen untersucht und Ideen zu ihrer Verbesserung liefert. Leider bin ich in letzter Zeit ziemlich beschäftigt, so dass es eine Weile dauern kann, bis ich den Folgebeitrag zu diesem Thema schreibe. Ich veröffentliche diesen Beitrag jetzt, da er größtenteils geschrieben wurde, als ich meine früheren Beiträge schrieb, und ihn heute fertigzustellen, war eine nette Möglichkeit, mich zu entspannen und meine Gedanken zu konzentrieren.

Übersetzt mit www.DeepL.com/Translator (kostenlose Version)

Sort:  

Du wurdest als Member von @investinthefutur gevotet! ---> Wer ist investinthefutur ?
Eine kleine Dividende a little bit !BEER


Hey @afrog, here is a little bit of BEER from @investinthefutur for you. Enjoy it!

Learn how to earn FREE BEER each day by staking.

kann man nicht oft genug übersetzen,
damit es alle auch lesen:

https://steemit.com/hive-121566/@satren/translation-die-geschichte-von-delegated-proof-of-stake-dpos

Vielleicht mach ich auch noch eine...

lg und !BEER chen für dich! 🤠

Verflixt und zugenäht! Dieser @satren ist doch ein flinker Bursche und meine Arbeit war nicht nötig. Danke für den Hinweis…
was tu ich jetzt…?!
Ach gar nichts!

Verflixt und zugenäht! Dieser @satren ist doch ein flinker Bursche ...

Lol, aber dir gebe ich (etwas) bessere Deutschnoten! :-)))

Da bin ich ja noch Mal davon gekommen. Jakis strenges Auge. Bei einem Witness kann man ein Hühnerauge zudrücken. Der ist in einer anderen Syntax.

was tu ich jetzt…?!

Erfreu dich doch an den paar upvotes 😉
lg

Das erfreut mich immer. Deswegen bin ich Miner auf dem Steem.

Gut, dass nicht nur ich ein Dejavu hatte 😅

P.S: Steempeak mit Emojis rockt! 🐌


Hey @afrog, here is a little bit of BEER from @reiseamateur for you. Enjoy it!

Learn how to earn FREE BEER each day by staking.

Du hast ein Upvote von unserem Kuration – Support Account erhalten.

Dieser wird nicht von einem Bot erteilt. Wir lesen die Beiträge. (#deutsch) und dann entscheidet der Kurator eigenverantwortlich ob und in welcher Stärke gevotet wird. Unser Upvote zieht ein Curation Trail von vielen Followern hinter sich her!!!

Wir, die Mitglieder des German Steem Bootcamps möchten "DIE DEUTSCHE COMMUNITY" stärken und laden Dich ein Mitglied zu werden.

Discord Server an https://discord.gg/Uee9wDB