一分鐘瞭解影響未來的技術-區塊鏈(3):區塊鏈的賬戶體系(二)

前一篇我們對區塊鏈的賬戶體系有了簡單的理解,下面我們詳細瞭解下賬戶保存與流轉過程

我們都知道在銀行開戶,直接拿身份證,去銀行櫃檯,或者在線上開一個賬戶就可以了,銀行給我們一個賬號,然後我們就可以針對這個賬號對存取錢,或者開證明。那在區塊鏈中的賬戶是怎麼開的呢?

上一篇中我們瞭解了賬戶是由私鑰生成的,私鑰是任何人都可以根據算法隨機生成的,我們用SHA256生成一個256位的數字就可以了,這樣我們就有了私鑰,前面我們講到,私鑰可以產生地址,這樣我們就相當於有了銀行賬號,不同的是我們的這個地址在區塊鏈網絡上是沒有登記的(沒有登記也是可以查詢的歐),那麼如何才能把你的賬號登記在區塊鏈網絡上呢,只需要成爲一個有用的地址,如:有了餘額、成爲合約地址。那麼你的地址就在區塊鏈上公開登記了,其它人都可以查詢你的地址信息。

通過上面我們知道了私鑰生成的原理,下面我們來看一個私鑰 6954ac6d0402d7239f1cc150da224d0ef08fd1226f245f06fe4d6d68accfce8a 這麼長的一個數字,是不是很不方便記憶,機器好記憶,人記起來可就麻煩了,所以就有了便於記憶的私鑰生成保存方案

助記詞:它是這個樣子的


hunt reason couple jaguar umbrella absent jungle warrior renew photo achieve bleak crack brisk gift


翻 災 須 玉 郎 了 殖 霍 芽 泡 個 展 連 將 銀


ずさん にやり きこう せなか めざす あきる せんく りえき ぬすむ てんすう あずき うまれる きさま えほうまき しいく

看到上面的示例,想起了啥,歐美大片中激活智能機器人的時候說的一個個單詞是什麼鬼,明白了吧,它就是助記詞,用於生成私鑰,在一定意義上可以說助記詞等於私鑰。助記詞由12-24個單詞組成,助記詞可以生成私鑰,它一共有2048個,也就是從這2048個漢字或者英文單詞甚至韓語、日語等等,隨你喜歡,挑選你喜歡的語言12、15、18、21、24個都可以,把它背過,記錄在小本本上都可以,當需要的時候,我們就可以通過輸入它去恢復我們的私鑰,這樣,我們更方便記憶。

現在又有人說了,哎,助記詞12-24個單詞如果每次我操作都要輸入一下,也是很麻煩,於是以太坊網絡又有了一種方案:

Keystroe :它是這個樣子的

{
    "version":3,
    "id":"b7467fcb-3c8b-41be-bccf-73d43a08c1b7",
    "address":"540f18196da5a533fa36577a81de55f0a2f4e751",
    "Crypto":{
        "ciphertext":"78ed11b8b6bf29b00f52b42b8542df0e4a6ac078e626af7edcf885c3b68154a4",
        "cipherparams":{
            "iv":"4516579601d96695fe30ace985a9066f"
        },
        "cipher":"aes-128-ctr",
        "kdf":"scrypt",
        "kdfparams":{
            "dklen":32,
            "salt":"6276cfda7d40872352c801db5871e5a3368a8d0994cea39ed936760db78d1cdc",
            "n":1024,
            "r":8,
            "p":1
        },
        "mac":"d889a5dc609c3f312a41394cc47640676d2612501a6f8c837ed55598158336db"
    }
}

相對於上面的助記詞便於記憶,是不是一上來就蒙了,這是什麼鬼,首先我們先說下,這個東西,不需要記憶,不用害怕了吧,它存在一個地方就可以了。 Keystore是加密的私鑰,需要用一串密碼來解密,而這個密碼,就是我們熟知的密碼了,可以是 123456,也可以是@#¥¥%%,怎麼設置就隨你了,這樣,在你用你的私鑰的時候,你就可以直接用keystore加密碼去恢復私鑰來操作區塊鏈網絡了。是不是更簡單了呢。

兩種私鑰的方便存儲方案:方便人的記憶和使用。

下面我們再簡單串一下賬戶的生成使用過程:

  1. 首先我們要有私鑰:可以是助記詞生成。爲了方便管理私鑰還可以用keystore +密碼驗證。
  2. 要用私鑰導出公鑰和地址備用
  3. 要想操作我們的賬戶,需要先來構造我們的交易,可以是提取,持行合約等等。
  4. 對我們的交易用私鑰簽名:把交易和私鑰算出一個hash
  5. 把我們準備好的數據交易、簽名、公鑰,打包成一個數據結構並編碼成一個hash
  6. 把hash發送給臨近的區塊鏈節點。

好了,執行完上面的步驟我們借用一句經典的電影臺詞,“讓子彈飛一會”,過一會(每個區塊鏈時間都不同,比特幣要半個小時,以太坊要一分鐘,但是現有的聯盟鏈比方泰嶽聯盟鏈確認只需要1秒,這是因爲它們的共識機制不同造成。後面我們講到共識的時候再說這一塊)就會看到你要的結果了。你就上鍊了,同時你的操作,所有的節點(或者證書節點)就都可以查到了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章