Okay, also der Sinn von diesen kryptografischen Hashfunktionen ist gerade das man von dem Hashwert nicht auf den Ursprung schließen kann. Also du kannst aus einem Hashwert einer kryptografischen Hashfunktion nicht erkennen aus welchem Wert das ganze entstanden ist.
wie unterschiedlich lange Datenpakete (also zum Beispiel ein Buch vs. ein einziges Wort) die gleiche Hashlänge erzeugen
Der Input ist einfach ein Wert auf dieser Hashfunktion und dieser Hashwert ist dann der Wert der Hashfunktion an der Stelle des Input Werts.
Die Nonce ist grob ganz einfach zu erklären. Die Nonce ist einfach ein Raum für arbiträre Zahl im Block der einfach verändert werden kann. Die Block ID (Identifikationsnummer) wird ja aus dem Block berechnet (mit einer Hashfunktion). Diese Block ID ist also abhängig vom Inhalt des Blocks. Und die Block ID muss unter einem gewissen Schwellenwert liegen, damit der Block ins Blockchain Register kommt. Und da man bei einer Hashfunktion (bei SHA 256) nicht weiß welcher Input (also welcher Block Inhalt) welchen Hashwert liefert muss man einfach den Block Inhalt so lange ändern, bis die Block ID unter dem Schwellenwert liegt. Soweit verständlich hoffe ich:)
Also der Hashwert des Block Inhaltes (Block ID) ist jetzt vereinfacht gesagt 12. Der Schwellenwert liegt aber bei vereinfacht gesagt 6 als beispiel. Nun kann der Block nicht ins Blockchain Register, da die Block ID zu groß ist. Also muss der Miner den Block Inhalt solange ändern bis die Block ID unter 6 liegt (der Miner muss das machen da er nur wenn sein Block vom Blockchain Register angenommen wird, er die Belohnung bekommt (die sogenannte Coinbase Transaktion bei der ein paar neue Bitcoins geschaffen werden die der Miner bekommt).
Also jetzt könnte der Miner den Block Inhalt ändern in dem er ein paar Transaktionen aus dem Block wirft oder neue reintut und so weiter. Aber das wäre doof:D Daher gibt es die sogenannte Nonce. Also verändert der Miner einfach nur die Nonce und kann sonst alles im Block gleich lassen. Aber durch die veränderte Nonce (andere Zahl) ist der Block Inhalt anders und daraufhin wird auch der Hashwert des Blocks anders und damit auch die Block ID. Diese neue Block ID ist jetzt zum Beispiel 9. Immernoch nicht unter dem Schwellenwert. Also nimmt der Miner wieder eine andere Nonce. Diesesmal ist der Hashwert des Block Inhaltes (und damit auch die Block ID) 3 das ist unter dem Schwellenwert das heißt der Block wird angenommen, kommt in die Blockchain und der Mimer bekommt seine Belohnung:)
Ja das Thema ist doch relativ komplex aber ich denke wenn man sich meine Posts (Oder das verlinkte Buch) ein paar mal durchliest versteht man es. Ist natürlich gerade bei den Posts schwierig, da ich ja nur alle paar Tage welche schreibe und man bis dahin vielleicht schon wieder die Hälfte vergessen hat:D
Danke für deine Frage, ich hoffe die Erklärung der Nonce hat jetzt geholfen! die Sache mit der Nonce kannst du in Artikel 3 (oben im Artikel verlinkt) auch nochmal im gesamten durchlesen.
Grüße:)
Kann mich dem nur anschließen ein hammer Artikel! da macht das Lernen Spass :D Komme sicher nochmal mit Fragen zurück ^^
Zum Quantencomputer:
Mit nen Grover-Algorithmus auf SHA-256 (also schon die zeitsparende Bruteforce-Alternative)
https://arxiv.org/pdf/1603.09383.pdf
man kann davon ausgehen, dass aufgrund der ökonomischen Grenzen, man nur einen Schuss hat (wenn überhaupt) und diesen wendet man nicht auf Bitcoin an, sondern auf US-Atom Silos oder so.
Danke für dein Feedback!
Dann hoffe ich, dass ich die beantworten kann:D
Dieser Grover-Algorithmus macht es doch möglich, vom Hashwert der SHA-256 Funktion auf das Urbild(den Input) zu schließen oder? Das würde ja diese kryptografische Hashfunktion in gewisser Weise useless machen. Muss mir da nochmal deinen Kommentar unter meinem letzten Artikel anschauen:D
Die pdf schau ich mir morgen nochmal genauer an, sieht ganz interessant aus, danke für die quelle und aufklärung;D
Ja wenn die Energie nur für einen Versuch reichen wird, wird der wohl kaum genutzt werden um Bitcoin zu zerstören:D
Grüße:)
Auf jeden Fall,
ich hab das Gefühl es immer besser zu raffen. Sehr fruchtbare Diskussion hier, vielen Dank.
Posted using Partiko Android
Wow Lauch krasses Dokument, ich glaub soweit bin ich noch nicht.
Gruß
Chapper
Posted using Partiko Android
Hi, vielen Dank für deine Mühe. Bei den Transaktionen kommt es demnach darauf an, es dem Hash eines jeweiligen Blocks rechtzumachen und damit niemand zu kurz kommt packt man eine Nonce vorn dran damit jede Transaktion potentiell in einen Block aufgenommen werden kann.
Demnach gibt es einen Mini-Hash (meine Transaktion bestehend aus Publik key, Inhalt und Signatur durch meinen Private key) und einem Mega-Hash, welcher die Block-ID beinhaltet, die eine Schwelle definiert welche niemals überschritten werden darf. Die Nonce stellt sicher, dass man tolerant jeden berücksichtigt uns letztlich alles in jeden Block reinkriegt. Weil das Ganze aber pervers komplex ist, kann man die Nonce nicht einfach so rausrechnen sondern muss rumprobieren bis das passt. Bis man dann mal Glück hat braucht somit ordentlich Rechenpower, bekommt aber den Reward, welcher sich aus Transaktiongebühr + X ergibt.
Vielleicht noch eine Frage: Was ist das X? Wo kommen die Coins her?
Gracias
Chapper
Posted using Partiko Android
Ja genau!:)
Aus was genau eine Transaktion besteht werde ich auch novhmal in einem Artikel schreiben (ich denke es werden noch so 4 Artikel kommen dann ist das Thema durch).
Den Reward den du X genannt hast, den die Miner bekommen ist diese sogenannte Coinbase Transaktion. Komischer Name bedeutet aber einfach, dass wenn ein Block der von einem Miner erzeugt wurde vom Netzwerk angenommen wird und der Block in die Blockchain kommt ein paar neue Bitcoin Einheiten geschaffen werden. Es gibt ja zurzeit jeden Tag mehr Bitcoin Einheiten. Irgendwann wird es 21 Millionen Bitcoin Einheiten geben(das ist die im Code festgelegte Grenze). Zurzeit gibt es glaub knapp 18 Millionen Bitcoins. Die Zahl der Bitcoins nimmt in einer immer flacher werdenden Wachstumskurve zu(da es immer länger dauert Bitcoins zu Minen also einen Block zu erstellen der vom Netzwerk angenommen wird.
Dieser Vorgang ist also dieses sogenannte Minen bei dem neue Bitcoins gemined werden. Und diese Bitcoins die neu erschaffen werden wenn ein neuer Block in die Blockchain kommt, die kriegt dann der Miner(der das ganze Hashwert zeug etc berechnet hat:D) als Belohnung.
Die Coins kommen also sozusagen aus dem nichts beziehungsweise werden neu geschaffen.
Diese Schwellenwert Sache (Hashwert des Block Inhaltes darft nicht höher als Schwellenwert xy sein) ist also auch dafür da, dass nicht alle paar Sekunden neue Bitcoins erzeugt werden, weil diese Berechnung einfach im Schnitt ziemlich lange dauert (circa alle 10 minuten kommt ein neuer Block in die Blockchain). Und wenn alle paar Sekunden einer kommen würde könnte sich das komplette Netzwerk gar nicht so schnell austauschen welcher Block den jetzt der aktuellste ist. Daher gibt es diesen Schwellenwert der Block ID. Dieser Schwellenwert ist sozusagen eine künstlich Beschränkung der Block Annahme (einfach das ed langsamer wird).
Also die Belohnung x ist die sogenannte Coinbase Transaktion, bei der neue Bitcoins geschaffen werden, die die Belohnung für den Miner darstellen.
Jo prima, allmählich rearrangen sich meine Synapsen zu dem Thema.
Vielleicht noch eine Frage zu den 10 min. Diese Block Time setzt doch bestimmt auch voraus, dass definitiv einer gerade die korrekte Lösung gefunden hat. Bleiben andere Blöcke die geschürft wurden erstmal liegen? Was ist wenn nicht alle 10 min ein neuer Block erzeugt werden kann. Bricht die Chain dann irgendwann auseinander bzw. hat diese irgendwelche Folgen?
Vielen Dank und
Servus
Chapper
Posted using Partiko Android
Ah sehr gut:)
Die 10 min sind einfach nur eine durchschnittszeit.
Wenn es schneller geht/langsamer kann der Schwellenwert dementsprechend angepasst werden. Umso kleiner der Schwellenwert wird, umso schwieriger wird es den richtigen Blockinhalt zu finden, der den richtigen Hashwert(Block ID) erzeugt. Also der Schwellenwert kann angepasst werden damit diese Zeit immer ungefähr gleich bleibt (auch wenn Computer leistungsfähiger werden etc) kann man die Zeit dadurch im Schnitt gleich halten.
Und wenn ein neuer Block in die Blockchain kommt müssen alle Miner dessen Block ID als Referenz nehmen. Da ist in Artikel 3 ja auch die Abbildung wo man dies schematisch sieht.
Viele nDank und Daumen hoch!
Freu mich auf deinen nächsten Artikel.
Gruß
Chapper
Hi, vielen Dank für deine Mühe. Bei den Transaktionen kommt demnach darauf an, es dem Hash eines jeweiligen Blocks rechtzumachen und damit niemand zu kurz kommt packt man eine Nonce vorn dran damit jede Transaktion potentiell in einen Block aufgenommen werden kann.
Demnach gibt es einen Mini-Hash (meine Transaktion bestehend aus Publik key, Inhalt und Signatur durch meinen Private key) und einem Mega-Hash, welcher die Block-ID beinhaltet, die eine Schwelle definiert welche niemals überschritten werden darf. Die Nonce stellt sicher, dass man tolerant jeden berücksichtigt uns letztlich alles in jeden Block reinkriegt. Weil das Ganze aber pervers komplex ist kann man die Nonce nicht einfach so rausrechnen sondern muss rumprobieren bis das passt. Bis man dann mal Glück hat braucht ordentlich Rechenpower,pü
Posted using Partiko Android