Author

Topic: Funktion und Sicherheit der Blockchain (Read 648 times)

copper member
Activity: 1498
Merit: 1499
No I dont escrow anymore.
November 24, 2016, 05:00:28 PM
#8
es wird kurz gesagt, immer alles gegen alles geprüft..

Das glaube ich, ich würde es halt nur gerne nachvollziehen.

1. Warum ist bei Faketransaktionen der Hashwert automatisch falsch?

Der Hashwert ist nicht falsch, einen neuen Hash für veränderte Daten zu berechnen ist simple. Der Hash ist lediglich eine Referenz. Der Output zur Referenz muss existieren und unbenutzt sein. Eine Referenz die ins Leere führt oder bereits benutzt wird und die Transaktion ist ungültig. Weiter stellt ein Output der noch verfügbar ist ("unspend transaction output" - UTXO) Bedingungen daran wie er verwendet werden darf. (s.u.)

Weil ich Coins nur von einer bestehenden Adresse versenden kann und ich bei einer Faketransaktion den korrekten Schlüssel nicht habe.

Coins werden nicht "von adressen" versendet. Es werden UTXOs (s.o.) ausgegeben. Wie ein UTXO der auf einer Adresse empfangen wurde ausgegeben werden kann, wird beim erzeugen der Adresse definiert. Am weitesten verbreitet sind die sog. Version 1 Adressen (die mit der 1 vorne). Auch bekannt als "pay to pubkey hash". Die Bedingung sieht dann wie folgt aus:

Code:
OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

Zu deutsch: Braucht die Unterschrift von einem privaten Schlüssel zu einem öffentlichen Schlüssel. ist der Hash vom öffentlichen Schlüssel.

Schritt für Schritt Abarbeitung des Stacks hier -> https://en.bitcoin.it/wiki/Transaction#Pay-to-PubkeyHash

2. Wenn ich selbst mining betreibe, kann ich mich darüber hinwegsetzen. Jetzt sagt ihr, dass der Miner des nächsten Blocks bzw. alle Nodes diesen Block auch prüfen. Wie funktioniert das genau? Ich stelle mir eine solche Aufgabe sehr rechenintensiv vor.

Eben nicht, weil du nicht über den privaten Schlüssel verfügst um eine gültige Unterschrift zu erzeugen. Du kannst natürlich irgendwelche falschen Daten in deinen Block machen, aber eine Block mit korrekten Daten ist zur Zeit 12,5 Bitcoin + Gebühren Wert. Der Betrugsversuch hat keine Chance. Da stellt sich für mich irgendwie nicht die Frage ob ich ehrlich bin oder Strom verschwende.
legendary
Activity: 2618
Merit: 1252
November 24, 2016, 06:51:04 AM
#7
Eine Transaktion muss eine definierte Form haben, die Inputs müssen Unspent Outputs referenzieren und sie muss korrekt signiert sein. Der Hash-Summe über die Transaktionsdaten muss zur Hash-Summe des Blocks passen. Jeder Knoten muss das alles für jeden Block und für jede Transaktion prüfen.

Die Aufgabe, einen Block zu verifizieren ist rechenintensiv. Aus diesem Grund benötigt ein neuer Knoten inzwischen mehrere Tage bis Wochen, um sich mit dem Netzwerk zu synchronisieren. Aus diesem Grund kann man auch die Anzahl der Transaktionen pro Block nicht deutlich steigern, ohne die Latenz bei der Verbreitung eines neuen Blocks zu erhöhen oder sogar schwache Knoten aus dem Netzwerk zu drängen.
hero member
Activity: 704
Merit: 559
online justice
November 24, 2016, 06:23:42 AM
#6
es wird kurz gesagt, immer alles gegen alles geprüft..

Das glaube ich, ich würde es halt nur gerne nachvollziehen.

1. Warum ist bei Faketransaktionen der Hashwert automatisch falsch? Weil ich Coins nur von einer bestehenden Adresse versenden kann und ich bei einer Faketransaktion den korrekten Schlüssel nicht habe.
2. Wenn ich selbst mining betreibe, kann ich mich darüber hinwegsetzen. Jetzt sagt ihr, dass der Miner des nächsten Blocks bzw. alle Nodes diesen Block auch prüfen. Wie funktioniert das genau? Ich stelle mir eine solche Aufgabe sehr rechenintensiv vor.
legendary
Activity: 2618
Merit: 1252
November 23, 2016, 06:05:48 PM
#5
Und ausserdem wird diese Prüfung sämtlicher Blöcke inklusive aller enthaltenen Transaktionen nicht nur von den Minern gemacht, sondern von allen Knoten im Netzwerk. Ein ungültiger Block kommt gerade mal bis zum nächsten Knoten und wird dort verworfen.
legendary
Activity: 2909
Merit: 1307
November 23, 2016, 04:37:25 PM
#4
Fake Transaktionen werden garnicht in den Mempool aufgenommen da der Hashwert ungültig ist.

es sei denn du nutzt deinen miner für die fake transaktionen, aber dann verwirft das der nächste miner im nächsten block.
Du musst dsa dann schon ne weile lang laufen haben und jeden block kontrolieren der danach kommt..

ist ganz schön teuer Smiley
(siehe shorena)

es wird kurz gesagt, immer alles gegen alles geprüft..
copper member
Activity: 1498
Merit: 1499
No I dont escrow anymore.
November 23, 2016, 03:35:22 PM
#3
Wenn ein Full Node einen Block prüft werden auch alle Transaktionen geprüft. Ist eine falsche dabei ist der Block(!) ungültig. Reicht also gerade mal bis zum nächsten Knoten und ist ziemlich teuer.
hero member
Activity: 683
Merit: 513
http://bitcoin-engrave.com/ & https://bitcore.cc
November 23, 2016, 03:30:33 PM
#2
Die Transaction wird ja im Hashwert in den Miningpool geschickt, und bei der Block Erstellung werden die Transaktionen aus dem Mem Pool gefischt. Fake Transaktionen werden garnicht in den Mempool aufgenommen da der Hashwert ungültig ist. Double Spend z.B. klappte auch nur wenn 2 unterschiedliche Mempools benutzt wurden, und die beiden Pools sich noch nicht ausgetauscht hatten.

Somit wird schon beim Broadcast der TXID Ihr Hash abgeglichen, und geprüft. Bei der Bestätigung wird das ganze dann fest geschrieben.
hero member
Activity: 704
Merit: 559
online justice
November 23, 2016, 03:13:21 PM
#1
Hallo, kann mir jemand allgemeinverständlich erklären, wie sich die Blockchain hinsichtlich des neuen Blocks "selbst" absichert?

Das mit der Referenz zum vorherigen Block und Proof of Work habe ich verstanden. Aber wie wird verhindert, dass ich nicht einfach Fake-Transaktionen in dem Block selbst unterbringe?

Vielen Dank!
Jump to: