Transaktionskonsens bei Bitcoin (Mining und Blockchain)steemCreated with Sketch.

in #deutsch8 years ago (edited)

Hallo liebe Kryptowährungsinteressierte:D Nachdem es in meinem letzten Post um die drei Transaktionsbedingungen ging, aber die dritte Transaktionsbedingung (Transaktionskonsens) nicht erklärt wurde wird das nun in diesem Artikel geschehen.

Transaktionskonsens

Was ist ein "Transaktionskonsens"überhaupt? Konsens bedeutet sowas wie "Übereinstimmung der Meinungen"(laut Google). Bei Bitcoin (und anderen Kryptowährungen) ist es so, dass aufgrund der Dezentralität verschiedene Registerversionen entstehen können. Bei einer Bank (zentrale Instanz) ist ein Transaktionskonsens wie ich in meinem ersten Artikel zu Bitcoin beschrieben habe nicht von nöten, da es immer nur dieses eine Register der zentralen Instanz geben wird. Bei Dezentralen Projekten stellt sich nun die Frage welche der Registerversionen nun gültig ist. 

In meinem letzten Artikel habe ich erklärt, wie eine Transaktion bei Bitcoin initiiert wird. Dort haben wir herausgefunden, dass wenn eine Transaktionsnachricht von einem Teilnehmer des Bitcoin Netzwerkes für legitim befunden wird diese in eine art Transaktionssammlung des Teilnehmers kommt und sich nun in einer "Warteschlange" (zusammen mit den anderen überprüften Transaktionsnachrichten des Teilnehmers) und dort darauf wartet in das Register zu kommen.

Nun könnte es allerdings passieren, dass jemand zwei widersprüchliche Transaktionsnachrichten losschickt, in denen er die Rechte an einer Bitcoin Einheit an unterschiedlichen Personen zuspricht. ER schickt also direkt nacheinander zwei Transaktionsnachrichten los, in denen er die Besitzrechte 1 Bitcoins (den er als Guthaben hat) einmal mir gibt und einmal dir. Die Transaktionslegitimität ist da, da er diese Transaktionsnachricht selber initiiert hat. Wie löst man dieses Problem also?

Bei einer zentralen Instanz wäre die Transaktions gültig, die zuerst bei der zentralen Instanz eintrifft. Da das Bitcoin Netzwerk jedoch keine zentrale Instanz hat, ist die Möglichkeit da, dass ein Teil des Netzwerkes von der einen Transaktionsnachricht erfährt und der andere Teil von der anderen Transaktionsnachricht die im Konflikt zur ersten steht.

Double Spend Problematik

Das Problem hierbei nennt man Double Spend und es bezeichnet das Problem, wenn jemand die Besitzrechte ein und derselben Bitcoin Einheit an mehrere Personen gleichzeitig überträgt. Es darf natürlich nur eine der beiden Transaktionen durchgeführt werden und ins öffentliche Register gelangen. Man benötigt also einen Prozess, der das Erreichen eines Konsens ermöglicht und festhält, welche Transaktion als gültig betrachtet wird.

Hierfür werden von den Netzwerkteilnehmern sogenannte Blocks erstellt (Informationspakete die mindestens eine Transaktion beinhalten) Zum Erstellen dieser Blocks benötigt man Rechenleistung die von den Netzwerkteilnehmern freiwillig erbracht werden kann (das sind dann die Miner)

Ein Miner kann nun beliebige Transaktionen aus seiner Warteschlange zum Erstellen eines Blocks benutzen. Die Transaktionen müssen dafür natürlich alle legitim sein und dürfen nicht mit einer anderern Transaktion in diesem Block

Die zur Referenzierung des Blocks verwendete Identifikationsnummer ist abhängig vom Inhalt des Blocks (Hashwert des Block Headers; dazu in einem späteren Artikel mehr) Daher hätte die Veränderung einer Transaktion oder eines anderen Block Bestandteiles die Veränderung der Identifikationsnummer zur Folge. Wenn diese Identifikationsnummer verändert wird, müssten alle nachfolgenden Blocks neu erstellt werden. Beispiel: Da die Identifikationsnummer in Block 1 verändert wurde und sie ein Input von Block 2 ist verändert sich auch die ID von Block 2 und damit auch die von Block 3 und allen nachfolgenden die dann alle neu erstellt werden müssten wenn man Block 1 verändern würde. Die Blockkette (Blockchain) lässt sich also (praktisch) nicht verändern (außer mit unglaublicher Rechenleistung bzw über 50% der Gesamtrechenleistung). 

Per Konsens wird nun die Version der Kette die nur legitime Transaktionen beinhaltet und die längste bekannte Kette des Systems darstellt als aktueller Zustand des Registers betrachtet (aber dazu in einem späteren Artikel mehr).

Ein einzelner Block kann extrem schnell berechnet werden. Um zu verhindern, dass Blocks schneller geschaffen werden, als sie über das Bitcoin Netzwerk ausgetauscht werden können wird die Akzeptanz der Blocks beschränkt. So akzeptiert das Netzwerk im Schnitt nur alle 10 Minuten einen neuen Block. Das ganze wird so erreicht, dass die Identifikationsnummer des neuen Blocks unter einem bestimmten Wert liegen muss welcher alle  2016 Blocks geändert wird. Aufrgund der speziellen Eigenschaft der Funktion mit welcher die Identifikationsnummer berechnet wird kann nicht erahnt werden, welche Inputs zum gewünschten Zielwert der ID führen. Das ganze ist also eine Art "Glücksspiel:D Die Teilnehmer probieren solange verschiedene Block Inhalte aus, bis sie eine Kombination finden, die zur gewünschten ID führt. Damit ein Miner verschiedne ID´s erstellen kann, ohne die Transaktionen oder die Referenz zu verändern gibt es im Block Raum für arbiträre Daten (Nonce) welche der Miner durchprobieren kann, bis der Block die gewünschte ID hat (Hashwerte).

Dieses Verfahren wird Proof-of-work genannt (Arbeitsnachweis). Ein Block mit der gewünschten ID ist nämlich ein Beweis dafür, dass für seine Erstellung eine gewisse Rechenleistung (im Schnitt) aufgebracht wurde.

Wenn wir nochmal zum Double-Spend Problem zurückschauen, wird klar wie das ganze gelöst wird. Da in ein und demselben Block keine konkurierenden Transaktionen seien dürfen, befinden sich die beiden konkurrierenden Transaktionen in unterschiedlichen Blocks. Welche der beiden Transaktionen nun vom Block anerkannt wird, liegt darab, welcher Block zuerst fertig gemined wird (dessen ID unter dem Schwellenwert liegt). Die Kette kann sich also in mehrere Richtungen entwickeln je nachdem welcher Miner den nächsten Block erstellt (es beziehen sich mehrere Blocks auf den selben Referenzwert).

Coinbase Transaktion

Doch wieso sollte man Miner werden? Man muss immerhin die Rechenleistung (hardware und Strom) bezahlen. Die Lösung hierfür ist die sogenannte Coinbase Transaktion. Diese Transaktion generiert neue Bitcoin Einheiten für den Miner, der den Block erstellt hat. Gelingt es einem Miner einen Block mit gültiger ID zu erstellen, wird der Block an das Ende der Kette angehängt. Wie alle Transaktionen wird die Coinbase Trasnaktion nur dann akzeptiert, wenn sie in der längsten Version der Kette auftaucht was den Minern den Anreiz gibt, den Block der längsten Kette zu referenzieren.

Die ersten vier Jahre war die Entlohnung (coinbase Transaktion) 50 Bitcoins. Diese Entlohnung wird alle 210 000 Blocks halbiert. Die Menge aller Bitcoin Einheiten steigt also nach einem abnehmenden Wachstum. (Nachdem alle 21 Millionen Bitcoin Einheiten geschaffen sind, wird das System ausschließlich durch Transaktionsgebühren getragen.)

Das war es auch schon wieder mit diesem Artikel. Mir persönlich macht es Spaß sich mit der Funktionsweise von Bitcoin (und anderen Kryptowährungen) zu beschäftigen und es würde mich sehr freuen, wenn ich euch ein paar Interessante Informationen vermitteln konnte und/oder euer Interesse für dieses Thema wecken konnte:)

Über Upvotes und Kommentare (Fragen, Anmerkungen Feedback alles willkommen:D) würde ich mich sehr freuen. 

Anmerkung: Manche Sachen habe ich vereinfacht verklärt (des Verständnisses halber). Im Verlauf dieser Artikelserie werde ich die einzelnen Themen noch genauer behandeln.

Quellen

  •  Bild

Das Bild habe ich selbst mithilfe von Paint3D erstellt und dafür Abbildung 13 aus dem unten verlinkten Buch als Vorlage genutzt.

  • Mein Wissen über dieses Thema habe ich ebenfalls größtenteils aus diesem Buch.

https://www.amazon.de/gp/product/3738653929/ref=as_li_tl?ie=UTF8&tag=urdreamscomet-21&camp=1638&creative=6742&linkCode=as2&creativeASIN=3738653929&linkId=d95515f27071b70b443408ad7170a100

Dies ist ein ref Link von mir zu dem Buch.

Ebenfalls als Quelle empfehlen kann ich Medium und https://coinforum.de/forum/19-technik-entwicklung-sicherheit/  

  • Unter diesem Artikel von mir gibt es einen sehr informativen Kommentar von @lauch3d zum Thema Bitcoin.

https://steemit.com/deutsch/@urdreamscometrue/das-bitcoin-system

Sort:  

Hallo

Du hast einen Upvote vom steem-bootcamp bekommen. Dieser stammt aus Kuratorenhand und wurde nicht via bot vergeben. Derzeit am Ruder: @arzon-cnaster
Weiter So!

Vielen Dank:)
Cooles Gif haha

schon wieder den Artikel nicht im feed gesehen. Sehr ausführlich erklärt und ein guter Anreiz für mich, mich wieder in die Thematik einzuarbeiten.

Danke für dein Feedback:) Ja ich mache diese Posts gerade ja auch um mich selber wieder mit dem Thema auseinanderzusetzen (und andere natürlich).
Grüße!

As a follower of @followforupvotes this post has been randomly selected and upvoted! Enjoy your upvote and have a great day!

Congratulations @urdreamscometrue! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:
SteemitBoard and the Veterans on Steemit - The First Community Badge.

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

You got a 4.40% upvote from @oceanwhale With 35+ Bonus Upvotes courtesy of @urdreamscometrue! Earn 100% earning payout by delegating SP to @oceanwhale. Visit www.OceanWhaleBot.com for details!

You just planted 0.12 tree(s)!


Thanks to @urdreamscometrue

We have planted already 3248.48 trees
out of 1,000,000


Let's save and restore Abongphen Highland Forest
in Cameroonian village Kedjom-Keku!
Plant trees with @treeplanter and get paid for it!
My Steem Power = 24538.22
Thanks a lot!
@martin.mikes coordinator of @kedjom-keku
treeplantermessage_ok.png

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.101
BTC 64172.89
ETH 1818.63
USDT 1.00
SBD 0.38