Wallets

有人能用通俗的英語解釋一下錢包中推導路徑的含義(例如m/44’/60’/0’/0)嗎?

  • May 16, 2019

像 m / purpose’ / coin_type’ / account’ / change / address_index 給出的值是 m/44’/60’/0’/0

“m”是什麼意思、用途、幣種等

這麼好的問題。

背景

派生路徑與 HD 錢包或 HD Keys 相關,這是一種錢包類型,您可以在其中擁有一個人類可讀的單一助記詞,可在任何受支持的網路上解鎖多個帳戶/地址/私鑰。這些片語通常看起來像brain surround have swap horror body response double fire dumb bring hazard.

最常用的高畫質錢包的技術規範是…

  • BIP-32 - 高畫質錢包規範
  • BIP-39 - 助記詞/單詞列表/等等。這個難題的一部分。
  • BIP-44 - 派生路徑的東西/算法。

通常,您有一個私鑰(例如afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890),它允許您在其匹配的地址(例如 )中訪問您的資金0x06A85356DCb5b307096726FB86A78c59D38e08ee。這是一個密鑰對。

使用 HD 錢包,您只有一個種子片語(例如brain surround have swap horror body response double fire dumb bring hazard),它通過數學和算法以及程式碼和其他東西,派生出多個密鑰對。無限數量的密鑰對。

此外,還有一種不安全的錢包格式被稱為“大腦錢包”,人們可以使用單個人類可讀的片語,並通過數學和算法以及程式碼和其他東西,變成一個單一的密鑰對。

好的,但是關於派生路徑的wtf?

Brain 錢包允許您轉換dogsarecool12brain surround have swap horror body response double fire dumb bring hazard轉換為單個私鑰,然後用於訪問您的資金並簽署您的交易。

為簡單起見,讓我們將其表示為

seed phrase=>private key

如果我使用catsarecool10而不是dogsarecool12作為我的片語,我會得到一個不同的密鑰對、不同的地址、不同的帳戶。

HD 錢包類似,但每個片語都有無限數量的密鑰對或可以訪問的帳戶。因為,與大腦錢包不同,它進行更複雜的數學運算。為簡單起見,我們將其表示為

seed phrase+ XYZ+ 🍎+ ABC+ &+ 1=>private key

如果您更改其中任何一個部分,您獲得(或派生)的私鑰將會有所不同,就像上面的catsarecool10vs一樣dogsarecool12。但是,由於所有編碼人員都遵循相同的規則,因此添加到助記詞中的部分是一致的,並允許使用者跨多個產品或區塊鏈訪問相同的帳戶。

這些碎片“衍生路徑”

這是

  • XYZ+ 🍎+ ABC+ &+1

一部分。

實際派生路徑碎片

完整路徑:m/44'/60'/0'/0'/0

每個數字代表什麼:m / purpose' / coin_type' / account' / change / address_index

m/

可能只是一種隨機的方式來開始一個字元串,這樣編碼人員就可以很容易地判斷某個東西是否是一個派生路徑,而不是你開始輸入“媽媽”。

44' (purpose)

這總是44'。但是,如果確定 HD 密鑰系統有更好的演變,您可以將其更改為45'這樣,編碼人員可以再次區分舊系統和新系統之間的區別。

60' (coin type)

你訪問的是哪個區塊鏈?每個區塊鏈都有一個代表它的數字。比特幣是0。乙太坊是60. 永恆之塔是425。當你創建一個新的區塊鏈時,你申請了一個未使用的號碼。您可以在此處查看所有鍊及其編號:https ://github.com/satoshilabs/slips/blob/master/slip-0044.md

0' (account)

一個從 0 開始並遞增的數字。一層分離或層次結構。(更多內容如下)

0(更改)`

有時用於乙太坊,有時不使用。最初是為比特幣創建的,它沒有真正的“賬戶”,它有“未使用的交易輸出”。基本上你永遠不會發送你持有的比特幣的一部分——你將所有的比特幣發送到多個地址。如果你有 0.75 BTC 但只想給我 0.5 BTC,你會先給我 0.5 BTC,然後給自己 0.25 BTC。“您自己”可以返回到原始地址或您可以訪問的另一個地址(例如,“列表”上的下一個地址)。這個數字表示“將我不想發送給我的朋友的任何東西發送到我列表中的第 10 個地址。或者列表中的第 0 個地址(也就是我發送的地址)。

0' (index)

另一個變數來獲取不同的帳戶等。

分離和層次結構

上面的一些變數是基於外力的,比如我在哪條鏈上。有些是由使用者或錢包軟體選擇的,如change變數。和變數給了我(accountindex我的錢包)更多需要改變的東西。

例如,假設我想將我個人的 ETH 持有量與我公司的 ETH 持有量分開。我可以m/44'/60'/0'/0'/0用於公司和m/44'/60'/1'/0'/0我的個人。

但是,假設我想為…設置不同的地址

  • 我的個人積蓄
  • 我每週收到薪水的地方
  • 當我個人得到朋友的回報時
  • 在我的個人 github 上公開展示以供捐款
  • 我所有的個人學費

我可以用它m/44'/60'/1'/0'/0m/44'/60'/1'/0'/1存錢、m/44'/60'/1'/0'/2拿薪水、讓我的朋友還錢等等。我也可以對公司賬戶做同樣的事情。耶!

引用自:https://ethereum.stackexchange.com/questions/70017