LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > BIP 32和高清钱包以保持加密

BIP 32和高清钱包以保持加密

2020-06-06 wanbizu AI 来源:区块链网络

BIP 32是在HD(分层确定性)钱包中用于种子管理的第一个协议。 HD钱包既可以用作硬件钱包,也可以用于移动和台式机。其中有些是免费的,有些是付费的。

最受欢迎的是Trezor,KeepKey,Ledger Nano S,菌丝体,Jaxx,Eidoo和Electrum。

这些钱包需要一个备份,允许用户随时完全还原数据。

这是由于钱包能够使用BIP 32来引导树的所有私钥。这是一种传输协议,允许父密钥在层次结构中创建子密钥。

这些钱包可以与不同系统部分或全部共享,从而选择是否保留花费硬币的可能性。

实际上,BIP32指定了如何从所谓的树结构中的主种子派生密钥对以及如何构建使用此结构的投资组合。

HD钱包的第二个优点是能够创建一系列公用密钥,而无需访问相应的专用密钥。这样一来,HD钱包就可以在不安全的服务器上使用或仅具有接收能力,并且每次交易都会使用不同的公钥。

子键派生(CKD)是从“父”键派生许多“子”键的功能。为了避免这些内容完全取决于“父代”键,添加了额外的256个熵位,由“链码”表示。

这用于将看似随机的数据引入到过程中,以使索引不足以派生其他“子”键。

因此,密钥派生函数基于单向哈希,该哈希结合了以下内容:

私有或公共“父”密钥(未压缩的ECDSA密钥) 链码(256位) 索引(32位)

由此产生了所谓的“扩展密钥”。基本上,扩展密钥只是一些数据的基础58编码序列化。

HD钱包按编号的“帐户”进行组织(默认值为“ 0”)。

每个都由两个钥匙链组成:一个外部钥匙链,用于生成接收资金的地址,一个内部钥匙链,用于其他操作。

这些链如何表示?

因此,密钥在派生路径中“链接”。一对私钥-公钥将共享相同的密钥 [ depth ] [ parent fingerprint ] 是 [ key index ] 因为它们将在此路径中位于同一位置。

HD钱包中还引入了一种称为硬化派生的派生方法,该方法打破了公钥“父”和“子”链码之间的链接。

强化派生使用“父代”的私钥而不是公钥来生成子链代码。为了简单区分经典派生密钥和硬化派生密钥,密钥的可能值集 [ key index ] 分为两个范围:

0和2 ^ 31-1之间的值用于经典推导, 从2 ^ 31到2 ^ 32-1的那些用于硬化派生。

CKD如何运作

假设我们要复制此派生路径。

我们解码在“ m”中找到的主要扩展私钥。

base58解码xprv9uHRZZhk6KAJC1avXpDAp4MDc3sQKNxDiPvvkx8Br5ngLNv1TxvUxt4cV1rGL5hj6KCesnDYUhd7oWgT11eZG 7XnxHrnYeSvkkY7d

0488ade4013442193e8000000047fdacbd0f1097043b78c63c20c34ef4ed9a111d980047ad16282c7ae623614 100edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0fea

0488ade4 [ magic ] 00 [ depth ] 00000000 [ parent fingerprint ] 00000000 [ key index ] 47fdacbd0f1097043b78c63c20c34ef4ed9a111d980047ad16282c7ae6236141 [ chain code ] 00edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0afea [ key ] 0a794dec [ checksum ]

下一对密钥的范围由0H标识,该值指示硬化索引。硬化索引密钥的CKD计划使用Chain代码和“父母”的私钥作为HMAC-SHA512的输入来派生私钥“ Child”。

此算法需要一个键值(父母的链代码)和一个文本(父母的键+子索引)。首先 [ key index ] 强化索引为80000000。(PS:请勿将算法密钥与密钥混淆)。

现在,我们已经获得了儿童锁链代码和钥匙。的 [ Magic ] 会一样的 [ depth ] 是进步的 [ key index ] 我们解释了。我们必须得出 [ parent fingerprint ] 在我们计算出 [ checksum ] 决赛。的 [ parent fingerprint ] 对应于父母的公共密钥的HASH 160。

要获得“ m”中的公钥“父母”,我们有两种方法:

我们从base58解码基本xpub扩展密钥。 乘以生成器点的私钥(G = 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798)

我们对xpub进行解码,以显示密钥对如何共享相同的密钥 [ depth ] [ parent fingerprint ] [ key index ] 是 [ Chain Code ]。

base58解码xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD26 5TMg7usUDFdet6W1EGMcc8

0488b21e0000000000000000873dff81c02f525623fd1fe5167eac3a55a049de3d314bb42ee227ffed37d50 80339a36013301597daef41fbe593a02cc513d0b55527ec2df1050c2e8ff49c221c

0488b21e [ magic ] 00 [ depth ] 00000000 [ parent fingerprint ] 00000000 [ key index ]:873dff81c02f525623fd1fe5167eac3a55a049de3d314bb42ee227ffed37d508 [ chain code ] 0339a36013301597daef41fbe593a02cc513d0b55527ec2df1050e2e8ff49c85c2 [ key ] ab473b21 [ checksum ]

现在,我们计算公钥的HASH160以获取 [ parent fingerprint ] 儿童:

HASH160(0339a36013301597daef41fbe593a02cc513d0b55527ec2df1050e2e8ff49c85c2)= 3442193e 1bb70916e914552172cd4e2dbc9df811

我们有我们的“孩子”键。让我们计算一下校验和并编写Base58代码:

0488ade4(表示扩展私钥)01 3442193e 80000000 47fdacbd0f1097043b78c63c20c34ef4ed9a111d98 0047ad16282c7ae6236141 00edb2e14f9ee77d26dd93b4ecede8d16ed408ce14ab6cd80b0715a

0488b21e(表示扩展的公共密钥)01 3442193e 80000000 47fdacbd0f1097043b78c63c20c34ef4ed9a111d98 0047ad16282c7ae6236141 035a784662a4a20a65bf6aab9ae98a6c068c81c526

计算“子”私钥的校验和:

SHA256(SHA256 0488ade4013442193e8000000047fdacbd0f1097043b78c63c20c34ef4ed9a111d980047ad16282c7ae623614 100edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a2d911a0f716e16e76e16e7a716e7e7e7e1e1e1e1e3e6e7e6e7e6e6e6e6e6c6e6e6e6e6e6e6e6e6c0b人

计算公钥“ Child”的校验和:

SHA256(SHA256(0488b21e013442193e8000000047fdacbd0f1097043b78c63c20c34ef4ed9a111d980047ad1 6282c7ae6236141035a784662a4a20a65bf6aab9ae98a6c068a81c52e4b6b7b2c6b3c6b3c4b3c4b3c3b3c3b3c3c3b3c6b3b3c6b3b3c6b3c6b3c6b6c6b6b6b6c6b6b6c6b6b6b6b6b6b6b6c6b6b6b6b4b6b6b4b6b6b6b6b6b6b6b6b6bfc2b6b6b6b0bc0bc0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0b0c0bc0bc0c由

让我们在base58中编写所有代码:

base58-ecncode(0488ade4013442193e8000000047fdacbd0f1097043b78c63c20c34ef4ed9a111d980047ad16282c7ae62361 4100edb2e14f9ee77d26dd93b4ecede8d16ed408ce149b6cd80b0715a

xprv9uHRZZhk6KAJC1avXpDAp4MDc3sQKNxDiPvvkX8Br5ngLNv1TxvUxt4cV1rGL5hj6KCesnDYUhd7 oWgT11eZG7XnxHrnYeSvkzY7d2bkk

base58编码(0488b21e013442193e8000000047fdacbd0f1097043b78c63c20c34ef4ed9a111d980047ad16282c7ae62361 41035a784662a4a20a65bf6aab9ae98a6c068a81c52e4b5c8c6c6b8c8c6c6c6c

xpub68Gmy5EdvgibQVfPdqkBBCHxA5htiqg55crXYuXoQRKfDBFA1WEjWgP6LHhwBZeNK1VTsfTFUHCd rfp1bgwQ9xv5ski8PX9rL2wZXvgGDnw

基本上,这就是强化推导:父级的私钥和链码用于派生强化索引中的下一个键。

派生路径中的下一个索引是未经硬化的:链m / 0H / 1。与强化推导不同,可以使用父级的公钥而不是私钥作为CKD函数的输入来推导子级的私钥(以及相应的公钥)。

步骤是相同的??。这是要获得的结果:

0488ade4 02 5c1bd648 00000001 2a7857631386ba23dacac34180dd1983734e444fdb f774041578e9b6adb37c19 003c6cb8d0f6a264c91ea8b5030fadaa8e538b0208cde8a9334221368de

0488b21e 02 5c1bd648 00000001 2a7857631386ba23dacac34180dd1983734e444fdb f774041578e9b6adb37c19 03501e454bf00751f24b1b489aa925215d66af2234 e3891c3b21a52b

base58编码(0488ade4025c1bd648000000012a7857631386ba23dacac34180dd1983734e444fdbf774041578e9b6adb37c 19003c6cb8d0f6a264c91ea8b5030fadaa8e538bc2012036383b3c8383c3b8c8c8c33

xprv9wTYmMFdV23N2TdNG573QoEsfRrWKQgWeibmLntzniatZvR9BmLnvSxqu53Kw1UmYPxLgboyZQaX wTCg8MSY3H2EU4pWcQDnRnrVA1xe8fs

base58编码(0488b21e025c1bd648000000012a7857631386ba23dacac34180dd1983734e444fdbf774041578e9b6adb37c 1903501e454bf00751f24b1b489aa925215d66af2734e3852b3c3b7c7fc2b7e

xpub6ASuArnXKPbfEwhqN6e3mwBcDTgzisQN1wXN9BJcM47sSikHjJf3UFHKkNAWbWMiGj7Wf5uMash7 SyYq527Hqck2AxYysAA7xmALppuCkwQ

安德烈(Andrea Melchiorre)

—-

原文链接:https://cryptonomist.ch/2020/06/06/bip-32-wallet-hd-custodire-crypto/

原文作者:Contest Writer

编译者/作者:wanbizu AI

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...