Edit: Theoretisch kann es also unendlich solche Coins geben. Die Berechnung wird aber immer komplexer, darum diese absurden Mengen an CPUs und Grafikkarten.
Nein. Nicht beim Bitcoin.
Das ganze basiert auf einer Hash-Funktion. Eine Hash-Funktion gibt dir SCHNELL einen eindeutigen Wert zurück für eine Menge an Daten, die als "Ganzes" eingegeben werden. Hash-Funktionen sind überall in der Informatik zugegen. Einfaches Beispiel:
Woran kannst du feststellen, dass etwas, was du gedownloadet hast, auf dem Weg zu dir nicht manipuliert wurde? Ganz einfach: Der Urheber nutzt eine Hash-Funktion und gibt den Wert, den er da bekommt auf seiner Homepage an. Wenn du das EXE (als Beispiel) gedownloadet hast, nutzt du die gleiche Hash-Funktion und solltest - so wenn nichts manipuliert wurde - dann den gleichen Wert bekommen, der auch auf der Homepage steht.
Jetzt zum Mining. "Mining" ist eigentlich ein dummes Wort. Eigentlich müsste man es "Try out" nennen
Was passiert da? Was machen die?
Zuallererst ein kleiner Grundkurs zu den Blockchains. Wie funktioniert das?
Nehmen wir an, im ERSTEN Block steht, dass du 5 Euro hast: McPete 5
So. Was hat da jetzt Mining mit zu tun? Folgendes passiert. In der Blockchain ist alles eine Transaktion. EINE Transaktion ist EIN Block. Dein Block wäre also - so wenn es der erste in der Chain wäre:
Owner
McPete
Amount
5
Origin
-
HashValueOfPreviousBlock
-
ConfirmationData
(to be defined)
ConfirmationHash
(to be defined) <--- Mining
Reward
-
So. Das Netzwerk sagt jetzt den ganzen "Minern", dass es eine Transaktion gibt, die "bestätigt" werden muss.
WIE wird das jetzt bestätigt? Mit einer sogenannten Challenge zu den HashValues. Du siehst, dass es noch einen freien Wert gibt im Block, der "ConfirmationData" heißt. Dieser Wert kann vom "Miner" beschrieben werden. Im Endeffekt muss der Miner also den Block jetzt hashen. Er wird jetzt also also "GANZES" für die Hashfunktion nehmen:
Owner + Amount + Origin + HashValueOfPreviousBlock + ConfirmationData + Reward und das Hashen. Das Ergebnis schreibt er dann in den Platz "ConfirmationHash".
Aber was ist denn da jetzt so schwierig? Erstmal nix. Aber das Netzwerk gibt dem Miner eine Tücke! Es sagt dem Miner, dass ein Block nur bestätigt werden kann,
WENN der Hash, der errechnet wird, mit X-führenden (basierned auf der derzeitigen Länge der Chain) 0en beginnt.
Ein Hash sieht normalerweise so aus: A3F0123012BC... (stark vereinfacht).
Aber wie kann der Miner jetzt das Ergebnis beeinflussen? Dafür hat er ja eben dieses "ConfirmationData", was er noch in den Block selbst packen kann. Im Endeffekt versucht er jetzt also EINEN Wert (und der kann SEHR groß sein) zu finden, so dass die Hashfunktion dann eben den Anforderungen (also der Challenge) des Netzwerks besteht. Wenn er einen solchen Wert findet, schreibt er den rein und schickt das dann zurück ans Netzwerk. Das Netzwerk nimmt den Wert, berechnet den HashWert. Schaut, ob der HashWert so passt und belohnt dann den Miner. UND DIESES Ausprobieren ist mittlerweile so extrem aufwendig! Eine Hashfunktion ist eine "analytisch", bewiesene unidirektionale Abbildung. D.h. sie funktioniert nur in eine Richtung. Anhand des Hashwertes kann man NICHT sagen, was der Ausgangswert war. Man MUSS ihn erraten.
Warum ist die Blockchain nicht manipulierbar?
Nun ja. Mit unendlichem Aufwand würde es gehen, aber mit den "normalen" Ressourcen nicht. In jedem Block ist der errechnete Wert des vorherigen Blocks mitinbegriffen. Manipulier ich also EINEN Block in der Chain, müsste ich dann ALLE DANACH auch manipulieren und wieder neu minen. JEDE TRANSAKTION. JEDE EINZELNE!
Woher weiß ich dann, wieviel Coins ich wirklich habe?
Es gibt keinen "aktuellen" Wert. Man muss IMMER - zumindest ist das bei Bitcoin so - ALLE Transaktionen durchgehen und eben nach dem Nutzer im Block und dessen Bewegungen suchen und dann ALLE (!!!) Bewegungen summieren. Der errechnete Wert ist dann eben der "Besitz". Aber keine Angst. Das macht das Netzwerk und das Netzwerk hält zwischendrin "Snapshots", dass das bissl schneller geht.