有人能用通俗的英語解釋一下錢包中推導路徑的含義(例如m/44’/60’/0’/0)嗎?
像 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
.最常用的高畫質錢包的技術規範是…
通常,您有一個私鑰(例如
afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890
),它允許您在其匹配的地址(例如 )中訪問您的資金0x06A85356DCb5b307096726FB86A78c59D38e08ee
。這是一個密鑰對。使用 HD 錢包,您只有一個種子片語(例如
brain surround have swap horror body response double fire dumb bring hazard
),它通過數學和算法以及程式碼和其他東西,派生出多個密鑰對。無限數量的密鑰對。此外,還有一種不安全的錢包格式被稱為“大腦錢包”,人們可以使用單個人類可讀的片語,並通過數學和算法以及程式碼和其他東西,變成一個單一的密鑰對。
好的,但是關於派生路徑的wtf?
Brain 錢包允許您轉換
dogsarecool12
或brain 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
如果您更改其中任何一個部分,您獲得(或派生)的私鑰將會有所不同,就像上面的
catsarecool10
vs一樣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
變數。和變數給了我(account
或index
我的錢包)更多需要改變的東西。例如,假設我想將我個人的 ETH 持有量與我公司的 ETH 持有量分開。我可以
m/44'/60'/0'/0'/0
用於公司和m/44'/60'/1'/0'/0
我的個人。但是,假設我想為…設置不同的地址
- 我的個人積蓄
- 我每週收到薪水的地方
- 當我個人得到朋友的回報時
- 在我的個人 github 上公開展示以供捐款
- 我所有的個人學費
我可以用它
m/44'/60'/1'/0'/0
來m/44'/60'/1'/0'/1
存錢、m/44'/60'/1'/0'/2
拿薪水、讓我的朋友還錢等等。我也可以對公司賬戶做同樣的事情。耶!