Transaktionen (technische Erläuterungen zu Bitcoin)steemCreated with Sketch.

in #deutsch6 years ago (edited)

Dies ist mein achter Artikel zum Thema Bitcoin (technische Erläuterungen). Hier eine Übersicht der sieben bisher erschienenen Artikel:

  1. Das Bitcoin-System
  2. Erfüllung der drei Transaktionsbedingungen bei Bitcoin
  3. Transaktionskonsens bei Bitcoin (Mining und Blockchain)
  4. Netzwerkknoten (Bitcoin)
  5. Bitcoin Kommunikationsprotokoll und aktuelle Registerversion; Verwaltung des Bitcoin Systems(BIP), Bitcoin ist Fiatgeld
  6. Pseudonyme und Zugriffsberechtigungen bei Bitcoin (Transaktionslegitimität)
  7. Sicherheit bei Bitcoin (Schlüssel und Pseudonyme), Einstieg Hahsfunktionen

Elliptische Kurven

(Eigentlich) sind wir jetzt bei den elliptischen Kurven angelangt. Der Grund weshalb hier jetzt trotzdem keine seitenlangen Beispielrechnungen und Erklärungen stehen ist der, dass ich ganz sicher nicht der größte Mathematiker auf Erden bin und in den letzten Tagen keine Motivation hatte mich dementsprechend umfangreich einzulesen (und einzurechnen:D). Falls extrem großes Interesse an diesem auf elliptischen Kurven basierenden asymmetrisch kryptografischen Verfahren besteht werde ich mir das vielleicht anders überlegen. Sonst werde ich den mathematischen Teil wie gesagt größtenteils skippen und nur kurze Erklärungen geben welches mathematische Verfahren verwendet wird und wieso.

Mit unserem jetzigen Wissen über Bitcoin brauchen wir uns auf jdenfall nicht verstecken:D Ich denke die aller wenigsten Verstehen den mathematischen Teil (vielleicht eine Handvoll Leute) bzw die meisten haben noch nie etwas von "elliptischen Kurven und zyklischen Gruppen" gehört:D

Wieso elliptische Kurven?

  1. Bei asymmetrischen Verschlüsselungsverfahren die auf elliptischen Kurven basieren werden für Signaturen (mit einem gewissen Mass an Sicherheit) um einiges kürzere Schlüssellängen benötigt als bei "herkömmlichen Verfahren" (ohne elliptische Kurven)
  2. Der Verschlüsselungprozess ist effizienter.

Bei Bitcoin wird ein Standard verwendet, durch den die elliptische Kurve definiert wird: secp256k1

Wie die Schlüssel erstellt werden wurde in einem älteren Artikel schonmal erwähnt(Artikel 6) aber hier nochmal. Der private key wird aus einer sehr sehr großen Zahlenmenge ausgewählt (siehe Artikel 6). Aus diesem wird dann den öffentliche Schlüssel berechnet. Dies geschieht durch Punkteverdopplung und Addition. Auf Deutsch heißt das ein Basispunkt G der elliptischen Kurve (der allgemein bekannt ist) wird mit dem privaten Schlüssel multipliziert. Der Punkt den man dann erhält ist der public key.

Signieren einer (Transaktions-)Nachricht

Wieder explizite Mathematik die ich überspringen werde. Grob gesagt:

  1. Wählen einer beliebigen Zahl i zwischen 1 und n-1 (Zahl wird nur einmal verwendet)
  2. Berechnung eines Punktes P=i*G 
  3. r=xp (x-wert des berechneten Punktes bestimmen)
  4. s=[i^-1(t+r+kp)]    t=Nachricht kp=private key
  5. Veröffentlichen der Nachricht t zusammen mit dem public key und der Signatur (r,s)

Überprüfung der Nachrichten Signatur

Wie wir wissen erhält ein beliebiger (vollwertiger) Knoten die Transaktionsnachricht dessen Signatur er nun überprüft.

  1. [u_1=(s^-1 *t)]
  2. [u_2=(s^-1 *r)]
  3. P=u_1 *G+u_2 *Kö
  4. Signatur gültig, wenn r=xp

_ ist bei mir für tiefgestellte Zahlen und ^ für hochgestellte Zahlen (da Strg++ bzw Strg+# bei Steemit nicht funktioniert)

Da wir den Mathe Teil so schnell durchgeskippt haben wars das auch schon (juhu:D)

Das nächste Thema ist jedoch auch ziemlich trocken.

Transaktionen und wie sie aufgebaut sind

Transaktionen sind Nachrichten (Transaktionsnachrichten)  über die wir in anderen Artikeln schon oft gesprochen haben. Hier werden wir näher darauf eingehen.

  • Transaktionsnachrichten werden über das Bitcoin Netzwerk (vollwertige)Knoten propagiert und fungieren als Zahlungsaufträge.
  • Transaktionsnachrichten sind die einzige Möglichkeit das Besitzrecht von Bitcoin Einheiten zu ändern.

Kleine Wiederholung:

Eine Transaktionsnachricht wird vom Initiianten einer Transaktion erstellt, kryptografisch signiert und an einen beliebigen Netzwerkteilnehmer (full node) geschickt. Der Knoten der die Nachricht erhält, wird diese anhand der kryptografischen Signatur prüfen (um die Transaktionslegitimität zu prüfen{sicherzugehen,dass die Nachricht wirklich vom Besitzer des Guthabens kommt}). Falls das passt wird eine kopie der Nachricht in den transaction pool des Knotens kommen und das Original wird an die Kontakte des Knotens weitergeleitet, die ebenso verfahren werden, bis das ganze Netzwerk von der Transaktion erfahren hat. (Daraus wird erkennbar, dass normale Transaktionen nicht storniert werden können; außer double-spend natürlich wie bereits erklärt).

Der Aufbau

Die Bestandteile einer Transaktion seht ihr im Bild. Selbstverständlich gibt es eine standartisierte Form nach dem Bitcoin Protokoll, die Abbildung ist daher nur eine vereinfachte Darstellung).


Jeder Output kann nur einmal verwendet werden. Falls ein Knoten eine Transaktionsnachricht erhält, die ein schon zuvor verwendeten Output als Input referenziert, wird er die Transaktionsnachricht ignorieren.

Wurde der Output nicht bereits zuvor als Input referenziert steht er für die neue Transaktion zur Verfügung. Diese Outputs nennt man unspent transaction outputs (UTXO) (Outputs die bisher nicht verwendet wurden). Die UTXO sind sozusagen die Wertspeicher des Bitcoin Netzwerkes und werden als Bestandteil einer Transaktion in der Blockchain gespeichert und können dann in einer beliebigen Transaktion als Input referenziert werden (alle nicht als Input referenzierten Outputs UTXO sind im Arbeitsspeicher jedes vollwertigen Knoten).

Jede Bitcoin Einheit ist Bestandteil eines nicht verwendeten Transaktionsoutputs.


Wenn eine UTXO von einem Input referenziert wird, muss diese komplett verwendet werden. Um dennoch präzise Beträge zu haben gibt es verschiedene Transaktionstypen, die entweder mehrere Inputs zu einem großen Output zusammenfügen oder einen großen Input in mehrere Outputs aufsplitten (Modifikation von Stückelungen/Wechselgeld).

Transaktionstypen

  1. Aggregierend: Eine beliebige Anzahl an Inputs wird zu einem einzigen Output zusammengefasst (mehrere Beträge können an eine einzige Auszahlungsbedingung geknüpft werden).
  2. Aufsplittend: Ein einzelner Input wird in eine beliebige Anzahl von Outputs aufgesplittet. (gängigste Transaktionsform). Hierbei übersteigt der vewendete Input den Output, sodass er Wechselgeld erhält, welches er zu seinen Gunsten auf eine zweite Adresse von sich schicken kann. (mehr Anonymität und Sicherheit)
  3. Weiterleitend: Ein einziger Input aus dem ein einzelner Output generiert wird.

Transaktionsgebühr

Die Summe aller Inputs/des Inputs muss mindestens so groß sein, wie die Summe der Outputs/des Outputs. Ist der Input größer als der Output bleibt eine gewisse Summe übrig. Diese Differenz (das Wechselgeld) wird (bei der aufsplittenden Transaktion auf eine nächste Adresse versand) und kommt als Transaktionsgebühr dem Miner zugute, der die Transaktion in die Blockchain aufnimmt (einen gültigen Block erstellt). Umso höher diese Differenz zwischen Input und Output (umso mehr Geld für den Miner übrig bleibt) umso schneller wird die transaktion in der Regel bearbeitet/bei der Auswahl der Transaktionen die in den Block des Miners kommen bevorzugt.


Durch diese Verkettung der Transaktionen entsteht eine Transaktionshierarchie, in der jeder Output eine klar nachvollziehbare Herkunft hat (bis hin zur jeweiligen Coinbase Transaktion).

Alle Transaktionen, die einen bestimmten Transaktionsoutput von vorherigen Transaktionen als Input referenzieren werden von den Knoten als Duplikate erkannt und verworfen.

Ein Output kann nicht mehrmals referenziert werden. Sonst würde er ja mit der ersten transaktion die sich auf diesen Output refrenziert konkurrieren.

Das war es mit diesem Artikel. Ich finde das ganze Input/Output Zeug ziemlich verwirrend, hoffe das euch das besser geht:D

Im nächsten Artikel werden wir noch ein paar Transaktions-"Feinheiten" behandeln und uns dann dem Thema "Transaktionskonsens" genauer widmen. Ein Thema das ich besonders interessant finde.


Quellen

 

  • Bild

Das Bild habe ich mithilfe von Paint 3D erstellt. Als Vorbild diente mir dafür die "Abbildung 44"aus dem Buch "Bitcoin, Blockchain und Kryptoassets von Aleksander Berentsen und Fabian Schär.

  • Mein Wissen über dieses Thema habe ich ebenfalls größtenteils aus diesem Buch.

https://www.amazon.de/gp/product/3738653929/ref=as_li_tl?ie=UTF8&tag=urdreamscomet-21&camp=1638&creative=6742&linkCode=as2&creativeASIN=3738653929&linkId=d95515f27071b70b443408ad7170a100Dies ist ein ref Link von mir zu dem Buch. 

  • Quelle über utxo und input/output

http://blockchain-nachrichten.com/blockchaintechnologien/utxo

https://de.bitcoin.it/wiki/Transaktion

 

Wenn euch der Artikel gefallen hat, dürft ihr mir gerne folgen und Feedback sowie einen Upvote dalassen. Werde selbstverständlich auf alle Fragen eingehen. 



Sort:  

Auch diesmal wieder sehr informativ.
ECDSA bringt halt nur nichts wenn die Implementierung scheiße ist. Sony hat es bei Playstation gezeigt wie es nicht geht. Satoshi Client beherbergt zwar nicht diese Probleme aber halt wie gesagt die Wahl von k
So wie ichs verstanden habe will nicht nur Ethereum auf Schnorr Signaturen umsteigen sondern für Bitcoin gibts auch schon ein BIP/Implementations Vorschlag. Vielleicht muss man also garnicht mal die Mathematik verstehen um zu prüfen ob eine Kurve ungeeignet ist. Aber hast recht in der Artikelreihe hier haben wir auch so schon viel gelernt.

PS. da du Medium Fan bist:
A: wieso nicht auch in Erwähnung ziehen dort zu schreiben
B: kennst du Hacker Noon is eine Seite von Medium, nur noch mehr Richtung Kryptos und so

Danke dir für dein Feedback:)

So wie ichs verstanden habe will nicht nur Ethereum auf Schnorr Signaturen umsteigen sondern für Bitcoin gibts auch schon ein BIP/Implementations Vorschlag.

Sehr interessant, jetzt wo dus sagst glaub ich auch mal was in die Richtung gehört zu haben.

Danke für den Medium Tipp, werde mir das mal anschauen. Glaub ich hab auch mal paar Hacker Noon Artikel gelesen aber nie genau die Seite angeschaut. Gibt bestimmt mehr Reichweite als hier.
Schreibst du auch bei Medium, wenn ja unter welchem Pseudonym? Würde ich gerne lesen:)
Grüße!

Nein aber spiele mit dem Gedanken. Brauche halt Kontakte in den Bereich, sollte es mit dem Portfolio was werden, müssen ja schließlich intelligente Entscheidungen getroffen werden.

Vom Einkommen her sind die meisten Plattformen naja ... daran würde ich mich nicht orientieren und auch nicht darauf bauen. Geld wird anders gemacht.

Ja ich denke dann ist Medium ein guter Ansatz. Da sind ja auch alle die im krypto Bereich vertreten sind irgendwie vertreten.

Ja bei Medium gibt es ja nur die "Claps" die ja kein Geld geben. Viele schreiben ja noch Bitcoin Adresse etc für Speisen hin aber denke nicht das da groß was zu verdienen ist:D

Aber natürlich hilfreich um ne gute Reputation und Kontakte zu erlangen.

Oh ich glaube da unterschätzt du Medium. Die Autoren verdienen dort ganz gut. Nur ist es zentralisiert und somit nicht für uns einsehbar. Medium lässt sich wenn du mehr als 5 Artikel pro Monat lesen willst oder die von professionellen Autoren, nämlich bezahlen. Und davon werden letzten Endes auch die Autoren bezahlt.

Kann sich also durchaus lohnen. Immerhin darfst du deine Inhalte auf so vielen Plattformen hoch laden wie DU willst. Es ist dein Artikel. Regeln mit Bildern und Quellen gelten natürlich wie hier. Nur CC0 und mit Quelle oder eigenes Material. Bei der Anmeldung kannst du deine Kontonummer angeben. Ob Steemit, Minds.com, Trybe usw. langfristig Konkurrenz sind wage ich zu bezweifeln. Die Plattformen sind teilweise zu sehr von Ideologien heim gesucht und schrecken damit "rationale" Autoren ab.

Stimmt, das mit dem bezahlen hatte ich ganz vergessen:D
Ist dann natürlich auch ein Grund wieso Steemit nicht mithalten kann. Sehe die Zukunft von Steemit aber dennoch positiv (vorallem wenn die Kurse allgemein wieder steigen und das Interesse an cryptos wächst).

Ein wirklich sehr informativer Artikel, werde bei Gelegenheit die früheren Posts deiner Serie nachlesen müssen... dann versteh vielleicht auch endlich ich alter noob was hinter der Währung abläuft.^^

Danke für dein Feedback!

Ja ich denke von vorne anzufangen macht Sinn:D

Ist zwar schon recht komplex aber ich denke grundlegend (Artikel 1-3) ist es auf jedenfall zu verstehen, wenn man mit einigermaßen Konzentration liest.
Die Artikel gerade gehen schon etwas tiefer in die Materie (schon über Grundwissen hinweg).

Hi UDCT,

vielen Dank für den tollen Artikel wiedermal.

Einige Sachen hatten wir ja schon im Vorfeld besprochen, deshalb konnte ich mich diesmal ganz locker-flockig durch den Artikel hangeln.

Danke übrigens, dass du die Gebühren nochmal erwähnt hast. Das mit dem Wechselgeld fand ich ziemlich einleuchtend.

Bzgl. der mathematischen Sache hab ich ürbigens ein auf den ersten Blick sehr informatives Buch names "Blockchain Grundlagen" von Daniel Drescher geschenkt bekommen. Sieht auf den ersten Blick richtig spannend und informativ aus und verzichtet fast vollständig auf Mathe. Da ich gerade mit meinem Aquarium beschäftigt bin, kam ich aber noch nicht zum Lesen.

Du kennst das Buch bestimmt schon. Was hälst du davon? Ist es ausführlich genug und vor allem korrekt beschrieben?

Danke nochmal

Chapper

Danke für deinen Kommentar!
Freut mich, dass das ganze Einleuchtend war:)

Das Buch kenne ich noch nicht, sieht aber wie du gesagt hast auf den ersten Blick ziemlich gut aus. Ich denke das Lesen wird dir viel bringen und bestimmt noch ergänzendes Wissen zu diesen Artikeln geben und dafür sorgen, dass das ganze sich besser einprägt.

Ich werde jetzt mal so langsam schauen, was ich so an Lektüre zu Iota finde um dann (wenn ich das ganze verstehe) ein paar Artikel zu Iota zu schreiben.

Grüße!

Freut mich, diese IOTA-Problematik it wirklich genau so interessant wie undurchsichtig.
Ich hab mal irgendwo gehört, dass dies im Vergleich zu Blockchain-Technologie total abgedrehte höhere Mathematik sei. Also schnall dich an ;-)

Ich freu mich drauf



This post has been voted on by the steemstem curation team and voting trail.

There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!

Alles richtig gemacht, ab an den Strand...

Du hast ein kleines Upvote vom German-Steem-Bootcamp erhalten.

Du findest uns im Discord unter https://discord.gg/HVh2X9B

Aktueller Kurator ist @don-thomas

Du möchtest keine Upvotes (mehr) von uns erhalten? Eine kurze Mittelung unter diesen Kommentar reicht.
Dem Upvote von uns folgt ein Trail der weitere Upvotes von unseren Unterstützern beinhaltet. Hier kannst du sehen wer diese sind und auch erfahren wie auch du uns und somit die deutschsprachige Community unterstützen kannst.

@urdreamscometrue, I gave you a vote!
If you follow me, I will also follow you in return!
Enjoy some !popcorn courtesy of @nextgencrypto!

You just planted 0.12 tree(s)!


Thanks to @urdreamscometrue

We have planted already 3598.00 trees
out of 1,000,000


Let's save and restore Abongphen Highland Forest
in Cameroonian village Kedjom-Keku!
Plant trees with @treeplanter and get paid for it!
My Steem Power = 39272.54
Thanks a lot!
@martin.mikes coordinator of @kedjom-keku
treeplantermessage_ok.png

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.033
BTC 64344.02
ETH 3142.36
USDT 1.00
SBD 4.01