Pages:
Author

Topic: 51% Attacke und blockchain (Read 3339 times)

legendary
Activity: 1148
Merit: 1014
In Satoshi I Trust
August 31, 2013, 10:48:15 AM
#22
interessant in diesem zusammenhang, wieviel geld man bräuchte, um einen 51% angriff zu fahren:

https://www.resallex.com/bitcoin/brix
full member
Activity: 224
Merit: 100
Ƶ = µBTC
August 02, 2013, 11:13:50 PM
#21
Also dieser Mythos, Bitcoin würde von den Minern bestimmt werden, geht mir gewaltig auf die Nerven!

Ich sehe mit Freude, dass andere das auch so sehen und sogar Werbeflächen hier im Forum genutzt werden um da etwas Aufklärung zu machen:

Quote
Advertisement: It is a common myth that Bitcoin is ruled by a majority of miners. This is not true. Bitcoin miners "vote" on the ordering of transactions, but that's all they do. They can't vote to change the network rules.

Grin
hero member
Activity: 707
Merit: 500
August 02, 2013, 05:43:58 AM
#20
Ich persönlich halte auch nicht viel von den meisten AltCoins, dennoch sind Sie hilfreich um verschiedene Konzepte zu verstehen. Man muss ja eine Sache nicht gut finden die man verstehen will.

-> Also muss bei den TradeCoins irgendwo zumindest ein Miner laufen, damit es überhaubt zu irgendwelchen bestätigungen im Netzwerk kommen kann?

Jop.
Ob man das dann noch "miner" nennt, ist fraglich, aber zumindest muss irgendwas "Blöcke" berechnen, also eine nicht-triviale Arbeit verrichten, damit es Zeit und Rechenleistung brauchen würde, nach einer Fälschung die entsprechende Arbeit auf Basis der gefälschten Daten nachzuholen. Und weil sowas, wenn es zentral ist, angreifbar ist und Vertrauen erfordert, was ja genau nicht sein soll, muss es irgendeinen Anreiz für leute geben, Blöcke zu berechnen, das können halt Transaktionsgebühren sein, oder Block rewards, oder beides.
full member
Activity: 224
Merit: 100
Ƶ = µBTC
August 02, 2013, 05:22:40 AM
#19
@klabaki

Ich bin bei meiner Erklärung nicht von der ökonomischen Seite, sonder einfach von der technischen Seite herangegangen.

Transaktionen in kürzeren Ketten werden durch die Mehrheit des Netzes als nicht gültig angesehen, dies soll eine theoretische,doppelte Transaktion von Bitcoin zum gleichen Zeitpunkt verhindern....

Wer einen Angriff langfristig auf das Netz plant muss auch die Mehrheit der Clients hinter sich wissen.

Bestes Beispiel war doch als diese Jahr der 0.8er Client für ungültig erklärt wurde, obwohl mit ihm die längste Kette erzeugt wurde....die Mehrheit bzw. die Macht der Bitcoinfoundation hat dies Bestimmt.

Die Transaktionen in der für ungültig erklärten Kette wurden damit ungültig......

Ich hatte das Wort "gültig" nur auf die Transaktionen selbst bezogen, nicht auf den Zusammenhang, in dem sie sind...

Mir war schon klar, was du meinst, Wink aber ich wollte einfach schon länger mal etwas zu diesem Thema schreiben und da war das halt jetzt der Anlass. Es war also nicht als Antwort auf deinen Beiträg gemeint. Smiley
Ich meine, es könnten ja noch andere mitlesen oder per Suchfunktion darüber stolpern...

TL,DR:

Danke für den Tipp! Ein TL,DR war dringend nötig.

Ich hab' jetzt die Textwand ein bisschen durch Überschriften aufgelockert. Die unterstrichenen Teile in jedem Abschnitt sind jeweils das TL,DR.
hero member
Activity: 854
Merit: 500
August 02, 2013, 04:23:19 AM
#18
Ich persönlich halte auch nicht viel von den meisten AltCoins, dennoch sind Sie hilfreich um verschiedene Konzepte zu verstehen. Man muss ja eine Sache nicht gut finden die man verstehen will.

-> Also muss bei den TradeCoins irgendwo zumindest ein Miner laufen, damit es überhaubt zu irgendwelchen bestätigungen im Netzwerk kommen kann?
hero member
Activity: 707
Merit: 500
August 02, 2013, 04:19:59 AM
#17
Ich hab mich nur in BTC eingelesen, aber nach kurzem drüber schauen, schätze ich, dass da halt sclicht keine neuen Coins in den Blöcken generiert werden. Es werden aber trotzdem Blöcke generiert, um Transaktionen zu bestätigen, also quasi "mining" betrieben. Allerdings ist der Anreiz dafür lediglich die Transaktionsgebühren zu bekommen, im Unterschied zu BTC, wo man außer den Transaktionsgebühren auch eine (ständig sinkende) Belohnung für den Block selber bekommt.

Auf den erstem Blick halte ich aber ehrlich gesagt nicht viel von dem Konzept von Tradecoin.
Klingt wie jemand, der sein eigenes Monopoly-Geld entworfen hat, und jetzt gerne möchte, dass Leute das benutzen, damit es einen realen Wert erhält, und er plötzlich - Tadaa - ganz reich ist.
legendary
Activity: 1218
Merit: 1001
August 02, 2013, 04:16:19 AM
#16
@klabaki

Ich bin bei meiner Erklärung nicht von der ökonomischen Seite, sonder einfach von der technischen Seite herangegangen.

Transaktionen in kürzeren Ketten werden durch die Mehrheit des Netzes als nicht gültig angesehen, dies soll eine theoretische,doppelte Transaktion von Bitcoin zum gleichen Zeitpunkt verhindern....

Wer einen Angriff langfristig auf das Netz plant muss auch die Mehrheit der Clients hinter sich wissen.

Bestes Beispiel war doch als diese Jahr der 0.8er Client für ungültig erklärt wurde, obwohl mit ihm die längste Kette erzeugt wurde....die Mehrheit bzw. die Macht der Bitcoinfoundation hat dies Bestimmt.

Die Transaktionen in der für ungültig erklärten Kette wurden damit ungültig......
hero member
Activity: 854
Merit: 500
August 02, 2013, 04:08:28 AM
#15
Eine Transaktion wird einfach public gemacht.
Jeder Client kann sehen, dass das Geld überwiesen wurde.
Du kannst aber natürlich auch eine Transaktion erstellen, wenn du die BTC nicht hast.
Die wird dann als ungültig erkannt.

Wenn du nun aber gleichzeitig zwei mal deine gesamte Kohle an zwei verschiedene Adressen überweist, hängt es von der Reihenfolge ab, welche gültig ist, und welche ungültig.
Es kann sein, dass verschiedene miner von den Transaktionen in unterschiedlicher Reihenfolge erfahren. Je nachdem, welcher miner zuerst einen gültigen Block findet, und darin die aus seiner Sicht gültige Transaktion bestätigt, wird eine davon für das gesamte Netzwerk gültig, weil alle miner basierend auf diesem Block weiter rechnen. Das ist eine Bestätigung. Jeder weitere Block, der auf diesem basierend gefunden wird, ist eine weitere Bestätigung. Wenn jemand eine Transaktion nach 6 Bestätigungen akzeptiert, heißt das, er wartet, bis 6 Blöcke gefunden wurden, weil es dann extrem unwahrscheinlich ist, dass es jemand schafft, basierend auf einem alternativen Block, der die andere Transaktion enthält (und die, die der Empfänger kriegt als ungültig betrachtet) schnell genug neue Blöcke zu berechnen, um mit seinem alternativen Zweig die bisher gültige Blockchain in der Länge zu überholen, und damit seine Version zur gültigen zu machen.
Wenn es keine miner gibt, ist für jede Node die Transaktion gültig, von der sie als erste erfährt. Es kann also zum Beispiel sein, dass jemand ganz viele Transaktionen mit verschiedenen Empfängern erstellt, und ein Teil des Netzwerks glaubt, A hat die BTC, eines glaubt, B hat sie, usw. Kein Empfänger könnte so eine Transaktion akzeptieren, weil er nie wissen kann, ob derjenige, an den er das geld selber wieder ausgeben will, akzeptiert, dass ihm die BTC gehören, oder ob dort eine andere Transaktion als gültig angenommen wurde.

Durch das minen, also erstellen von neuen Blöcken, wird also quasi ein Konsens im Netzwerk hergestellt, wer welchen Kontostand hat und welche Transaktionen gültig sind.

tl;dr
Ohne miner keine Blöcke, ohne Blöcke keine Transaktionsbestätigungen, ohne diese keine eindeutige Lage, wer eigentlich wie viele BTC hat.

Danke für die Antwort

Aber wieso konnte bei diesem CrypotoCoin hier: https://bitcointalksearch.org/topic/ann-tradecoin-tdc-launched-242857 überhaubt jemals eine Transaktion akzeptiert werden?

hero member
Activity: 707
Merit: 500
August 02, 2013, 03:59:39 AM
#14
Eine Transaktion wird einfach public gemacht.
Jeder Client kann sehen, dass das Geld überwiesen wurde.
Du kannst aber natürlich auch eine Transaktion erstellen, wenn du die BTC nicht hast.
Die wird dann als ungültig erkannt.

Wenn du nun aber gleichzeitig zwei mal deine gesamte Kohle an zwei verschiedene Adressen überweist, hängt es von der Reihenfolge ab, welche gültig ist, und welche ungültig.
Es kann sein, dass verschiedene miner von den Transaktionen in unterschiedlicher Reihenfolge erfahren. Je nachdem, welcher miner zuerst einen gültigen Block findet, und darin die aus seiner Sicht gültige Transaktion bestätigt, wird eine davon für das gesamte Netzwerk gültig, weil alle miner basierend auf diesem Block weiter rechnen. Das ist eine Bestätigung. Jeder weitere Block, der auf diesem basierend gefunden wird, ist eine weitere Bestätigung. Wenn jemand eine Transaktion nach 6 Bestätigungen akzeptiert, heißt das, er wartet, bis 6 Blöcke gefunden wurden, weil es dann extrem unwahrscheinlich ist, dass es jemand schafft, basierend auf einem alternativen Block, der die andere Transaktion enthält (und die, die der Empfänger kriegt als ungültig betrachtet) schnell genug neue Blöcke zu berechnen, um mit seinem alternativen Zweig die bisher gültige Blockchain in der Länge zu überholen, und damit seine Version zur gültigen zu machen.
Wenn es keine miner gibt, ist für jede Node die Transaktion gültig, von der sie als erste erfährt. Es kann also zum Beispiel sein, dass jemand ganz viele Transaktionen mit verschiedenen Empfängern erstellt, und ein Teil des Netzwerks glaubt, A hat die BTC, eines glaubt, B hat sie, usw. Kein Empfänger könnte so eine Transaktion akzeptieren, weil er nie wissen kann, ob derjenige, an den er das geld selber wieder ausgeben will, akzeptiert, dass ihm die BTC gehören, oder ob dort eine andere Transaktion als gültig angenommen wurde.

Durch das minen, also erstellen von neuen Blöcken, wird also quasi ein Konsens im Netzwerk hergestellt, wer welchen Kontostand hat und welche Transaktionen gültig sind.

tl;dr
Ohne miner keine Blöcke, ohne Blöcke keine Transaktionsbestätigungen, ohne diese keine eindeutige Lage, wer eigentlich wie viele BTC hat.
hero member
Activity: 854
Merit: 500
August 02, 2013, 03:36:06 AM
#13
Vielen Dank klabaki!

Ein schöner Text. Vielen Dank, dass Du Dir so viel Zeit für die Beantwortung meiner Frage genommen hast.

Eine weitere Frage: Wenn der Miner nur die Reihenfolge der Transaktionen festlegt, so würde das wegfallen aller Miner nur bedeuten, dass alle Transaktionen gleichberechtigt währen. Oder wäre es so, dass ohne einen einzigen Miner kein neuer Block erstellt werden würde und folglich auch keine Transaktion in einen Block eingefügt werden könnte. Dies hätte zur Folge, dass kein Client (also allgemein Cryptocoin Wallet) jemals eine gesendete Transaktion bestätigen könnte? Richtig?!?

Ich weiß, dass ist eher eine hypotetische Frage, da so etwas zumindest bei den Bitcoins nicht passieren wird, dennoch interessiert mich die Antwort. Generell habe ich es immer nie so recht verstanden, warum im Bereich der AltCoins die Hashrate des Netzwerks als eine Art Qualitätsmerkmal des AltCoins verstanden wird.
hero member
Activity: 707
Merit: 500
August 02, 2013, 03:18:30 AM
#12
Klar könnte der seinen eigenen Client nutzen, aber wenn er zum Beispiel die Menge an BTC pro Block höher setzt, weil er meint, mehr zu minen, werden die Blöcke von allen anderen clients als ungültig erkannt. Andere miner würden auf der kürzeren Fork weiter arbeiten, weil die längere aus Blöcken besteht, die aus ihrer Sicht ungültig sind. Die Wallets von Beutzern, die Payment Systeme von Anbietern usw würden die Blöcke bzw Transaktionen der eigentlich längeren Fork nicht akzeptieren, wenn diese aus ihrer Sicht nicht den Regeln folgen.
Der Angreifer kann dann also fröhlich sich selber BTC überweisen, die er mit seinem Zeug generiert, oder an die Leute, die auch seinen geänderten Client verwenden.
Hat er aber vermutlich nichts von.

Wenn du die Regeln ändern willst, gelten die Regeln für alle, die deinen neuen Client verwenden, wenn das keiner tut, dann ist egal, wie viel Rechenpower dahinter steht.
fhh
legendary
Activity: 1206
Merit: 1000
August 02, 2013, 03:13:43 AM
#11
Sehr schön beschrieben klabaki.

TL,DR:

Nicht möglich ist:

  • Irgendetwas das gegen die Protokoll Regeln ist, wie z.B. mehr Coins pro Block erstellen, dies wird von den Nodes (Bitcoin-QT Client) geprüft und nicht durch das Mining

Könnte ein Angreifer nicht auch seinen eigenen Client nutzen, den er entsprechend modifiziert hat?

Oder würde das zwingend zu einem Fork führen?

legendary
Activity: 1232
Merit: 1001
August 02, 2013, 01:01:41 AM
#10
Sehr schön beschrieben klabaki.

TL,DR:

Das einzige was mit der Mehrheit an HashPower (>50%) möglich ist:

  • Alleinige Bestimmung welche Transaktionen bestätigt werden
  • Durch die längere Blockchain Blocks die von anderen Minern gefunden werden für "ungültig" erklären
  • Überschreiben von bereits gefunden Blocks und damit double spends von bereits bestätigten Transaktionen, ab dem Zeitpunkt da man >50% hatte


Nicht möglich ist:

  • In die Vergangenheit reisen und Blocks überschreiben die bereits gefunden wurden bevor man die Mehrheit hatte (im Prinzip schon, siehe Time Warp Angriff, würde aber eher auf nen 99,99% Angriff raus laufen --> praktisch unmöglich)
  • Stehlen von Coins
  • Irgendetwas das gegen die Protokoll Regeln ist, wie z.B. mehr Coins pro Block erstellen, dies wird von den Nodes (Bitcoin-QT Client) geprüft und nicht durch das Mining
full member
Activity: 224
Merit: 100
Ƶ = µBTC
August 02, 2013, 12:46:21 AM
#9
[...]

Der Strang, der am schnellsten wächst ist gültig, der Andere ist ungültig und damit auch alle in den Blöcken enthaltenen Transaktion.

Jemand der über 50 % des Netzwerkes beherrscht kann bestimmen welchen Verzweigung und damit welche Transaktionen gültig sind.

Es würde theoretisch sogar soweit gehen, dass er die Regeln komplett ändern könnte. (max Anzahl Bitcoin, Erzeugungsgeschwindigkeit der Bitcoin, etc...

Danke xtral, das war eine lexikonreife Erklärung. Smiley

Schöne Erklärung, aber leider ist der letzte Teil falsch.

Die längste Kette ist gültig, kürzere Verzweigungen sind ungültig. Das heißt aber nicht, dass die darin enthaltenen Transaktionen ungültig sind.
Eine Transaktion ist gültig, sobald sie mit dem privaten Schlüssel der sendenden Adresse signiert wurde. Die Aufgabe der Miner besteht nur darin, die gültigen Transaktionen zu bestätigen.

Der wichtige Unterschied ist: Sobald eine gültige Transaktion existiert, sind die Bitcoins der sendenden Adresse unwiderruflich ausgegeben. Die Bestätigungen sind nur dazu da, zweimaliges Ausgeben derselben Bitcoins zu verhindern.
Der einzige Grund, warum man überhaupt eine Blockchain macht, mit dem ganzen damit verbundenen Aufwand, ist es, die Reihenfolge der gültigen Transaktionen zu bestimmen. Das und wirklich nur das können die Miner machen.

Das:
Was passiert, wenn es irgendwann keine Miner mehr gibt...z.B. bei den LiteCoins in ein paar Jahren. Können dann ohne neue Blöcke keine Transaktionen mehr erfolgen?

Sowohl bei Bitcoin als auch bei "LiteCoin" kann die Blockchain im Prinzip unendlich lange wachsen. Solange die Währung noch benutzt werden wird, wird es immer neue Blöcke geben. Die Miner profitieren schließlich an den Transaktionsgebühren.
(Ich persönlich glaube aber, dass LiteCoin und die anderen ShitCoins Scrypt-Coins Roll Eyes nicht mehr lange benutzt werden werden...)
hero member
Activity: 707
Merit: 500
August 01, 2013, 05:03:43 PM
#8
Es wird nicht keine miner mehr geben.
Es sei denn, das ganze System stirbt.

Wenn alle anderen aufhören, zu minen, aber trotzdem noch BTC verwenden, dann kannst du ganz alleine als einziger miner sämtliche Transaktions-fees und Block-Belohnungen kassieren, und zwar mit egal wie wenig Rechenleistung (da sich die difficulty entsprechend nach unten korrigieren würde). Es werden also niemals alle aufhören, solange die Währung was wert ist, denn je weniger Leute mitmachen, umso profitabler wird es, das balanciert sich immer irgendwie aus.

Tradecoin sagt mir nichts, keine Ahnung wie das funktioniert, aber falls es da auch Transaktionsgebühren gibt, die derjenige bekommt, der die Transaktion bestätigt, gibt es auch ohne neu generiertes Geld stets einen Anlass, den "miner" laufen zu lassen.
hero member
Activity: 854
Merit: 500
August 01, 2013, 02:31:12 PM
#7
Ich glaube hier werden Begriffe durcheinandergebracht.

Die Blockchain ist das Protokoll aller Transaktionen.

Die geminten Bitcoin werden in der Blockchain registriert und der Miner hat den Schlüssel für die erzeugten Bitcoin.

Die Miner sind eigentlich in der Anfangszeit für 2 Dinge zuständig.

Sie generieren Blöcke und fügen in diese Blöcke die Transaktionen ein, dafür erhalten sie eine Belohung.

Durch die Belohnung werden die erzeugten Bitcoin verteilt.

Diese Blöcke werden zu einer Kette (Chain) zusammengefügt.

Werden aus irgendeinen Grund, zu gleichen Zeit zwei Blöcke erzeugt, verzweigt die Kette und und es gibt einen zweiten Strang.

Der Strang, der am schnellsten wächst ist gültig, der Andere ist ungültig und damit auch alle in den Blöcken enthaltenen Transaktion.

Jemand der über 50 % des Netzwerkes beherrscht kann bestimmen welchen Verzweigung und damit welche Transaktionen gültig sind.

Es würde theoretisch sogar soweit gehen, dass er die Regeln komplett ändern könnte. (max Anzahl Bitcoin, Erzeugungsgeschwindigkeit der Bitcoin, etc...



Danke xtral, das war eine lexikonreife Erklärung. Smiley

Ich glaube, jetzt habe ich es einigermaßen verstanden. Also ein Netzwerk in dem nur Transaktionen durchgeführt werden und bei dem es keine Miner gibt kann folglich nicht funktionieren. Ohne neu generierte Blöcke können also folglich auch keine Transaktionen in diese Blöcke eingefügt werden? Wieso können dann in Coins ohne Miner (z.B. TradeCoin) überhaubt Transaktioonen durchgeführt werden? Was passiert, wenn es irgendwann keine Miner mehr gibt...z.B. bei den LiteCoins in ein paar Jahren. Können dann ohne neue Blöcke keine Transaktionen mehr erfolgen?

Danke für die Hilfe...
legendary
Activity: 1218
Merit: 1001
August 01, 2013, 02:21:18 PM
#6
Ich glaube hier werden Begriffe durcheinandergebracht.

Die Blockchain ist das Protokoll aller Transaktionen.

Die geminten Bitcoin werden in der Blockchain registriert und der Miner hat den Schlüssel für die erzeugten Bitcoin.

Die Miner sind eigentlich in der Anfangszeit für 2 Dinge zuständig.

Sie generieren Blöcke und fügen in diese Blöcke die Transaktionen ein, dafür erhalten sie eine Belohung.

Durch die Belohnung werden die erzeugten Bitcoin verteilt.

Diese Blöcke werden zu einer Kette (Chain) zusammengefügt.

Werden aus irgendeinen Grund, zu gleichen Zeit zwei Blöcke erzeugt, verzweigt die Kette und und es gibt einen zweiten Strang.

Der Strang, der am schnellsten wächst ist gültig, der Andere ist ungültig und damit auch alle in den Blöcken enthaltenen Transaktion.

Jemand der über 50 % des Netzwerkes beherrscht kann bestimmen welchen Verzweigung und damit welche Transaktionen gültig sind.

Es würde theoretisch sogar soweit gehen, dass er die Regeln komplett ändern könnte. (max Anzahl Bitcoin, Erzeugungsgeschwindigkeit der Bitcoin, etc...


legendary
Activity: 1764
Merit: 1007
August 01, 2013, 09:05:11 AM
#5
Ich glaub, man muss mit den wesentlichen Dingen anfangen:

Wenn du ein dezentrales Netzwerk hast, dann gibt es keinen zentralen Verwalter, der sagen kann, was wahr und was falsch ist. Wahr ist einfach das, was die Mehrheit sagt. Also, in dem Fall, über 50%.

Warum ist "minen" (oder Rechenpower, Proof-of-Work) notwendig? Weil es grundsätzlich im Bitcoin-Netzwerk wie auch übrigen Internet eigentlich keine Identitäten gibt. Und es gibt auch hier wiederum keine zentrale Verwaltung wie ein Internet-Neuland-Einwohnermeldeamt, das global Identitäten registrieren und überprüfen kann. Es gibt also keine festen personengebundenen Accounts. Auch IP-Adressen, MAC-Adressen etc kann jeder Teilnehmer im Internet mehr oder weniger leicht einfach erfinden, somit könnte ein Angreifer z.B. viele Instanzen generieren, um so relativ leicht eine Mehrheit im Konsens über eine gültige Version der Bitcoin-Transaktionsdatenbank (Blockchain) zu erreichen.

Wenn man also bei Bitcoin über die gültige Version der Blockchain abstimmen will, dann kann man daher nicht nach "eine Person eine Stimme" vorgehen. Im Satoshi-Paper ist es beschrieben als "One CPU one vote", also "ein Rechenzyklus eine Stimme", da Rechenzeit praktisch das einzige ist, das man nicht fälschen kann. (Andere bisher bekannte Ansätze wären Proof-of-Stake, oder ein Web of Trust, aber die haben auch ihre Probleme.)
hero member
Activity: 602
Merit: 500
Vertrau in Gott
August 01, 2013, 08:05:16 AM
#4
Woher entnimmst du denn das man "alle Blöcke" finden kann? Wo hast du das gelesen? Es gibt unendlich viele Blöcke
hero member
Activity: 854
Merit: 500
August 01, 2013, 07:59:47 AM
#3

[...] >50%-Angriff

Falls der Angreifer mehr als die Hälfte der Hashrate des gesamten Netzwerks kontrolliert, hat dieser Angriff eine hundertprozentige Erfolgswahrscheinlichkeit. Da er Blöcke schneller als der Rest des Netzwerks generieren kann, kann er einfach so lange bei seiner alternativen Blockchain bleiben, bis sie länger wird als die Hauptblockchain.

Keine Anzahl von Bestätigungen kann diesen Angriff verhindern, allerdings erhöht das Warten auf Bestätigungen die Kosten des Angriffs, die ihn unprofitabel machen könnten oder so verzögern können, dass sich die Umstände ändern und der Angriff scheitert. [...]

Also wenn alle Blöcke bereits gefunden wurden (wie bei dem TradeCoin) kann also durch "mining" kein alternativer Blockchain kreiert werden? Lediglich könnte ein Angreifer durch meherere Sendeaufträge einen alternativen Blockchain erstellen??? Oder habe ich hier etwas völlig falsch verstanden?
Pages:
Jump to: