Bitcoin Forum
June 14, 2024, 09:31:05 AM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Blockchain fälschung  (Read 212 times)
cryptoklaus (OP)
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
January 02, 2018, 04:06:25 PM
 #1

Hallo liebes Bitcoin Forum!

Da dies mein erster Post ist möchte ich mich gleich entschuldigen falls ich falsche Informationen habe oder dieses Thema schon diskutiert wurde, ich habe nichts dazu gefunden...

Ich habe vor kurzem über die Bestätigung der Transaktionen durch die Miner nachgedacht und dabei ist mir aufgefallen, dass ja eigentlich jeder Block der neu dazukommt in der Blockchain als richtig gespeichert wird, weil dessen Lösung  die erste ist die verbreitet wird (durch Proof of Work), oder (wenn nicht bitte ich um eine Erklärung Smiley)?

 Da habe ich mir die Frage gestellt ob die anderen Miner und Netzwerkteilnehmer überhaupt in der Lage sind diesen Block zu verifizieren, sie können ja in einem dezentralen Netzwerk gar nicht wissen ob ihre Transaktionen die richtigen sind...Meine Frage wäre daher: Können die Netzwerkteilnehmer das Ergebnis der Miner als richtig verifizieren und wie, und wenn nicht, wäre es dann nicht extrem leicht die Blockchain zu fälschen?

Lg Klaus
Chris601
Hero Member
*****
Offline Offline

Activity: 717
Merit: 581


View Profile
January 03, 2018, 08:48:48 AM
 #2

Hallo Klaus,

immer, wenn ich versuche die Technik hinter Bitcoin zu erklären, läuft es bei Anfängern darauf hinaus zu erklären oder zu erfragen, ob das Verständnis von Hashes vorhanden ist.
Anhand deiner Fragestellung denke ich, dass du weißt, wie hashen ganz grundsätzlich funktioniert.

Zunächst zu den Transaktionen: Doch - tatsächlich werden alle ankommenden Transaktionen nicht nur von den Minern sondern von allen Knoten im Netzwerk geprüft. Es wird geprüft, ob die zu sendenden Guthaben wirklich vorhanden sind und ob der Sender auch den Schlüssel hat, diese zu versenden (deshalb müssen sie signiert werden). Gibt es Probleme mit diesen Transktionen - wenn die Guthaben beispielsweise nicht vorhanden oder anderweitig ausgegeben wurden, werden die Transaktionen nicht im Mempool gespeichert, nicht weitergeleitet und erreichen noch nicht einmal die Miner.

Auch prüfen alle Knoten ankommende Blöcke auf eben diese gültigen Transaktionen und ob beispielsweise die erreichte Difficulty zur benötigten passt. Wenn irgend ein Miner einen ungültigen Block anbietet, wird dieser also vom Netzwerk der anderen Miner und der User abgelehnt.

Zum Prüfen der neuen Blöcke:

In der Blockchain stehen viele Metadaten und beim Minen und dem Aufnehmen der Transaktionen passieren viele Dinge und müssen viele Daten berücksichtigt werden.
Für das allgemeine Verständnis beschränke ich die nächsten Ausführungen auf ein Minimum.

Beim Minen werden neue Blöcke an die Blockchain angehangen. Dieser neue Block enthält neben der "Payload" (den Transaktionen), noch die aktuelle Zeit, ein paar zufällige Bytes und einen Bezug auf den vorherigen Block (dessen Hash).
Beim Minen packt der Miner also die aktuelle Zeit, den Hash des letzten Blockes, so viele Transaktionen wie er kann/will und ein paar zufällige Zeichen zusammen und hasht diese. Die aktuelle Difficulty sagt, dass dieser Hash mit einer gewissen Anzahl Nullen beginnt. Der Hex-Hash des letzten Blockes ist z.B. 000000000000000000382e05e9f3d19df49f4c5a6deff0c5eda7e4221c3b7ecf
Da es SEHR unwahrscheinlich ist, einen Hash mit so vielen Nullen zu erhalten, muss der zufällige Bereich mehrere Milliarden mal pro Sekunde geändert werden bis ein Hash gefunden wurde, der der aktuellen Diff entspricht. Das ist der Regelmechanismus, der dafür sorgt, dass nur durchschnittlich alle 10 Minuten ein Block gefunden wurde.
Wurde ein Block gefunden, der dem entspricht, wird er verteilt. Alle Knoten die diesen Block erhalten brauchen zur Prüfung allerdings kaum Rechenleistung (dank Hash).

Sie bekommen den Block und schauen ihn an: Sie können leicht prüfen ob alle enthaltenen Transaktionen gültig sind. Das machen sie für andere Transaktionen ja auch. -> erledigt.
Sie prüfen die enthaltene Zeit. Diese darf durchaus in einem Zeitfenster von mehreren Stunden variieren. Deshalb kommt es auch mal vor, dass der "neuere" Block eine "ältere" Zeit hat. -> Passt die, ist alles gut.
Im Block ist der Hash des letzten Blocks. ist der identisch mit dem der eigenen Blockchain -> passt.
Jetzt braucht nur noch der neue Block selbst gehasht zu werden und der/jeder Knoten kann sich sicher sein, dass der neue Block Okay ist und fügt den zur eigenen Blockchain dazu.

Es gibt noch viele Details, Forks, verwaiste Blöcke usw. Aber für das grundsätzliche Verständnis genügt meine Ausführung vielleicht.
parker423
Full Member
***
Offline Offline

Activity: 658
Merit: 101


View Profile
January 03, 2018, 01:40:49 PM
 #3

Stimmt es also nicht allgemein gesagt, dass Miner die Transaktionen bestätigen und dafür eine Belohnung in Form von der jeweiligen Währungen erhalten?

Wozu benötigt man einen Masternode?
Chris601
Hero Member
*****
Offline Offline

Activity: 717
Merit: 581


View Profile
January 03, 2018, 02:31:10 PM
 #4

Stimmt es also nicht allgemein gesagt, dass Miner die Transaktionen bestätigen und dafür eine Belohnung in Form von der jeweiligen Währungen erhalten?
Dieser Satz ist so allgemein, dass er weder falsch noch richtig ist. :-)

Die Aufgabe eines jeden Nodes -egal ob Miner oder nicht- ist es, Transaktionen und Blöcke zu prüfen und bei Gefallen Weiterzuleiten. Miner tun das auch und rechnen nebenher noch an neuen Blöcken. Haupteinnahmequelle ist in der Regel der Blockreward von aktuell 12,5BTC. Ein Miner KANN sich problemlos diese Coins schnappen und keine einzige weitere Transaktion bestätigen. Das kommt hin und wieder vor. Erst gestern wieder 2x https://blockchain.info/de/block/0000000000000000008ced1f5cf4d9311409aa8f096a2a136c23e421e6402925
Das ist für das System, das alle Beteiligten funktionierend erhalten wollen natürlich nicht zuträglich. Und außerdem lockt ja auch noch die Transaktionsgebühr, auf die die Miner scharf sind. Deshalb werden meist randvolle Blöcke erschaffen.
Sozusagen bekommen die Miner ihr "Hauptgeld" nicht durch die Transaktionen aber ein nettes Zubrot für jede aufgenommene Transaktion. Letzteres ist aber "freiwillig".

Wozu benötigt man einen Masternode?
Braucht man eben nicht! Jedenfalls nicht bei Bitcoin. Du benötigst nur ganz normale Knoten, Fullnodes eben.

Die Geschichte hat allerdings Knoten hervorgebracht, die eben NICHT Full sind. Diese funktionieren zwar (ggf. mit Einschränkungen) aber nur mit diesen kann das Netzwerk nicht funktionieren. Fullnodes braucht es schon deshalb, damit die komplette Geschichte (alle Blöcke und alle Transaktionen) wirklich abbildbar sind. Knoten ohne Blockchain speichern nur die für sie relevanten Daten und schmeißen den Rest  (der für Andere aber wichtig ist) weg.
parker423
Full Member
***
Offline Offline

Activity: 658
Merit: 101


View Profile
January 03, 2018, 02:58:52 PM
 #5

Ok du kennst dich sehr gut aus.
Eine allgemeine Frage habe ich noch weil es mich immer schon interessiert hat.

Was passiert technisch wenn ich Coins an eine falsche (nicht gültige) Adresse verschicke.
Sind diese Coins dann wirklich ins Nirvana verschwunden oder kann man diese noch retten?
Chris601
Hero Member
*****
Offline Offline

Activity: 717
Merit: 581


View Profile
January 03, 2018, 03:33:14 PM
 #6

Das ist (bei Bitcoin) praktisch nicht möglich, da die Adresse eine Prüfsumme hat (wie eine IBAN auch).
Vertippst du dich, wird die Adresse ungültig und deine Wallet wird die Transaktion gar nicht erst zulassen.

Es ist theoretisch möglich, dass du auch die Prüfsumme zufällig "richtig vertippst" Dann landen die Coins auf einer gültigen Adresse, für die niemand einen Schlüssel hat. Dann sind sie praktisch verloren, ja. Sie sind aber noch da, werden also nicht neu gemined oder so. Es ist als wenn du eine Euro-Münze im Pazifik versenkst und dir nicht merkst wo. Sie ist da, aber keiner hat eine realistische Chance, sie zu finden.
Ckjnow
Jr. Member
*
Offline Offline

Activity: 70
Merit: 1


View Profile
January 03, 2018, 04:51:28 PM
 #7

Ok du kennst dich sehr gut aus.
Eine allgemeine Frage habe ich noch weil es mich immer schon interessiert hat.

Was passiert technisch wenn ich Coins an eine falsche (nicht gültige) Adresse verschicke.
Sind diese Coins dann wirklich ins Nirvana verschwunden oder kann man diese noch retten?


Also theoretisch gibt es unter bestimmten Voraussetzungen schon noch eine Möglichkeit. Wenn man es schnell genug merkt und es die Transaktion weder in einen Block noch in den Mempool (Memory Pool) geschafft hat könnte man einen Double-Spend machen.
HINWEIS: In solch einem Fall kann man Double-Spending versuchen um seine Bitcoins zu "retten", sonst NIE.

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!