Bitcoin Forum
June 23, 2024, 01:42:05 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Blockchain vollständig auf jedem Client vorhanden?  (Read 1279 times)
BitMorpheus (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
September 07, 2014, 12:29:27 PM
 #1

Hallo.

Soweit ich das verstanden habe,
rechnen alle Miner an einem Block.

Wer den fortlaufenden Wert ("0000xxx...") zuerst "gefunden" hat, bekommt eine Belohnung (Habe mal etwas von 25-BTC gelesen)
Technisch ist dies so gemacht, dass ca. alle 10 Minuten ein Block "gefunden" wird.
(Schwierigkeit passt sich an)

In diesem neuen Block werden nun auch die aktuellsten, bestätigten Transaktionen gespeichert.
Der Block wird verfasst, im Netzwerk nochmal von mehreren Clienten bestätigt und abschließend, finaly an den Blockchain
gehangen, welcher wiederum an alle Clients gesendent wird (Das ist bestimmt das "Synchronisieren"?)

Dieser Blockchain befindet sich ja dezentral.
D.h. jeder Client müsste ja den vollständigen Blockchain besitzen (technisch gesehen).
Also befänden sich auf meinem PC sämtliche Transaktionen seit 2009 aller Konten und Wallets inkl. Wert/Public Key Empfänger/Absender etc.

Stimmt das soweit?
cagrund
Legendary
*
Offline Offline

Activity: 1372
Merit: 1000


CTO für den Bundesverband Bitcoin e. V.


View Profile WWW
September 07, 2014, 12:41:41 PM
 #2

Im grossen & ganzen: Ja.

Wobei es auch Bitcoin-Clients gibt die eben nicht die gesamte Blockchain laden müssen.


Gruss Carsten.

BitMorpheus (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
September 07, 2014, 01:11:14 PM
 #3

Bestätigen die Miner die Transaktionen parallel zum eigentlichen Minen?
(Zwei Fliegen mit einer Klappe)

Oder wer bestätigt die Transaktionen?
Auch Clients die nicht Minen?
BitMorpheus (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
September 07, 2014, 03:03:54 PM
 #4

Ok also ich habe da einen weiteren Artikel gefunden,
dort war das ganz gut erklärt.

Also der Miner findet einen "Block"!
Wenn er diesen gefunden hat, nimmt er sämtliche neue Transaktionen auf,
die bislang im Netzwerk bestätigt wurden.

Der Miner, der den Block gefunden und die neuen Transaktionen in den Block importiert,
hängt diesen auch an die Blockchain an.

Was ist dann aber, wenn im Jahre X alle Blöcke gefunden wurden?
Dann gibt es keine Miner mehr und wer bestätigt dann die Transaktionen?

Ich habe auch gelesen, dass ein Block max 1Mb groß ist.
Was, wenn aber aber Millionen Transaktionen in diesen 10min durchgeführt wurden
und der 1 Mb nicht ausreicht?
Dann staut sich ja das ganze oder nicht?

schnebi
Sr. Member
****
Offline Offline

Activity: 392
Merit: 250


View Profile
September 07, 2014, 03:12:19 PM
 #5

Es sind nie alle Blöcke gefunden. Es sind vielleicht irgendwann alle BitCoins generiert. Blöcke werden dann aber trotzdem weiter errechnet. Bloß, dass die dann keinen Block reward mehr haben.
shorena
Copper Member
Legendary
*
Offline Offline

Activity: 1498
Merit: 1520


No I dont escrow anymore.


View Profile WWW
September 07, 2014, 08:36:31 PM
 #6

Ich nörgel mal n bisschen rum. Du bist auf nem guten Weg, aber ein paar Details sind noch schief. Einiges ist Dir inzwischen ggf. schon aufgefallen, ich schreib das trotzdem nochmal falls jmd. anderes mal nachließt Wink Man weiß ja nie.

Hallo.

Soweit ich das verstanden habe,
rechnen alle Miner an einem Block.

Genau genommen jeder Pool und Solominer an einem anderen eigenen.

Wer den fortlaufenden Wert ("0000xxx...") zuerst "gefunden" hat, bekommt eine Belohnung (Habe mal etwas von 25-BTC gelesen)
Technisch ist dies so gemacht, dass ca. alle 10 Minuten ein Block "gefunden" wird.
(Schwierigkeit passt sich an)

Der "Wert" ist nicht fortlaufend, sondern das Ergebnis der Hashberechnung (sha256) von allen Daten die den Block repräsentieren (was das genau alles ist klären wir weiter unten).
Die Belohnung ist zur Zeit 25 BTC. Ursprünglich waren es 50 BTC ca. alle 4 Jahre halbiert sich dieser Wert bist keine Halbierung mehr möglich ist. Damit das ganze System nicht mit steigender Rechenleistung in sich zusammenfällt gibt es die Schwierigkeit (Difficulty). Alle 2016 Blöcke (~ 14 Tage) wird geprüft wie lange es gedauert hat diese zu finden. Ging es schneller als 14 Tage wird die Schwierigkeit erhöhte, dauerte es länger wird sie verringert. Die Schwierigkeit sagt aus wieviele führende 0 der Hash haben muss um akzeptiert zu werden. Dadurch sind mehr Versuche nötig um einen "guten" hash zu finden und die höhere Rechenleistung wird ausgeglichen.

In diesem neuen Block werden nun auch die aktuellsten, bestätigten Transaktionen gespeichert.

Ja, Nein, fast. Das Prinzip ist das erst der Block erstellt wird und dann der Hash davon gebildet wird. "Im" Block sind dann schon alle Transaktionen drin und erst danach stellt sich heraus ob der Hash "gut" (also genügend führende Nullen hat bei aktueller Schwierigkeit) ist oder nicht.

Der Block wird verfasst, im Netzwerk nochmal von mehreren Clienten bestätigt und abschließend, finaly an den Blockchain
gehangen, welcher wiederum an alle Clients gesendent wird (Das ist bestimmt das "Synchronisieren"?)

Sobald der Block fertig ist wird er an alle anderen "full Nodes" (z.B. bitcoin-core oder spezielle varianten davon) geschickt. Diese prüfen ob der Hash korrekt ist (geht sehr schnell im Vergleich zum finden) und "hängen ihn hinten dran".
Synch: Wenn Du einen Client startest werden erstmal Verbindungen zu andern aufgebaut und geschätzt was so an Blöcken da sein müsste. Falls ein anderer Client einen unbekannten, fehlenden, nächsten Block hat wird der angefordert, bis alle vorhanden sind. Unter Windows liegen die unter %APPDATA%\Bitcoin\blocks in Dateien zu je 128 MB mit Namen blk00000.dat, blk00001.dat, etc.

Dieser Blockchain befindet sich ja dezentral.
D.h. jeder Client müsste ja den vollständigen Blockchain besitzen (technisch gesehen).

Korrekt, jeder full node besitzt eine vollständige Kopie der Blockchain (s.o.). Daher der Name "full" node. Alle anderen Wallets (thin, slim, SVP etc.) sind darauf angewiesen das diese Nodes die Blöcke speichern und ggf. zur Verfügung stellen. Die Prüfung können sie dann auch selber erledigen. Multibit macht das so. Wahlweise gibt es spezielle Server die als Full node für eigene Clients fungieren, wie z.B. bei Electrum. Die suchen auch ständig mehr Server.

Also befänden sich auf meinem PC sämtliche Transaktionen seit 2009 aller Konten und Wallets inkl. Wert/Public Key Empfänger/Absender etc.

Stimmt das soweit?

Ja, allerdings ist die Datenbank etwas unübersichtlich organsisiert. Es ist also nicht leicht nach bestimmten Informationen zu suchen. Technisch gesehen gibt es nur Ausgänge, Eingänge (ehemalige Ausgänge, die noch nicht verwendet wurden) und Überweisungen (Summe aller Eingänge = Summe alle Ausgänge - Minerfee). Man kann also nicht einfach mal nach ner bestimmten Adresse suchen.


Ok also ich habe da einen weiteren Artikel gefunden,
dort war das ganz gut erklärt.

Also der Miner findet einen "Block"!
Wenn er diesen gefunden hat, nimmt er sämtliche neue Transaktionen auf,
die bislang im Netzwerk bestätigt wurden.

Wie gesagt, erst TX rein, dann hashen, dann feststellen ist "gut".
Nein, im neuen Block sind keine "alten" Transaktionen. Jede bestätigte Transaktion ist in genau einem Block und zwar in dem der die ersten Bestätigung gemacht hat (verweiste Blöcke sind die Ausnahme zur Regel). Durch die Blockchain hat jeder Block einen eindeutigen Nachfolger (solange nicht grad 2 oder mehr konkurierende "längste" Ketten existieren) und Vorgänger. Wenn meine TX jetzt in Block n ist, und aktuell n+6 Blöcke existieren, dann hat die TX 7 Bestätigungen.

Der Miner, der den Block gefunden und die neuen Transaktionen in den Block importiert,
hängt diesen auch an die Blockchain an.

Genau genommen ist das schon vorher klar. Jeder Block enthällt u.a. auch einen Wert der den Vorgänger identifiziert, während des suchens ist also schon klar das der neue Block z.B.: Nummer 317105 sein wird. Sollte jemand anderes in der Zeit 317105 finden, ändere ich auf dessen Werte und bekomme automatisch einen anderen Block, 317106 eben.

Was ist dann aber, wenn im Jahre X alle Blöcke gefunden wurden?

Theoretisch kann das wohl passieren. Je höher die difficulty desto weniger "mögliche" Blöcke gibt es. Also genau genommen gibt es unendliche viele mögliche Blöcke, aber nur endlich viele hashes von diesen und von denen werden bei jeder Difficultysteigerung weniger akzeptabel. Das geht aber in die Richtung von: Ich generiere zufällig den selben privaten key wie Du. 2256 ist verdammt groß und jedes bit weniger bedeutet eine Verdoppelung der difficulty. [3]

-snip-
Ich habe auch gelesen, dass ein Block max 1Mb groß ist.

Das ist zur Zeit so. Lässt sich aber - wie die meisten anderen "Grenzen"- ändern sollte es nötig sein. Das kann sehr unschöne Folgen haben, daher ist es besser nur im Notfall einzugreifen.

Was, wenn aber aber Millionen Transaktionen in diesen 10min durchgeführt wurden
und der 1 Mb nicht ausreicht?
Dann staut sich ja das ganze oder nicht?

Ja. Gab es bis jetzt einmal soweit ich weiß am "Bitcoin Black Friday". Black Friday ist ein Tag an dem die Amis aus irgendwelchen Gründen alle losrennen und für Weihnachten einkaufen. Das gabs 2013 auch mit Bitcoin und hat das Netzwerk leicht überlastet.
Block 319592 [1] hat z.B. 1510 TX und ~731KB, im Schnitt [2] ist aber noch Luft nach oben. Mal schauen was die Feiertage dieses Jahr bringen.

[1] https://blockchain.info/de/block-index/462620/000000000000000027653ce5d171c86483e603909b96f2a9da51e1796923b630
[2] https://blockchain.info/de/charts/n-transactions-per-block
[3] http://bitcoin.sipa.be/speed-lin.png

Im not really here, its just your imagination.
BitMorpheus (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
September 08, 2014, 10:41:19 AM
 #7

TOP

Ihr seit alle super.
Danke für die vielen Infos und die gespendete Zeit zum Beantworten meiner Fragen  Smiley

Lg aus Hannover
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!