mirror of
https://github.com/bitcoinbook/bitcoinbook
synced 2025-02-16 17:42:06 +00:00
Made changes to ch04.asciidoc
This commit is contained in:
parent
2edb6c690a
commit
4a5d549ee2
@ -107,6 +107,10 @@ $ sx newkey
|
||||
|
||||
<<ecc-curve>> is an example of an elliptic curve, similar to that used by bitcoin.
|
||||
|
||||
[[ecc-curve]]
|
||||
.An elliptic curve
|
||||
image::images/msbt_0402.png["ecc-curve"]
|
||||
|
||||
Bitcoin uses a specific elliptic curve and set of mathematical constants, as defined in a standard called((("secp256k1 curve standard"))) +secp256k1+, established by the((("National Institute of Standards and Technology (NIST)"))) National Institute of Standards and Technology (NIST). The +secp256k1+ curve is defined by the following function, which produces an elliptic curve:
|
||||
|
||||
[latexmath]
|
||||
@ -125,10 +129,6 @@ or
|
||||
\end{equation}
|
||||
++++
|
||||
|
||||
[[ecc-curve]]
|
||||
.An elliptic curve
|
||||
image::images/msbt_0402.png["ecc-curve"]
|
||||
|
||||
The _mod p_ (modulo prime number p) indicates that this curve is over a finite field of prime order _p_, also written as latexmath:[\(\mathbb{F}_p\)], where p = 2^256^ – 2^32^ – 2^9^ – 2^8^ – 2^7^ – 2^6^ – 2^4^ – 1, a very large prime number.
|
||||
|
||||
Because this curve is defined over a finite field of prime order instead of over the real numbers, it looks like a pattern of dots scattered in two dimensions, which makes it difficult to visualize. However, the math is identical as that of an elliptic curve over the real numbers. As an example, <<ecc-over-F17-math>> shows the same elliptic curve over a much smaller finite field of prime order 17, showing a pattern of dots on a grid. The +secp256k1+ bitcoin elliptic curve can be thought of as a much more complex pattern of dots on a unfathomably large grid.
|
||||
@ -214,15 +214,15 @@ To visualize multiplication of a point with an integer, we will use the simpler
|
||||
|
||||
<<ecc_illustrated>> shows the process for deriving G, 2G, 4G, as a geometric operation on the curve.
|
||||
|
||||
[[ecc_illustrated]]
|
||||
.Elliptic curve cryptography: Visualizing the multiplication of a point G by an integer k on an elliptic curve
|
||||
image::images/msbt_0404.png["ecc_illustrated"]
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Most bitcoin implementations use the((("OpenSSL cryptographic library"))) http://bit.ly/1ql7bn8[OpenSSL cryptographic library] to do the elliptic curve math. For example, to derive the public key, the function +EC_POINT_mul()+ is used.(((range="endofrange", startref="ix_ch04-asciidoc7")))(((range="endofrange", startref="ix_ch04-asciidoc6")))(((range="endofrange", startref="ix_ch04-asciidoc0")))
|
||||
====
|
||||
|
||||
[[ecc_illustrated]]
|
||||
.Elliptic curve cryptography: Visualizing the multiplication of a point G by an integer k on an elliptic curve
|
||||
image::images/msbt_0404.png["ecc_illustrated"]
|
||||
|
||||
=== Bitcoin Addresses
|
||||
|
||||
((("addresses, bitcoin", id="ix_ch04-asciidoc8", range="startofrange")))((("addresses, bitcoin","generally", id="ix_ch04-asciidoc9", range="startofrange")))A bitcoin address is a string of digits and characters that can be shared with anyone who wants to send you money. Addresses produced from public keys consist of a string of numbers and letters, beginning with the digit "1". Here's an example of a bitcoin address:
|
||||
|
Loading…
Reference in New Issue
Block a user