Bitcoin Forum
December 15, 2024, 04:54:23 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Was GENAU macht ein Miner?  (Read 1683 times)
Rave (OP)
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250



View Profile
April 28, 2013, 12:45:33 PM
 #1

Wikipedia meint folgendes dazu:
Quote
Als Mining wird die Bereitstellung von Rechenleistung für das Bitcoin-Netzwerk bezeichnet und wird mit neu erzeugten Bitcoins sowie Transaktionsgebühren belohnt. Die kryptographische Aufgabe beim Mining besteht darin, mittels zweifacher SHA-256-Berechnung einen Hash-Wert zu finden, der unterhalb eines gewissen Grenzwerts liegt. Der Grenzwert ergibt sich aus dem aktuellen Schwierigkeitsgrad, der in regelmäßigen Abständen von den Clienten so angepasst wird, dass durchschnittlich alle zehn Minuten ein Block gelöst, d.h. ein entsprechender Hash-Wert gefunden wird. Als Eingabedaten für die Berechnung des Hash-Werts dient dabei der Header des neu zu erzeugenden Blocks.
Bei neu geschaffenen Bitcoins besteht die erste Transaktion aus einer Überweisung der neu erzeugten Bitcoins zu einer beliebigen Wallet. Da hier jeder Teilnehmer bestrebt ist, seine eigene Wallet-Adresse einzusetzen, sind die Headerdaten zu denen der gesuchte Wert passen muss, für jeden Clienten unterschiedlich. Somit berechnet jeder Client eine etwas andere Aufgabe, wenn auch mit demselben Schwierigkeitsgrad. Die Nonce als beliebig gewählte Zahl dient dazu, den Hashwert der Eingabedaten so zu wählen, dass der aktuelle Blockkandidat die gesuchte Lösung ergibt. Mit einer Größe von 32 Bit ist der Nonce-Suchraum beim Mining nach einigen Sekunden oder Minuten durchlaufen. Um weitere Blockkandidaten zu prüfen, kann entweder der Zeitstempel oder eine weitere Nonce verändert werden, die sich in den Transaktionsdaten befindet.
Die Menge der neu erzeugten Bitcoins ist derzeit auf 25 Bitcoins pro Block beschränkt. Versucht ein Client mehr Bitcoins zu erzeugen als ihm zustehen, wird sein Block von anderen Clients nicht akzeptiert. Ursprünglich wurden 50 Bitcoins pro Block erzeugt. Diese Zahl halbiert sich alle 210 000 Blöcke, was etwa vier Jahren entspricht, sodass die maximale Anzahl an Bitcoins, die jemals erzeugt werden können, auf 21 Millionen festgelegt ist. Da ein Bitcoin (in der aktuellen Client-Version) in 100 Millionen Einheiten unterteilt werden kann, ergibt sich eine Gesamtzahl von  diskreten Einheiten.

Soweit alles klar. Aber kann mir das mal jemand im Detail erklären? Ein Miner sucht nach einem passenden Hashwert. Wodurch wird dieser Hashwert vorgegeben? Ich nehme an aus dem vorhergehenden Block. Aber mit welchen Werten? Überprüfen Miner gleichzeitig auch die vorhandenen Transaktionen? Läuft das parallel? Was läuft da im Hintergund? Wie sehen die Formeln aus? Ein Stück Quellcode wäre ebenfalls hilfreich Smiley

THX

Wanna spend some Bitcoins with a prepaid Master Card? All you need is a VirWox Account and a Skrill Master Card Wink
Rave (OP)
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250



View Profile
April 28, 2013, 09:24:59 PM
 #2

Ich habe dazu eine Ausführliche Grafik gefunden:



Die Formeln würden mich trotzdem noch interessieren. Wie fliesst beispielsweise der Difficulty Level bei diesen Berechnungen mit ein?

Wanna spend some Bitcoins with a prepaid Master Card? All you need is a VirWox Account and a Skrill Master Card Wink
klabaki
Full Member
***
Offline Offline

Activity: 224
Merit: 100

Ƶ = µBTC


View Profile
April 28, 2013, 09:53:32 PM
Last edit: July 22, 2013, 05:52:48 PM by klabaki
 #3

Die Formeln würden mich trotzdem noch interessieren. Wie fliesst beispielsweise der Difficulty Level bei diesen Berechnungen mit ein?
Ich kann dir auf die schnelle nicht alle Formeln erklären, aber vielleicht helfen dir diese paar Worte zur Difficulty:


Jeder neue Block muss mit einem Hash versiegelt werden, der 256 bits lang ist. Innerhalb des Blocks gibt es ein Feld, das beliebig verändert werden darf (sog. "nonce").
Die Aufgabe der Miner ist es, die Nonce solange zu verändern, bis die numerische Interpretation des Hash-Wertes kleiner ist als ein ganz bestimmter Wert: Der sogenannte "Target".

Je kleiner der Target ist, desto kleiner ist der Bereich, indem der Hash-Wert liegen kann, desto schwieriger ist es, eine passende Nonce zu finden.

Also: kleinerer Target -> Höherer Schwierigkeitsgrad

Um nun auch die Schwierigkeit als Zahl ausdrücken zu können, nimmt man den Kehrwert des Target, multipliziert mit dem maximalen Target:

difficulty = maximaler Target / aktueller Target

Der maximale Target ist also der höchste Wert, den der Target aus protokolltechnischen Gründen (wegen komprimierung) annehmen kann, und entspricht dabei der einfachsten Schwierigkeit (diffi = 1).

maximaler Target = 2^224 - 2^208 = hexadezimal FFFF0000000000000000000000000000000000000000000000000000
(wenn ich mich nicht vertippt habe Tongue)

Ƶ = µBTC

Wer den Satoshi nicht ehrt, der ist den Ƶibcoin nicht wert.
Mannfred
Newbie
*
Offline Offline

Activity: 41
Merit: 0



View Profile
May 10, 2013, 07:23:12 PM
 #4

Hallo Zusammen,

ich schließe mich hier mal an, weil meine Frage auf dem voran Gesagten aufbaut. Der Miner manipuliert also den nonce so, dass ein bestimmter Wert erreicht wird.

Meine Frage dazu ist: Wenn ich zwei baugleiche Rechner laufen lasse, die zur gleichen Zeit mit dem Mining starten, berechnen die dann nicht die gleichen Werte?

Oder anderes gefragt: Fließt ein Zufallswert in die Manipulation des nonce ein? Sonst würde ja immer der leistungsstärkste Rechner die Manipulation als schnellster abschließen.

Wenn diese Frage idiotisch ist, dann bitte ich um Nachsicht.
lame.duck
Legendary
*
Offline Offline

Activity: 1270
Merit: 1000


View Profile
May 10, 2013, 07:36:58 PM
 #5

Oder anderes gefragt: Fließt ein Zufallswert in die Manipulation des nonce ein? Sonst würde ja immer der leistungsstärkste Rechner die Manipulation als schnellster abschließen.

Nein, der Nonce ist immer ein 32 Bit wert der  stupide  hochgezählt wird, aber  der nonce ist nur ein Teil des eingangsverktors aus dem der hash berechnet wird, in der Rest gehen auch noch ein zeitstempel und anderes ein ...sonst könnte je ein Angreifer versuchen den Hash  aus einem  von jemand anders gelösten Block 'entwenden' und als selbsterrechnet ausgeben.
Mannfred
Newbie
*
Offline Offline

Activity: 41
Merit: 0



View Profile
May 10, 2013, 07:49:26 PM
 #6

Hmm. Und diese "anderen" Werte sind von Rechner zu Rechner verschieden? Wie kann dann ein Pool an "einer" Aufgabe rechnen?

Ich frage mich das konkret, weil ich abschätzen möchte, ob es für mich überhaupt sinnvoll ist, einen Miner laufen zu lassen. Denn wenn ich meinen Rechner oder auch nur den Miner neu starte und der immer wieder bei 1 anfängt, dann habe ich Bedenken, dass er immer wieder am Anfang beginnt und Werte durchrechnet, die er bereits (als nicht akzeptabel) berechnet hatte. Das wäre ja sinnlos.

Oder anders gefragt: Könnte ein Miner mit sagen wir mal nur 1 khash/sec überhaupt einen Treffer erzielen?
yxt
Legendary
*
Offline Offline

Activity: 3528
Merit: 1116



View Profile
May 10, 2013, 07:58:43 PM
 #7

@Rave
hast du eine Ahnung wo die Graf herkommt?
Finde die ganz cool, aber höhere Auflösung wär nett

BTCKano Pool██ ██
██ ██
██ ██
██ ██
██ ██
██ ██
██ ██
██ ██
██ ██
██
██
██
██
██ ██ ██
██ ██ ██
██ ██ ██
██ ██ ██
██ ██ ██
██ ██ ██
██ ██ ██
██ ██ ██
██ ██ ██
   ██
   ██
   ██
   ██
██ ██
██ ██
██ ██
██ ██
██ ██
██ ██
██ ██
██ ██
██ ██
   ██
   ██
   ██
   ██
Rave (OP)
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250



View Profile
May 10, 2013, 08:28:04 PM
 #8

Hier: http://bitcoinmininghowto.files.wordpress.com/2013/04/06bitcoin-1338412974774.jpg

Wanna spend some Bitcoins with a prepaid Master Card? All you need is a VirWox Account and a Skrill Master Card Wink
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!