Skip to content

Commit 788b3fc

Browse files
committed
Fixed HTML file (Validator)
1 parent c6b3ba0 commit 788b3fc

File tree

4 files changed

+28
-16
lines changed

4 files changed

+28
-16
lines changed

src/howitworks.html

+26-14
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ <h2>Einleiung:</h2>
4545
Auch gibt es viele gute Tutorial auf YT, welche auch noch genauer erklären, wie eine Blockchain an sich
4646
funkioniert.
4747
</p>
48-
<iframe src="https://www.youtube.com/embed/muIv8I6v1aE" title="YouTube video player" frameborder="0"
48+
<iframe src="https://www.youtube.com/embed/muIv8I6v1aE" title="YouTube video player"
4949
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
5050
allowfullscreen>
5151
</iframe>
@@ -54,23 +54,26 @@ <h2>Generieren eines Private Keys</h2>
5454
<p>
5555
Das Generieren einer Bitcoin Adresse beginnt damit, einen random Private Key zu generieren.
5656
Es ist extrem wichtig, dass dieser Key möglichst zufällig erstellt wird. Wenn Angreifer in der Lage wären
57-
diesen Key zu erraten, sind sie dadurch auch automtisch in der Lage den Public Key und die Bitcoin Adresse zu
57+
diesen Key zu erraten, sind sie dadurch auch automtisch in der Lage den Public Key und die Bitcoin Adresse
58+
zu
5859
bestimmen. Dieser zufällig generierte Key wird anschliessend mit Hilfe des Haschingalgorythmus SHA256 in den
5960
eigentlichen Private Key verwandelt.
6061
</p>
6162

6263
<h2>Generieren des Public Keys</h2>
6364
<p>
6465
Im 2. Schritt wird aus dem Private Key ein Public Key generiert. Bitcoin benutzt dafür die Generierung eines
65-
Public Key ECC (Elliptic Curve Cryptography). Wie genau Elliptic Curve funktioniert, wird im nächsten Kapitel
66+
Public Key ECC (Elliptic Curve Cryptography). Wie genau Elliptic Curve funktioniert, wird im nächsten
67+
Kapitel
6668
beschrieben. Nun erhalten wir einen Public Key, welcher mit dem Private Key in Verbindung steht. Dabei ist
6769
aber wichtig zu wissen, dass man zwar jederzeit in der Lage ist vom Private Key den Public Key zu generieren
6870
aber nicht umgekehrt.
6971
</p>
7072

7173
<h1>Wie funktioniert ECC</h1>
7274
<p>
73-
Bei einer Elliptic Curve handelt es sich, wie der Name schon sagt, um einen Graphen. Die Formel um diesen Graphen
75+
Bei einer Elliptic Curve handelt es sich, wie der Name schon sagt, um einen Graphen. Die Formel um diesen
76+
Graphen
7477
zu erstellen lautet <b> y**2=x**3 + ax + b (mod p) </b>. In dieser Formel sind a, b und die Primzahl
7578
p fest definierte Werte, welche je nach Elliptic Curve varieren können. Bitcoin verwendet wie auch viele
7679
andere Altcoins secp256k1. In diesem Fall gilt <b>b = 7</b> und <b>a = 0 </b>.
@@ -80,15 +83,19 @@ <h1>Wie funktioniert ECC</h1>
8083
<figcaption>Beispiel von Secp256k1</figcaption>
8184
</figure>
8285
<p>
83-
Der Trick dabei ist es nun, Linien zwischen 2 Punkten (oder auch Addition) oder auch die Tangente einer Linie
86+
Der Trick dabei ist es nun, Linien zwischen 2 Punkten (oder auch Addition) oder auch die Tangente einer
87+
Linie
8488
zu zeichnen (Multiplikation) wenn nur
8589
ein Punkt vorhanden ist. Nun kann man dies x mal wiederholen, wobei x die Zahl des vorherig generierten
86-
Private Keys enstpricht. Das Ganze startet vom Generatorpoint aus, welcher eine Konstante ist. Nun könnte man
87-
sich natürlich fragen, warum ECC denn so sicher ist. Wenn man den Gerator Point hat und der Private Schlüssel
90+
Private Keys enstpricht. Das Ganze startet vom Generatorpoint aus, welcher eine Konstante ist. Nun könnte
91+
man
92+
sich natürlich fragen, warum ECC denn so sicher ist. Wenn man den Gerator Point hat und der Private
93+
Schlüssel
8894
nur daraus besteht den Gerator Point zu multiplizieren, gibt es eigentlich keinen Grund, den Generator
8995
Point so häufig zu multiplizieren, bis man den Public Key erhält. Allerdings vergisst man dabei einen
9096
wichtigen Faktor nähmlich die Zeit. Die Elliptic Curve Secp256k1 kann beispielsweise eine Private Keylänge
91-
von fast 2**256 haben. Wenn man nun in der Lage wäre 2**20 Additionen pro Sekunde durchzuführen (~1 Million),
97+
von fast 2**256 haben. Wenn man nun in der Lage wäre 2**20 Additionen pro Sekunde durchzuführen (~1
98+
Million),
9299
bräuchte man dennoch 2**256 / 2**20 = 2**12.8 Sekunden. Zum Vergleich: das Universum ist geschätzt etwa 14
93100
Milliarde Jahre alt (~2**34). Man bräuchte also 1/3 von der Zeit seit der Enstehung der Erde, um den Secret
94101
Key zu bestimmen.
@@ -98,7 +105,7 @@ <h2>Allgorythmus zum Generieren des Keys</h2>
98105
Schritte braucht. Die Antwort darauf ist einfach Multiplikation. Ein gutes Beispiel dafür wäre die
99106
Frage, wie viele Schritte man braucht um die Zahl x**8 auszurechnen. Viele Personen würden nun mit 7
100107
Antworten da x**8 = x*x*x*x*x*x*x*x ist. Allerdiengs wird dabei oft vergessen, dass man x auch
101-
multiplizieren kann. Die richtige Antwort wäre dann 3 <br />
108+
multiplizieren kann. Die richtige Antwort wäre dann 3 <br />
102109
<br /><b>
103110
0. x**1 = x <br /><br />
104111
1. x**2 = x**1 * x**1 <br /><br />
@@ -112,15 +119,17 @@ <h2>Komprimierte und unkomprimierte Keys</h2>
112119
Key um. Dabei gibt es bei Bitcoin 2 verschiedene Keytypen komprimierte und unkomprimierte. Der Unterschied
113120
besteht lediglich darin, dass bei einem unkomprimierten Key auch noch die Y Koordinate zu erhalten ist. Da
114121
die Elliptic Curve mit der Formel y**2 = x**3 + ax + b definiert ist, ist es nicht zwindgend notwendig beide
115-
Koordinaten abzuspeichern. Der unkomprimierte Key wird in Bitcon im folgenden Format dargestellt <b>04XY</b>.
122+
Koordinaten abzuspeichern. Der unkomprimierte Key wird in Bitcon im folgenden Format dargestellt
123+
<b>04XY</b>.
116124
Beim komprimierten Key kommt es darauf an, ob Y gerade oder ungerade ist. Wenn Y gerade ist, ist das Format
117125
<b>02X</b> und wenn Y ungerade ist, folgt das Format <b>03X</b>.
118126
</p>
119127

120128
<h2>Erzeugen einer Adresse</h2>
121129
<p>
122130
Von einem Public Key zu einer Adresse ist es lediglich einen weiteren Schritt. In diesem wird zuerst der
123-
entstandene Public Key durch SHA256 und anschlissend RIPEMD160 gehascht. Anschliessend wird eine 00 Byte (Für
131+
entstandene Public Key durch SHA256 und anschlissend RIPEMD160 gehascht. Anschliessend wird eine 00 Byte
132+
(Für
124133
Main Network) davorgesetzt. Dieser neu enstande String wird zwischengespeichert, da er später nochmals in
125134
dieser Form verwendet werden muss. Nun nimmt man ihn und wendet 2 mal darauf SHA256 an und nimmt die ersten
126135
4 Bytes, welche als Prüfzahl fungieren. Diese setzt man hinten an den zwischengespeicherten String an. Nun
@@ -132,8 +141,10 @@ <h2>Wie Vanity-BTC funktioniert</h2>
132141
<p>
133142
Unter Vanity BTC stellt man sich sofort einen extrem komplexen und durchdachten Algorithmus dar.
134143
Allerdings stimmt das so nicht, da keiner der oben beschriebenen Schritte umkehrbar ist (Was auch extrem
135-
wichtig für die Sicherheit ist). Deshalb ist man auch nicht in der Lage, auf Wunsch Adressen zu erstellen. Wenn
136-
man sich dennoch dazu entscheidet, dass man eine custom Addresse haben möchte, bleibt einem fast nichts anderes
144+
wichtig für die Sicherheit ist). Deshalb ist man auch nicht in der Lage, auf Wunsch Adressen zu erstellen.
145+
Wenn
146+
man sich dennoch dazu entscheidet, dass man eine custom Addresse haben möchte, bleibt einem fast nichts
147+
anderes
137148
übrig, als tausende oder millionen von Adressen zu generieren, bis man eine findet, welche in das gewünschte
138149
Pattern passt.
139150
</p>
@@ -142,7 +153,8 @@ <h2>Wie Passphrase-BTC funktioniert</h2>
142153
<p>
143154
Auch Passphrase-BTC ist kein Hexenwerk. Dabei nimmt man lediglich den String Input vom User und Hash ihn mit
144155
SHA256 wodurch man dann einen Private Key erhält. Nun gilt auch hier: same Imput, same Output. Sobald
145-
jemand den gleichen Key verwendet wie bereits jemand, hat dieser auch die Kontrolle über alle Bitcoins auf dem
156+
jemand den gleichen Key verwendet wie bereits jemand, hat dieser auch die Kontrolle über alle Bitcoins auf
157+
dem
146158
Konto. Aus diesem Grund sollte man als Passphrase einen langen Satz nehmen, welche nur einem selber bekannt
147159
ist.
148160
</p>

src/impressum.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ <h2>Kontakt Formular</h2>
5252
<textarea name="commentar" placeholder="Deine Nachricht" class="text-input" id="commentar" cols="30"
5353
rows="10" required></textarea>
5454

55-
<input type="submit" class="button custom-button" value="Send" text="Send">
55+
<input type="submit" class="button custom-button" value="Send">
5656
</form>
5757
</main>
5858

src/index.html

-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ <h2 class="warning">Warnung!</h2>
8686
</footer>
8787

8888

89-
</head>
9089
<!--Link to script to validate inputs-->
9190
<script src='./scripts/input-validator.js'></script>
9291
<!--Script to generate BTC Address-->

src/styles/main.css

+1
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ p {
246246
iframe {
247247
width: 35rem;
248248
height: 20rem;
249+
border: 0px;
249250
}
250251
.video-container {
251252
position: relative;

0 commit comments

Comments
 (0)