follow us on twitter . like us on facebook . follow us on instagram . subscribe to our youtube channel . announcements on telegram channel . ask urgent question ONLY . Subscribe to our reddit . Altcoins Talks Shop Shop


This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here

Author Topic: Was ist ein Block in der Blockchain?  (Read 1372 times)

Offline Ferki

  • Moderator
  • Legendary
  • *
  • *
  • *
  • *
  • Activity: 3502
  • points:
    88545
  • Karma: 478
  • Observer only
  • Trade Count: (0)
  • Referrals: 1
  • Last Active: March 01, 2024, 03:32:42 PM
    • View Profile

  • Total Badges: 29
    Badges: (View All)
    Fifth year Anniversary Fourth year Anniversary 10 Posts
Was ist ein Block in der Blockchain?
« on: December 30, 2018, 09:46:32 AM »
Bitcoin basiert auf der Blockchain, das weiß jeder. Nur was ist diese Blockchain? Genauer: Wie kann man sich die einzelnen Bestandteile der Blockchain, die Blöcke, vorstellen?



Die Blockchain ist eine Verkettung von Datenblöcken. Jeden Block kann man sich wie eine Seite in einem Hauptbuch vorstellen. Die einzelnen Blöcke setzen sich aus mehreren Komponenten zusammen. Grob lassen sich diese in den Kopf des Blocks (Block Header) und seinen Körper (Block Body) unterscheiden.
Block Header

Der Kopf des Blocks teilt sich in sechs Bestandteile auf:

    die Versionsnummer der Software
    der Hash des vorigen Blocks
    der Root Hash des Merkle Trees
    die Zeit in Sekunden seit 1970-01-01 T00:00 UTC
    das Ziel der aktuellen Schwierigkeit
    die Nonce

Die Versionsnummer der Software

Die Versionsnummer der Software spielt in den meisten Fällen keine große Rolle. Allerdings kann ein Miner mit einer bestimmten Versionsnummer signalisieren, welche Protokollentscheidungen er unterstützt.

Der Hash des vorherigen Blocks

Der Hash des vorherigen Block ist sozusagen die Kette der Blockchain. Weil der Hash des vorigen Blocks im Hash des neuen Blocks enthalten ist, bauen die Blöcke der Blockchain alle aufeinander auf. Ohne diese Komponente bestünde keine Verbindung und Chronologie zwischen den einzelnen Blöcken.

Der Root Hash des Merkle Trees

Alle Transaktionen, die in einem Block enthalten sind, können in einem Hash gesammelt dargestellt werden. Das ist der Root Hash des Merkle Trees.

Die Zeit in Sekunden seit 1970-01-01 T00:00 UTC


Ein Zeitstempel im Block selbst. Die Zeit wird in Sekunden seit dem 1.1.1970 angegeben.

Das Ziel der aktuellen Schwierigkeit


Das Ziel gibt an, wie klein der neue Hash sein muss, um Gültigkeit zu beanspruchen. Mit anderen Worten: Jeder Hash hat eine Größe in Bits. Je niedriger das Ziel in Bits ist, desto schwieriger ist es, einen passenden Hash zu finden. Ein Hash mit vielen Nullen am Anfang ist kleiner als ein Hash ohne Nullen. Mehr über die Schwierigkeit des Proof of Work erfährst du hier.

Die Nonce

Die Nonce ist die Variable, die beim Proof of Work hochgezählt wird. Auf diese Art und Weise errät der Miner einen gültigen Hash, also einen Hash, der kleiner als das Ziel ist.

Diese sechs Komponenten bilden also den Block Header. Der Block Header spielt eine fundamentale Rolle in Bitcoin, denn er verbindet alle Blöcke miteinander. Man kann ihn sich vorstellen wie das Cockpit eines LKWs. Hier liegen die wichtigen Papiere, mit denen der LKW durch die Kontrollen des Netzwerks kommt.

Block Body

Der Block Body ist vorstellbar wie der Laderaum eines LKW. Er enthält alle Transaktionen, die mit dem Block bestätigt werden.

Wenn ein Miner einen Block konstruiert, überprüft er die Transaktionen auf ihre Gültigkeit. Das heißt, er überprüft, ob der Versender auch tatsächlich über genug Geld verfügt, das er ausgeben kann. Diese Information kann er einfach aus der Blockchain lesen. Der Miner schaut also in den vergangenen Blöcken nach, ob der Versender einmal zehn Bitcoin bekommen hat, wenn er zehn Bitcoin verschicken möchte.

Die Transaktionen in einem Block stehen nicht einfach in einer Liste, sondern in einem sogenannten Merkle Tree.

Was ist ein Merkle Tree?


Der Merkle Tree hat seinen Namen von dem Mathematiker Ralph Merkle. Die Entdeckung war, dass viele Informationen in einem einzigen Hash dargestellt werden können. Dafür werden zuerst die Daten selbst gehasht. Anschließend werden die Hashes erneut gehasht und zusammengeführt. Schlussendlich ist der Merkle Tree in einem einzigen Hash zusammengeführt. Dieser letzte Hash trägt auch den Namen Root Hash, also die Wurzel des Baumes. Er repräsentiert alle Informationen seiner „Blätter“ (einzelne Transaktionen) und „Zweige“ (Hashes der Blätter) in einer relativ kurzen Zeichenfolge.

Den Root Hash zu erzeugen funktioniert einfach und schnell, sofern alle Zweige und Blätter bekannt sind. Wir erinnern uns an die Funktion einer Hash-Funktion: In die eine Richtung funktioniert sie eindeutig und schnell, in die andere Richtung lässt sie sich unmöglich aufschlüsseln. Wenn der Root Hash bekannt ist, die Transaktionen allerdings unbekannt sind, ist es unmöglich, die Transaktionen zu erraten.

Ein Root Hash allein reicht also nicht aus, auch der restliche Block muss gespeichert werden. So kann der Miner den Root Hash jederzeit validieren, indem er die im Block enthaltenen Informationen erneut hasht. Solang die Hash-Funktion dieselbe ist, bekommen die Miner für einen bestimmten Input an Daten immer denselben Hash. Das ist sehr praktisch, denn sie können nur mit dem Hash überprüfen, ob sie auf dem gleichen Stand sind.

Mining: Die Suche nach einem besonderen Hash

In diesem Kontext fällt es leichter, das Mining des Proof of Work zu verstehen. Beim Mining wird der Block Header des Blocks inkremental verändert, um einen besonderen Hash zu erhalten. Der Header besteht aus fünf Konstanten und einer Variable. Die Konstanten sind die Versionsnummer der Software, der Hash des vorigen Blocks, der Root Hash des Merkle Trees, der Zeitstempel und die Zielgröße des gesuchten Hashs in Byte.

Die Variable ist die Nonce. Die Nonce ist eine Zahl, die um eins erhöht wird. Dann hasht der Miner die Daten und überprüft, ob die Daten in einen Hash resultieren, der unter dem gesuchten Zielwert liegt. Wenn der Hashwert größer ist als das Ziel, wiederholt der Miner den Prozess; erhöht die Nonce also um eins, hasht und überprüft erneut. Dies wiederholt er solange, bis er einen Hash gefunden hat, der unter dem Ziel liegt, oder er von einem anderen Miner aus dem Netzwerk einen Block erhält, dessen Hash unter dem Ziel liegt. Dann nimmt er sich diesen neuen Block und verwendet ihn als Grundlage für den nächsten Block (indem er den neuen Hash als „Hash des vorigen Blocks“ benutzt).

Mining ist also ein hyper-repetitiver Prozess, dessen Ziel es ist, einen besonderen Hash zu finden. Ist der Hash gefunden, geht das Spiel von vorne los. Die Wahrscheinlichkeit, einen besonderen Hash zu finden, hängt von der Schwierigkeit ab. Im Schnitt wird bei Bitcoin alle zehn Minuten ein neuer Block gefunden. Die Schwierigkeit passt sich immer wieder an, sodass dieser Durchschnitt bestehen bleibt.

Das Besondere an diesem Vorgang ist, dass der besondere Hash nur durch Erraten gefunden werden kann. Dieses Raten kostet Rechenleistung und damit Energie. Ein Blick auf den besonderen Hash reicht, um zu erkennen, dass er besonders ist, denn er fängt mit Nullen an.

Hier ein Beispiel für solch einen Hash aus der Bitcoin Blockchain:

000000000000000000094bfa4edb1245c347e42452e4418e9fe5a1d24e335b16

Hashes: Die Matrjoschka der Blockchain

Einen Block kann man sich vereinfacht wie eine Matrjoschka vorstellen. Die kleinste Puppe ist die ungehashte Transaktion. Die nächste Hülle ist die gehashte Form dieser Transaktion. Danach werden zwei gehashte Transaktionen zusammen gehasht. So werden die Hashes immer weiter zusammengeführt. Am Ende bleibt nur noch ein Hash, der Root Hash, oder die größte Matrjoschka übrig.

Source: https://www.btc-echo.de/was-ist-ein-block-in-der-blockchain/

Altcoins Talks - Cryptocurrency Forum

Was ist ein Block in der Blockchain?
« on: December 30, 2018, 09:46:32 AM »

This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here


 

ETH & ERC20 Tokens Donations: 0x2143F7146F0AadC0F9d85ea98F23273Da0e002Ab
BNB & BEP20 Tokens Donations: 0xcbDAB774B5659cB905d4db5487F9e2057b96147F
BTC Donations: bc1qjf99wr3dz9jn9fr43q28x0r50zeyxewcq8swng
BTC Tips for Moderators: 1Pz1S3d4Aiq7QE4m3MmuoUPEvKaAYbZRoG
Powered by SMFPacks Social Login Mod