256 位整數秘密指數是否定義了 X、Y 對?
我試圖更好地理解比特幣是如何工作的,但我被困住了。我讀過一篇部落格,展示瞭如何從 256 位秘密整數構造 WIF,直到那時,我想我都遵循了。
但是,當談到(X,Y)點時,我“迷路了”。
在以下有趣的範例中(其中 256 位秘密指數被故意設置為“1”),X 和 Y 的值是什麼定義的?
一個相關的問題:對於相同的秘密指數(在這種情況下為“1”),我們最終會得到不同的(X,Y)嗎?
secret exponent: 1 hex: 1 WIF: KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn uncompressed: 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf public pair x: 55066263022277343669578718895168534326250603453777594175500187360389116729240 public pair y: 32670510020758816978083085130507043184471273380659243275938904335757337482424 x as hex: 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 y as hex: 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 y parity: even key pair as sec: 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 uncompressed: 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\ 483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 hash160: 751e76e8199196d454941c45d1b3a323f1433bd6 uncompressed: 91b24bf9f5288532960ac687abb035127b1d28a5 Bitcoin address: 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH uncompressed: 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm
該範例是使用您可以在此處找到的實用程序生成的:
<http://blog.richardkiss.com/?p=371>
我通常使用以下類比來過度簡化事情:密鑰是您從已知點開始沿著已知曲線走多遠,而公共點是您完成時在曲線上結束的位置。如果你重複同樣的步行,你總是會在同一個地方結束。操作是不可逆的,因為曲線很複雜,你只能通過採取措施來弄清楚你在哪裡結束。給定一個目的地,你不知道怎麼去那裡,因為你必須走整數步。
對於 OP 來說,這個答案可能為時已晚,但對於以後遇到相同問題的人來說,它可能會解決問題。所以這裡是:
我假設您(就像我剛才所做的那樣)有這樣的誤解,即私鑰也是橢圓曲線中的一對 (x, y) 座標,就像公鑰一樣。好吧,簡單的答案,它不是。私鑰實際上只是一個數字,這裡稱為“秘密指數”。這個數字乘以生成器點,這就是您獲取公鑰的方式。
所以我們有:
K = k * G
其中K是公鑰,k是私鑰,G是生成點。所以這個生成點G;規範給出的常數是這裡的實際點。你的私鑰只是一個數字。生成器點與自身相加以提供公鑰的次數。
這可能會令人困惑,因為人們一直稱“指數”使它看起來像這裡有重複的乘法,而實際上我們所擁有的是重複的總和。因此,它可能應該被稱為“秘密因素”。但請記住,這是橢圓曲線乘法,而不是每天的正常乘法,所以我假設您可以隨意命名它。
只是稱它為“指數”有點誤導。