4. 比特币的密钥、地址和钱包 - 精通比特币笔记

4. 比特币的密钥、地址和钱包 - 精通比特币笔记,第1张

比特币的所有权是通过密钥、比特币地址和数字签名共同确定的。密钥不存在于比特币网络中,而是用户自己保存,或者利用管理私钥的软件-钱包来生成及管理。

比特币的交易必须有有效签名才会被存储在区块中,因此拥有密钥就拥有对应账户中的比特币。密钥都是成对出现的,由一个公钥和一个私钥组成。公钥相当于银行账号,私钥就相当于yhk密码。通常情况下密钥由钱包软件管理,用户不直接使用密钥。

比特币地址通常是由公钥计算得来,也可以由比特币脚本得来。

比特币私钥通常是数字,由比特币系统随机( 因为算法的可靠性与随机性正相关,所以随机性必须是真随机,不是伪随机,因此比特币系统可以作为随机源来使用 )生成,然后将私钥作为输入,使用椭圆曲线算法这个单向加密函数生成对应的公钥,再将公钥作为输入,使用单向加密哈希函数生成地址。例如,通过公钥K得到地址A的计算方式为:

其中SHA256和PIPEMD160被称为双哈希或者HASH160,Base58Check是带有验证功能的Base58编码,验证方式为先计算原始数据(编码前)的验证码,再比较编码后数据的验证码,相同则地址有效,否则无效。而在使用Base58Check编码前,需要对数据做处理。
处理方式为: 版本前缀 + 双哈希后的数据 + 校验码
其中版本前缀是自定义的,如比特币私钥的前缀是0x80,校验码是把版本前缀和双哈希后的数据拼接起来,进行两次SHA256计算,取前4字节。得到处理的数据后,再进行Base58编码,得到最终的结果。

下图是Base58Check版本前缀和Base58编码后的结果

密钥可以采用不同的编码格式,得到的编码后结果虽然不同,但密钥本身没有任何变化,采用哪种编码格式,就看情况而论了,最终目的都是方便人们准确无误的使用和识别密钥。
下图是相同私钥采用不同编码方式的结果:

公钥也有很多种格式,不过最重要的是公钥被分为压缩格式和非压缩格式,带04前缀的公钥为非压缩格式的公钥,而03,02开头的标识压缩格式的公钥。

前面说过,公钥是椭圆曲线上的一个点,由一对坐标(x, y)表示,再加上前缀,公钥可以表示为:前缀 x y。
比如一个公钥的坐标为:

以非压缩格式为例,公钥为(略长):

压缩格式的公钥可以节省一定的存储,对于每天成千上万的比特币交易记录来说,这一点点的节省能起到很大效果。

因为椭圆曲线实际上是一个方程(y2 mod p = (x3 + 7)mod P, y2是y的平方,x3是x的立方),而公钥是椭圆曲线上的一个点,那么公钥即为方程的一个解,如果公钥中只保留x,那么可以通过解方程得到y,而压缩公钥格式有两个前缀是因为对y2开方,会得到正负两个解,在素数p阶的有限域上使用二进制算术计算椭圆曲线的时候,y坐标或奇或偶,所以用02表示y为奇数,03表示y为偶数。

所以压缩格式的公钥可以表示为:前缀x
以上述公钥的坐标为准,y为奇数为例,公钥K为:

不知道大家发现没有,这种压缩方式存在一个问题,即一个私钥可以得出两个公钥,压缩和非压缩公钥,而这两个公钥都对应同一个私钥,都合法,但生成的比特币地址却不相同,这就涉及到钱包软件的实现方式,是使用压缩公钥还是非压缩公钥,或者二者皆用,这个问题后面来介绍。

比特币钱包最主要的功能就是替用户保管比特币私钥,比特币钱包有很多种,比如非确定性(随机)钱包,确定性(种子)钱包。所谓的非确定性是指钱包运行时会生成足够的私钥(比如100个私钥),每个私钥仅会使用一次,这样私钥管理就很麻烦。确定性钱包拥有一个公共种子,单向离散方程使用种子生成私钥,种子足够回收所有私钥,所以在钱包创建时,简单备份下,就可以在钱包之间转移输入。

这里要特别介绍下助记码词汇。助记码词汇是英文单词序列,在BIP0039中提出。这些序列对应着钱包中的种子,种子可以生成随机数,随机数生成私钥,私钥生成公钥,便有了你需要的一切。所以单词的顺序就是钱包的备份,通过助记码词汇能重建钱包,这比记下一串随机数要强的多。

BIP0039定义助记码和种子的创建过程如下:

另外一种重要的钱包叫做HD钱包。HD钱包提供了随机(不确定性) 钥匙有两个主要的优势。
第一,树状结构可以被用来表达额外的组织含义。比如当一个特定分支的子密钥被用来接收交易收入并且有另一个分支的子密钥用来负责支付花费。不同分支的密钥都可以被用在企业环境中,这就可以支配不同的分支部门,子公司,具体功能以及会计类别。
第二,它可以允许让使用者去建立一个公共密钥的序列而不需要访问相对应的私钥。这可允许HD钱包在不安全的服务器中使用或者在每笔交易中发行不同的公共钥匙。公共钥匙不需要被预先加载或者提前衍生,但是在服务器中不具有可用来支付的私钥。

BIP0038提出了一个通用标准,使用一个口令加密私钥并使用Base58Check对加密的私钥进行编码,这样加密的私钥就可以安全地保存在备份介质里,安全地在钱包间传输,保持密钥在任何可能被暴露情况下的安全性。这个加密标准使用了AES,这个标准由NIST建立,并广泛应用于商业和军事应用的数据加密。

BIP0038加密方案是: 输入一个比特币私钥,通常使用WIF编码过,base58chek字符串的前缀“5”。此外BIP0038加密方案需要一个长密码作为口令,通常由多个单词或一段复杂的数字字母字符串组成。BIP0038加密方案的结果是一个由base58check编码过的加密私钥,前缀为6P。如果你看到一个6P开头的的密钥,这就意味着该密钥是被加密过,并需个口令来转换(解码) 该密钥回到可被用在任何钱包WIF格式的私钥(前缀为5)。许多钱包APP现在能够识别BIP0038加密过的私钥,会要求用户提供口令解码并导入密钥。

最通常使用BIP0038加密的密钥用例是纸钱包一一张纸张上备份私钥。只要用户选择了强口令,使用BIP0038加密的私钥的纸钱包就无比的安全,这也是一种很棒的比特币离线存储方式(也被称作“冷存储”)。

P2SH函数最常见的实现时用于多重签名地址脚本。顾名思义,底层脚本需要多个签名来证明所有权,然后才能消费资金。这类似在银行开设一个联合账户。

你可以通过计算,生成特殊的比特币地址,例如我需要一个Hello开头的地址,你可以通过脚本来生成这样一个地址。但是每增加一个字符,计算量会增加58倍,超过7个字符,需要专门的硬件或者矿机来生成,如果是8~10个字符,那么计算量将无法想象。

比特币是一种点对点的电子系统,直接来说是节点对节点。每笔交易由发起方向周围的节点进行广播,节点收到之后,广播给自己周围的节点,并将节点扩散至全网。每一个比特币钱包都是一个节点,拥有完整区块链账本的节点叫全节点。
根据《关于防范代币发行融资风险的公告》,我国境内没有批准的数字货币交易平台。根据我国的数字货币监管规定,投资者在自担风险的前提下拥有参与数字货币交易的自由。
温馨提示:
1、根据中国人民银行等部门发布的通知、公告,虚拟货币不是货币当局发行,不具有法偿性和强制性等货币属性,并不是真正意义上的货币,不具有与货币等同的法律地位,不能且不应作为货币在市场上流通使用,公民投资和交易虚拟货币不受法律保护。
2、在投资之前,建议您先去了解一下项目存在的风险,对项目的投资人、投资机构、链上活跃度等信息了解清楚,而非盲目投资或者误入资金盘。
3、以上解释仅供参考,投资者不应以该等信息取代其独立判断或仅根据该等信息做出决策,不构成任何投资 *** 作。
应答时间:2021-08-13,最新业务变化请以平安银行官网公布为准。
[平安银行我知道]想要知道更多?快来看“平安银行我知道”吧~
>

P2P网络(peer-to-peer,简称为P2P),又称为对等式网络,也叫说点对点网络。这是一种无中心服务器、完全由客户端交换信息的互联网体系。

有中心服务器的中央网络系统可以用下图来描述:

而P2P网络,可以第二张图来理解。而P2P网络,可以第二张图来理解。

和有中心服务器的中央网络不同的是,P2P网络的每一个用户端即是一个客户节点,又具有服务器的功能。P2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽,存储空间和计算能力。这种网络的容量可以远超过有中心服务器的网络。中心服务器结构的网络你每增加一个客户端,就意味着所有用户的数据传输速度要降低,而P2P网络不会。

P2P网络的健壮性也远超过中央服务器结构的网络。因为只要中央服务器出现问题,那整个网络就崩溃了。而P2P网络任意客户端出现问题,整个网络照样正常工作。

12年。据了解,比特币主网上线的时间是在2009年,名为创世纪的第一个比特币区块被启动,中本聪通过挖矿的方式获得首批50个比特币,标志着比特币网络开始出现,比特币正式诞生。
:比特币挖矿有两种方式:
1购买矿机自建矿场,这需要较高的成本,主要是一些打算大规模投入挖矿的大户,由于目前国家对矿场的监管政策,所以自建矿场的难度也就增加,一些小型的矿场已经关停。
2寻找专业的挖矿公司购买矿机进行托管业务,此类公司主要是以矿场托管来作为盈利点,但矿机所有的管理维护,场地电源都是他们所提供,只需要购买矿机与缴纳相应的电费即可,这相对于第一点来说受众群体较广,毕竟大户占少数,这就相当于是散户集中挖矿,同时双方分摊风险,有一定的可行性。
挖矿前注意事项:
一有的矿工会遇到这种情况,他找别人买矿机,别人告诉他可以挖Yotta,机器是可以挖的,但是没有超级节点的授权,你挖不了,所以想挖Yotta,首先去找126个超级节点谈,因为这是合作挖Yotta的前提。
二、126个超级节点矿工的收益情况,本质上是没有区别的,矿工不管是选择主超级节点还超级节点参与挖矿,矿工权益都是平等的,所以说谁告诉你他们节点的收益高,这人一定不可信。在YTA挖矿过程中,矿工需要用YTA作为抵押换取存储空间,才能获得挖矿资格。
三、有些人以为YTA挖矿的收益一定是跟硬盘容量直接相关,其实这说法是错误的。Yotta是做区块链分布式数据存储的,YTA挖矿的收益多少具体是跟服务器矿机存储数据的多少有关系;也就是你存储的数据越多,收益越高,存储时间越长,收益也越高。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13162480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-14
下一篇 2023-06-14

发表评论

登录后才能评论

评论列表(0条)

保存