Struktur der Blockchain und Proof-of-WorksteemCreated with Sketch.

in #deutsch6 years ago (edited)

Dies ist mein 10 Artikel zum Thema Bitcoin. Für alle die meine neun vorherigen Artikel über Bitcoin noch nicht kennen hier eine Übersicht:

 

  1. Das Bitcoin-System 
  2. Erfüllung der drei Transaktionsbedingungen bei Bitcoin
  3. Transaktionskonsens bei Bitcoin (Mining und Blockchain)
  4. Netzwerkknoten (Bitcoin)
  5. Bitcoin Kommunikationsprotokoll und aktuelle Registerversion; Verwaltung des Bitcoin Systems(BIP), Bitcoin ist Fiatgeld
  6. Pseudonyme und Zugriffsberechtigungen bei Bitcoin (Transaktionslegitimität)
  7. Sicherheit bei Bitcoin (Schlüssel und Pseudonyme), Einstieg Hahsfunktionen
  8. Transaktionen (technische Erläuterungen zu Bitcoin)
  9. Delegation an@steem-ua, Block Bestandteile bei Bitcoin (transaktionskonsens)

Dies wird vermutlich der vorletzte Artikel meiner Artikelreihe über Bitcoin sein. Daher schon hier ein Dankeschön an die Leser der Artikel und für die tollen Kommentare:)

In diesem Artikel machen wir (wie im letzten Artikel versprochen:D) mit dem Thema wie die Blockchain aufgebaut/wie die Blockkette strukturiert ist weiter.

Blockkette

Die Blockchain (zu deutsch Blockkette) hat ihren wunderschönen Namen, da die Anordnung der Blöcke an eine Kette erinnert:D

Soweit verständlich:D

Blockhöhe und Blocktiefe

Die Position eines Blockes in der Kette wird über die beiden Begriffe Blockhöhe und Blocktiefe definiert. Die Blockhöhe beschreibt sozusagen, wieviele Vorgänger ein bestimmter Block hat. Der Genesis Block bekommt hier  als erster Block die Zahl 0. Die Blocktiefe ist das Gegenteil der Blockhöhe und beschreibt demzufolge wieviele Nachfolger ein bestimmter Block hat.

Dem (hoffentlich:D) aufmerksamen Leser wird aufgefallen sein, dass die Blockhöhe demzufolge statisch ist. Die Zahl der Vorgänger die ein Block hat kann sich ja nicht verändern. Der ausgehend vom Genesis Block (0) 100 Block wird immer der 100 Block bleiben.

Die Blocktiefe dagegen ist nicht statisch, da Blöcke ja gemined werden. Wenn Block xy gerade zum Beispiel 9 Nachfolger Blöcke hat, hat er in 10 Minuten sehr wahrscheinlich 10 Nachfolger Blöcke.

Identifikationsnummer

Ein Block kann natürlich auch durch seine jeweilige Identifikationsnummer zugeordnet werden. Aufgrund der Kollisionsresistenz der SHA256 Hashfunktion kann eine Identifikationsnummer innerhalb der Kette nicht doppelt vorkommen.


Wie wir schon gelernt haben, besteht die Identifikationsnummer (ID) aus dem SHA256d Hashwert des Block Headers (das d steht dafür, dass die SHA256 Hahsfunktion doppelt angewandt wurde).

SHA256 Hashwerte haben eine Länge von 256 Bits, die der Einfachheit halber meistens als (64-stellige) Hexadezimalzahl dargestellt werden.

Da die Identifikationsnummer (Hashwert des Block Headers) immer im Nachfolger Block referenziert wird, werden die Blöcke in die Kette "eingebunden". Die einzelnen Block Bestandteile können danach nicht mehr verändert werden, da sich sonst die Block ID des Blocks ändern würde - und damit auch die Block ID des nächsten Blockes, da dieser ja den vorherigen veränderten Block referenziert (dessen Block ID sich verändert hat). Dadurch das der Block nun eine andere Block ID refrenziert verändert sich auch der Hashwert (und damit die Block ID) dieses Blockes. Und immer so weiter bis hin zum aktuellsten Block. Wenn du also zb Block Nr 2399 manipulierst (sprich veränderst) ändert sich die Block ID dieses Blockes wodurch die gesamte Blockchain (von Block Nr 2399 bis zum aktuellsten Block) nicht mehr zusammen passen würde/zerstört werden würde.

Anmerkung: Du kannst so natürlich nicht die komplette Blockchain und Bitcoin zerstören. Dafür müssten alle anderen Knoten deine "super neue Blockchain" (die die du manipuliert hast:D) annehmen was natürlich nicht geschehen wird; sprich du kannst dir die Blockchain herunterladen und darin soviel herumpfuschen wie du willst, du wirst damit weder die Blockchain manipulieren noch Bitcoin zerstören können:D Du veränderst nur eine Datei die danach nicht mehr der Wahrheit entspricht und darum von keinem anderen Netzwerkknoten angenommen werden wird (jeder kann ja prüfen ob die Datei der Wahrheit entspricht).

Die Blockinhalte sind also durch die Kettenstruktur und die Referenzierung mit Hashwerten geschützt.


Wie die Blockkette erweitert wird 

Theoretisch wissen wir schon alle, wie neue Blöcke erstellt werden (Artikel 3). Jetzt werden wir uns genauer damit beschäftigen. Es gibt bei der Erstellung von Blöcken besonders ein problem, für welches in Artikel 3 nur schnell die Lösung genannt worden ist.

Das Problem ist, dass es ja nicht nur einen einzigen Miner gibt. Es gibt unzählige verschiedene Miner die sich gerade eben alle Blockkandidaten erstellen. Die Blockkandidaten die sie gerade erstellen sind allesamt gültig. Doch sie referenzieren alle den gleichen Vorgänger Block (den bis gerade aktuellsten Block der Blockchain). Es kann jedoch nur einen Block geben, der sich auf diesen Block referenziert (wenn das Erreichen eines Konsens funktionieren soll). Andernfalls würden Forks entstehen: die Miner würden alle ihren eigenen Block referenzieren und so verschiedene Kettenstränge erzeugen (am Ende gäbe es x-verschiedene Ketten Versionen; Double Spend würde nicht verhindert werden, keiner wüsste welche Ketten Version nun die richtige und aktuelle ist etc).

Dieses Problem wird durch Proof-of-Work gelöst.

(Legitimität wird wie in Artikel 2 gesichert)

Proof-of-Work

Selbst wenn alle Miner legitime Blockkandidaten erstellen haben wir ein Konsens Problem. Dieses wird durch Proof-of-Work gelöst(Arbeitsnachweis).

Wie schon in Artikel 3 erklärt geht das Erzeugen eines Blockkandidaten sehr schnell (in Sekundenbruchteilen). Neue Blockkandidaten können also viel schneller erzeugt werden, als sich das Netzwerk auf einen Zustand einigen kann. Es muss also eine künstliche Beschränkung geben, die die Geschwindigkeit der Blockaufnahme drosselt (optimalerweise dynamisch an die rechenleistung des Netzwerkes angepasst).

Das Konzept hinter Proof-of-Work ist eigentlich ganz einfach. Eine eigentlich einfache Tätigkeit (welche zu schnell gelöst wird) wird durch eine trial-and-error Aufgabe komplizierter gemacht. Nur wenn diese Aufgabe mitgelöst wird, wird die Tätigkeit ausgeführt. Zur Lösung der trial-and-error Aufgabe werden im Schnitt x- Versuche benötigt. Durch die Schwierigkeit der trial-and-error Aufgabe kann also die durchschnittliche Dauer zur Lösung dieser Aufgabe angepasst werden.

Bei Bitcoin ist die trial-and-error Aufgabe die Identifikationsnummer des Blocks unter einen bestimmten Schwellenwert zu bekommen. Da man bei der verwendeten SHa256d Hashfunktion nicht erkennen kann, welche Eingabe zu welcher Lösung führt muss die Identifikationsnummer durch (zufälliges) Ausprobieren verschiedener Block Inhalte unter den Schwellenwert gebracht werden.

Diese Veränderungen am Block Inhalt um die Identifikationsnummer unter den Schwellenwert zu bekommen wird als Mining bezeichnet. Wie im letzten Artikel schon erklärt wird diese Veränderung des Block Inhaltes meist nur durch eine Veränderung der Nonce erzeugt, wenn alle möglichen Nonce Werte erfolglos durchprobiert werden, können Zeitstempel und das Auszahlungsskript der Coinbase Transaktion (Extranonce) verändert werden.

Schwellenwert

Wie bereits in Artikel 3 erklärt ist der Schwellenwert dynamisch (aufgrund von evtl steigender Miner Zahl und damit- sowie durch technologisch bedingter- steigender Rechenleistung). 

Der Schwellenwert wird so angepasst, dass alle Miner zusammen im Schnitt nur alle 10 Minuten einen neuen Block erstellen können. Der Schwellenwert wird alle 2016 Blocks neu angepasst.

Schwellenwert(neu)=Schwellenwert(alt)*tatsächliche Zeitdauer/Erwartungswert(t)

Da die Erstellungsdauer pro Block 10 Minuten betragen soll und der Schwellenwert alle 2016 Blöcke geändert wird ist der Erwartungswert eine Konstante (20160 Minuten).

Um die Veränderung des Schwellenwert Parameters abbilden zu können wird meist die Difficulty genommen. (Kehrwert des maximalen Schwellenwertes/durch Kehrwert des aktuellen Schwellenwertes).

Das bedeutet die Difficulty bewegt sich als Graph in die entgegengesetzte Richtung des Schwellenwertes. Wird der Schwellenwert kleiner wird das Finden eines neuen Blocks schwieriger und die Difficulty nimmt zu. (eigentlich logisch).

Zur Difficulty im Laufe der Zeit verlinke ich unten eine Quelle (sind auch andere interessante Charts auf der Seite zu sehen).

Quellen

  • Etwas über "Protocol rules" 

https://en.bitcoin.it/wiki/Protocol_rules

  • Die Seite mit der "Difficulty im Laufe der Zeit" die ich oben angesprochen habe.(auch sonst interessante Charts)

https://www.blockchain.com/de/charts/difficulty?scale=1&timespan=all

 

  •  Mein Wissen über dieses Thema habe ich größtenteils aus diesem Buch. Ich kann es sehr empfehlen.

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. 




Sort:  
Du hast ein kleines Upvote von unserem Curation – Support – Reblog Account erhalten. Dieser wurde per Hand erteilt und nicht von einem Bot. Wir, die Mitglieder des German Steem Bootcamps möchten die Deutsche Community stärken. Bei einer Mitgliedschaft im German Steem Bootcamp könnt ihr sicher sein, dass eure Beiträge auch gelesen werden.
Aktuell als Kurator tätig ist @cultus-forex
Du findest uns im Discord unter https://discord.gg/vTsTSrZ


Hg8He5R.png

Bisher war es eine aufschlussreiche und sehr gut umgesetzte Reihe. Da muss ich son bisschen an Olaf Carlson-Wee denken. Er schrieb seine Bachelorarbeit über Bitcoins technische Aspekte. stieg mit 14k glücklich in den Markt ein und endete mit 150Millionen Privatvermögen. Was aber viel interessanter ist, er gründete mit 4Millionen Polychain Capital (als Crypto Venture Capitalfund) und machte daraus über eine Milliarde und somit den größten Cryptofund. Mit 29 und ohne Anzug und Krawatte. ...als Soziologie Student :D

Letzten Endes floss das Kapital in viele der Projekte die wir User so feiern. Nur ein kleines bisschen Interesse (auch wenn es manchmal hart ist mit den Fachbegriffen) kann so vieles in der Welt verändern. Wenn man es denn will.

Die aktuellen Preise haben den Markt auf "Pre-Bullrun" zurück gesetzt und wir können mit dem Wissen (noch) easy mit den top Managern gleich aufkommen. Man kann sich über Politik aufregen (an der man eh nichts viel ändern kann) oder diese Jahrhundert Gelegenheit nutzen und du bist mit der Reihe auf einem guten weg.

Danke für dein Feedback:)
Krasse Geschichte. In dem Alter schon Milliardär ist echt eine Ansage:D

Die aktuellen Preise haben den Markt auf "Pre-Bullrun" zurück gesetzt und wir können mit dem Wissen (noch) easy mit den top Managern gleich aufkommen. Man kann sich über Politik aufregen (an der man eh nichts viel ändern kann) oder diese Jahrhundert Gelegenheit nutzen und du bist mit der Reihe auf einem guten weg.

Denke ich auch:) Hab vor kurzem gehört, dass Goldman Sachs oder so bald einsteigen will, hab die Info aber nur am Rande mitbekommen. Könnte mir aber vorstellen, dass das so eine Art "Startschuss" seien könnte.

Werde mir noch ein paar Iota kaufen und dann hoffen, dass die Dinger über die 10$ kommen:D
Ich weiß noch hab damals in nem Forum gelesen Juli wäre Iota sehr wahrscheinlich bei 5$:D

Die haben vor kurzem glaub ich einige interessante Deals in Asien gemacht. Hab auf Twitter irgendwas von "Iota als Industriestandard" gelesen habe die Info aber nicht weiterverfolgt.

Die meisten behaupten ja Dezember geht es wieder hoch (wenn ich das richtig mitbekommen habe).

Hi UDCT,

ich denke bei jedem, der deine Artikel bis hier her verfolgt hat und auch etwas mitkommentiert hat, müsste es jetzt endgültig klick gemacht haben.

Ich werde glaube ich alle deine Artikel auch nochmal lesen, aber ich kann mich auch nur der Meinung vom Lauch anschließen: Dies ist wirklich der beste der Reihe. Kurz, knackig, flüssig, einleuchtend, perfekt.

Ich freue mich schon auf Nummer 11 bzw. auf die, die danach kommen (IOTA stimmt's?)

Bis dahin

Vielen Dank

Prost

Chapper

Hey chappper, wie immer danke für den Kommentar:)

ich denke bei jedem, der deine Artikel bis hier her verfolgt hat und auch etwas mitkommentiert hat, müsste es jetzt endgültig klick gemacht haben.

Das hoffe ich:D
Danke für dein Lob:)

Ich freue mich schon auf Nummer 11 bzw. auf die, die danach kommen (IOTA stimmt's?)

Genau als nächstes ist dann Iota dran.

Grüße!



This post has been voted on by the steemstem curation team and voting trail.

There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!

Hallo ich bin Mikrobi,

dein Beitrag hat mir sehr gut gefallen und du bekommst von mir Upvote.
Ich bin ein Testbot, wenn ich alles richtig gemacht habe, findest du deinen Beitrag in meinem Report wieder.

LG

Mikrobi

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

Award for the total payout received

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

Support SteemitBoard's project! Vote for its witness and get one more award!

Hi @urdreamscometrue!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 1.434 which ranks you at #37803 across all Steem accounts.
Your rank has improved 4 places in the last three days (old rank 37807).

In our last Algorithmic Curation Round, consisting of 426 contributions, your post is ranked at #319.

Evaluation of your UA score:
  • Only a few people are following you, try to convince more people with good work.
  • The readers like your work!
  • Try to improve on your user engagement! The more interesting interaction in the comments of your post, the better!

Feel free to join our @steem-ua Discord server

Coin Marketplace

STEEM 0.28
TRX 0.12
JST 0.034
BTC 63914.94
ETH 3312.82
USDT 1.00
SBD 3.92