IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 精通比特币(一)比特币的原理、比特币客户端、密钥地址钱包 -> 正文阅读

[区块链]精通比特币(一)比特币的原理、比特币客户端、密钥地址钱包

比特币的原理

一、比特币交易

交易是将钱从交易输入移至输出。输入是指钱币的来源,通常是之前 一笔交易的输出。交易的输出则是通过关联一个密钥的方式将钱赋予一个 新的所有者。目的密钥被称为是安全锁(Encumbrance)。这样就给资 金强加了一个要求:有签名才能在以后的交易中赎回资金。一笔交易的输 - 27 -
出可以被当做另一笔新交易的输入,这样随着钱从一个地址被移动到另一 个地址的同时形成了一条所有权链
在这里插入图片描述

二、常见的交易形式

形式一

最常见的交易形式是从一个地址到另一个地址的简单支付,这种交易也常常 包含给支付者的“找零”。一般交易有一个输入和两个输出
在这里插入图片描述

形式二

集合多个输入到一个输出。这 相当于现实生活中将很多硬币和纸币零钱兑换为一个大额面钞。像这样的交易有 时由钱包应用产生来清理许多在支付过程收到的小数额的找零。
在这里插入图片描述

形式三

一个输入分配给多个输 出,即多个接收者的交易。这类交易有时被商业实体用作分配资金, 例如给多个雇员发工资的情形
在这里插入图片描述

三、交易的构建

比特币交易建立和签名时不用连接比特币网络。 只有在执行交易时才需要将交易发送到网络

获取正确的输入

查找 Alice 的比特币地址所有的未消费的输出
https://blockchain.info/unspent?active=1Cdid9KFAaatwczBwB ttQcwXYCpvK8h7FK
这个 URL 会返回一个地址的所有未消费交易输出,以提供给需要这些信息的任何应用作为建立新交易的输入而进行消费。
通过未消费输入数据就可以创建新的交易将钱转账到新地址。

在单个未消费的输出中有足够的比特币支付一杯咖啡。假如不够的话,Alice 的钱包应用就不得不搜寻一些小的未消费输出,像是 从一个存钱罐里找硬币一样,直到找到足够支付咖啡的数量

UTXO(未花费的交易输出)

创建交易输出

Alice 的钱包将她的金额分成了两个支付:一个给 Bob,一个给自己。她可以在 以后的交易里消费这笔零钱输出。
最后,为了让这笔交易尽快地被网络处理,Alice 的钱包会多付一小笔费用。 这个不是明显地包含在交易中的;而是通过输入和输出的差值所隐含的,就是交易费

四、比特币挖矿

这个交易现在在比特币网络上传播开来。但只有被一个称为挖矿的过程验证 且加到一个区块中之后,这个交易才会成为这个共享账簿(区块链)的一部分

挖矿在比特币系统中起着两个作用:
? 挖矿在构建区块时会创造新的比特币,和一个中央银行印发新的纸币很类似。 每个区块创造的比特币数量是固定的,随时间会渐渐减少。
? 挖矿创建信任,挖矿确保只有在包含交易的区块上贡献了足够的计算量后, 这些交易才被 确认。区块越多,花费的计算量越大,意味着更多的信任。

将挖矿类比为一个巨大的多人数独谜题游戏。一旦有人发现正解之后,这个数 独游戏会自动调整困难度以使游戏每次需要大约 10 分钟解决。
如果给你一个已经完成的数独,你可以很快地验证它。 然而,如果这个数独只有几个方格里有数字其余方格都为空的话,就会花费非常 长的时间来解决。
这个数独游戏的困难度可以通过改变其大小(更多或更少行列) 来调整,但即使它非常大时验证它也是相当容易的

五、区块中的挖矿交易记录

网络中产生的一笔交易直到成为整个比特币大账簿——区块链的一部分时 才会被确认有效
平均每 10 分钟,矿工会将自上一个区块以来发生的所有交易 生成一个新的区块。
矿工一旦从网络上收到一个新区块时,会意识到在这个区块上的解题竞赛已经输 掉了,会马上开始下一个新区块的挖掘工作。

Alice 的交易被网络拿到后放进未验证交易池中。因为包含足够的交易费, 它被 Jing 的矿池放到了生成的新区块中。大约在 Alice 的钱包第一次将这个交 易发送出来五分钟后,Jing 的 ASIC 矿机发现了新区块的正解并将之发布为第 277,316 号区块,包含 419 个其它交易。Jing 的 ASIC 矿机将这个新区块发布 到网络上后,其它矿机就会验证它,并投身到构建新区块的竞赛中。

几分钟后,第 277,317 号新区块诞生在另一个挖矿节点中。因为这个新区块是 基于包含 Alice 交易的第 277,316 号区块的,在这个区块的基础上增加了更多的 计算,因此就加强了这些交易的可信度。包含 Alice 交易的区块对这个交易来说 算一次"证明"。基于这个区块每产生一个新区块,对这个交易来说就会增加了一 次"证明"。当区块一个个堆上来时,这个交易变得指数级地越来越难被推翻,因 此它在网络中得到更多信任。
在这里插入图片描述
区块链的高度增长, 每个区块和整个链的计算复杂度也随之增加
一个区块获得6次以上证明,就不可撤销了,因为撤销和重建6个区块需要巨量计算。

六、消费这笔交易

既然 Alice 的这笔交易已经成为区块的一部分被嵌入到了区块链中,它就成 为了整个分布式比特币账簿的一部分并对所有比特币客户端应用可见。每个比特 币客户端都能独立地验证这笔交易是有效且可消费的。全索引客户端可以追钱款 的来源。
从第一次有比特币在区块里生成的那一刻开始,按交易与交易间的关系 顺藤摸瓜,直到 Bob 的交易地址。轻量级客户端通过确认一个交易在区块链中 且在它后面有几个新区块来确认一个支付的合法性。这种方式叫做简易支付验证
Bob 现在可以将此交易和其它交易的结果信息作为输入,创建新的所有权为 其他人的交易。这样就实现了对此交易的消费

比特币客户端

我们用 createrawtransaction 命令去建立一笔交易。我们将交易的收入(50 已 确认未支出的 mBTC)和两笔交易的输出(送往新地址的比特币和从原先账户找 回的零钱)作为 createrawtransaction 的参数

我们的交易“消耗了”从我们已确认的交易中未花费的输出,然后将 它变成两笔输出,一个是走向了新地址的 25mBTC,另一个是从原来地址返回 的 24.5mBTC 零钱。这之间 0.5mBTC 的差额作为交易费,以奖励挖出包含我们 这笔交易区块的矿工

我们使用 signrawtransaction 命令去签名交易。它需要原 始十六进制的字符串作为参数。
(一个加密的钱包在签名之前必须解密,因为签名需要利用钱包中的秘钥)

签名后,交易中的收入包含了 scritSig,一串证明钱包地址 1hvz…所有权的数字签 名,同时移除了支出上的障碍,然后我们可以对钱包中的钱进行消费。签名可以 让这笔交易被比特币交易网络中的任何节点验证,使他们变得可靠。
当使用 sendrawtransaction 命令发布交易到比特币网络时,它会返回交易 的哈希值。

一笔交易的三个步骤:
构造交易
val createrawtransaction = createrawtransaction(未支出的btc,两笔交易的输出)
签名交易
val signrawtransaction = signrawtransaction(createrawtransaction )
发送交易
val hash = sendrawtransaction (signrawtransaction)

其他替代客户端、资料库、工具包

除了参考客户端(bitcoind),还可以使用其他的客户端和资料库去连接比 特币网络和数据结构。这些工具都由一系列的编程语言执行,用他们各自的语言 为比特币程序提供原生的交互。 其他的执行方式包括:
? libbitcoin 和 sx tools 一款 C++,通过命令行完成的全节点多线程客户端与程序库
? bitcoinj 一款全节点 java 客户端和程序库
? btcd 一款全节点 GO 语言的比特币客户端
? Bits of Proof(BOP) 一款 Java 企业级平台的比特币工具
? picocoin 一款轻量级比特币执行客户端
? pybitcointools 一款 Python 语言的比特币程序库
? pycoin 另一款 Python 语言的比特币程序库 在其他的编程语言中,还有许多形式的比特币(程序)库。开发者也尽其所能, 一直在尽力创造新的比特币工具。

密钥、地址、钱包

一、密钥

密钥是成对出现的,由一个私钥和一个公钥所组成。公钥就像 银行的帐号,而私钥就像控制账户的 PIN 码或支票的签名。比特币的用户很少会直接看到数字密钥。一般情况下,它们被存储在钱包文件内,由比特币钱包软件进行管理

收件人的公钥是通过其数字指纹表示的,称为比 特币地址,就像支票上的支付对象的名字(即“收款方”)。一般情况下,比特 币 地址由一个公钥生成并对应于这个公钥。然而,并非所有比特币地址都是公钥

在比特币系统中,我们用公钥加密创建一个密钥对,用于控制比特币的获取。密 钥对包括一个私钥,和由其衍生出的唯一的公钥。公钥用于接收比特币,而私钥 用于比特币支付时的交易签名。
公钥可以由私钥计算得到,所以只存储私钥也是可以的

一个比特币钱包中包含一系列的密钥对,每个密钥对包括一个私钥和一个公 钥。私钥(k)是一个数字,通常是随机选出的。有了私钥,我们就可以使用椭 圆 曲线乘法这个单向加密函数产生一个公钥(K)。有了公钥(K),我们就可 以使用一个单向加密哈希函数生成比特币地址(A)

在这里插入图片描述
私钥必须始终保持机密,因为一旦被泄露给 第三方,相当于该私钥保护之下的比特币也拱手相让了。
私钥还必须进行备份,以防意外 丢失,因为私钥一旦丢失就难以复原,其所保护的比特币也将永远丢 失

钱包导入格式(WIF,Wallet Import Format)
通过椭圆曲线乘法可以从私钥计算得到公钥,这是不可逆转的过程,其反向运 算,被称为“寻找离散对数”——已知公钥 K 来求出私钥 k——是非常困难的。

椭圆曲线密码学解释

椭圆曲线加密法是一种基于离散对数问题的非对称(或公钥)加密法,可以 用对椭圆曲线上的点进行加法或乘法运算来表达
比特币使用了 secp256k1 标准所定义的一条特殊的椭圆曲线和一系列数学常 数。
因为其中的数学运算是单向的,所以私钥可以转换为公钥,但公钥不能转换回私钥
大多数比特币程序使用 OpenSSL 加密库进行椭圆曲线计算。例如, 调用 EC_POINT_mul() 函数,可计算得到公钥

二、地址

比特币地址是一个由数字和字母组成的字符串,可以与任何想给你比特币的 人分享。由公钥(一个同样由数字和字母组成的字符串)生成的比特币地址以数 字“1”开头。
比特币地址可以代表一对公钥和私钥的所有者

比特币地址可由公钥经过单向的加密哈希算法得到。哈希算法是一种单向函 数,接收任意长度的输入产生指纹摘要。加密哈希函数在比特币中被广泛使用: 比 特币地址、脚本地址以及在挖矿中的工作量证明算法。由公钥生成比特币地 址时使用的算法是 Secure Hash Algorithm (SHA)和 the RACE Integrity Primitives Evaluation Message Digest (RIPEMD),特别是 SHA256 和 RIPEMD160

通常用户见到的比特币地址是经过“Base58Check”编码的,这种编码使用 了 58 个字符(一种 Base58 数字系统)和校验码,提高了可读性、避免歧义并有效防止了在地址转 录和输入中产生的错误

在这里插入图片描述

Base58 和 Base58Check 编码

Base58 是一种基于文本的 二进制编码格式,用在比特币和其它的加密货币中。这种编码格式不仅实现了数据压缩,保持了易读性,还具有错误诊断功能。
Base58 是 Base64 编码格 式的子集,同样使用大小写字母和 10 个数字, 但舍弃了一些容易错读和在特定字体中容易混淆的字符,Base58 不含 Base64 中的 0(数字 0)、O(大写字母 o)、l(小写字母 L)、I(大写字母
i),以及“+”和“/”两个字符。简而言之,Base58 就是由不包括(0,O,l, I)的大 小写字母和数字组成。

比特币的 Base58 字母表 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxy z

Base58Check 编码:一种 Base58 格式的、有版本的、经过校验的 格式,可以明确的对比特币数据编码的编码格式,在比特币中,大多数需 要向用户展示的数据都使用 Base58Check 编码,可以实现数据压缩,易 读而且有错误检验。

在这里插入图片描述
在这里插入图片描述
公钥的格式 公钥也可以用多种不同格式来表示,最重要的是它们分为非压缩格式或压缩格式 公钥这两种形式

压缩格式公钥 引入压缩格式公钥是为了减少比特币交易的字节数,从而可以节省那些运行 区块链数据库的节点磁盘空间。大部分比特币交易包含了公钥,用于验证用户的 凭据和支付比特币

未压缩格式公钥使用 04 作为前缀,而压缩格式公钥是以 02 或 03 作为前缀
在这里插入图片描述
一个私钥可以生成两种不同格式的公钥——压缩格式和非压缩格式,而这两 种格式的公钥可以生成两个不同的比特币地址。
但是,这两个不同的比特币地址的私钥是一样的。 压缩格式公钥渐渐成为了各种不同的比特币客户端的默认格式,它可以大大 减少交易所需的字节数,同时也让存储区块链所需的磁盘空间变小

完全不同的比特币地址。 为了解决这个问题,当私钥从钱包中被导出时,较新的比特币客户端将使用一种 不同的钱包导入格式(Wallet Import Format)。这种新的钱包导入格式可以 用来表明该私钥已经被用来生成压缩的公钥,同时生成的比特币地址也是基于该 压缩的公钥。这个方案可以解决导入私 钥来自于老钱包还是新钱包的问题,同 时也解决了通过公钥生成的比特币地址是来自于压缩格式公钥还是非压缩格式 公钥的问题

压缩格式私钥

实际上“压缩格式私钥”是一种名称上的误导,因为当一个私钥被使用 WIF 压缩格式导出时,不但没有压缩,而且比“非压缩格式”私钥长出一个字节。这 个多出来的一个字节是私钥被加了后缀 01,用以表明该私钥是来自于一个较新 的钱包,只能被用来生成压缩的公钥。私钥是非压缩的,也不能被压缩。“压缩 的私 钥”实际上只是表示“用于生成压缩格式公钥的私钥”,而“非压缩格式 私钥”用来表明“用于生成非压缩格式公钥的私钥”。为避免更多误解,应该只 可以说导出 格式是“WIF 压缩格式”或者“WIF”,而不能说这个私钥是“压 缩”的。

“WIF 压 缩”编码的私钥还多出一个字节,因为这种私钥多了后 缀“01”。该后缀是用来区分“非压缩格式”私钥和“压缩格式”私钥。

在这里插入图片描述
比特币是以交易 输出的形式来储存在区块链中(通常记为 vout 或 txout)

三、钱包

BIP0039 定义助记码和种子的创建过程如下:
1.创造一个 128 到 256 位的随机顺序(熵)。
2.提出 SHA256 哈希前几位,就可以创造一个随机序列的校验和。
3.把校验和加在随机顺序的后面。
4.把顺序分解成 11 位的不同集合,并用这些集合去和一个预先已经定义的 2048 个单词字典做对应。

  • 5.生成一个 12 至 24 个词的助记码

分层确定性钱包(BIP0032/BIP0044)

如果你想安装运行一个比特币钱包,你需要建造一个符合 BIP0032 和 BIP0044 标准的 HD 钱包。 HD 钱包提供了随机(不确定性)钥匙有两个主要的优势。第一,树状结构 可以被用来表达额外的组织含义。比如当一个特定分支的子密钥被用来接收交易 收 入并且有另一个分支的子密钥用来负责支付花费。不同分支的密钥都可以被
用在企业环境中,这就可以支配不同的分支部门,子公司,具体功能以及会计类 别。

HD 钱包的第二个好处就是它可以允许让使用者去建立一个公共密钥的序列 而不需要访问相对应的私钥。这可允许 HD 钱包在不安全的服务器中使用或者在 每笔交易中发行不同的公共钥匙。公共钥匙不需要被预先加载或者提前衍生,但 是在服务器中不具有可用来支付的私钥

HD 钱包密钥识别符(路径)

HD 钱包中的密钥是用“路径”命名的,且每个级别之间用斜杠(/)字符来 表示(见表 4-8)。由主私钥衍生出的私钥起始以“m”打头。因此,第一个母 密钥生成的子私钥是 m/0。第一个公共钥匙是 M/0。第一个子密钥的子密钥就 是 m/0/1,以此类推。 密钥的“祖先”是从右向左读,直到你达到了衍生出的它的主密钥。举个例 子,标识符 m/x/y/z 描述的是子密钥 m/x/y 的第 z 个子密钥。而子密钥 m/x/y 又是 m/x 的第 y 个子密钥。m/x 又是 m 的第 x 个子密钥
在这里插入图片描述
所有遵循 BIP0044 的 HD 钱包依据只使用树的第一个分支的 要求而被定义:m/44’/。 BIP0044 指定了包含 5 个预定义树状层级的结构: m / purpose’ / coin_type’ / account’ / change / address_index 第一层的目的地总是被设定为 44’。第二层的“coin_type”特指密码货币硬币 的种类并且允许多元货币 HD 钱包中 的货币在第二个层级下有自己的亚树状结 构。目前有三种货币被定义:Bitcoin is m/44’/0’、Bitcoin Testnet is m/44’/1’, 以及 Litecoin is m/44’/2’。 树的第三层级是“account”,这可以允许使用者为了会计或者组织目的,而去 再细分他们的钱包到独立的逻辑性亚账户。举个例子,一个 HD 钱包可能包含两 个比特币“账户”:m/44’/0’/0’ 和 m/44’/0’/1’。每个账户都是它自己亚树的 根。第四层级就是“change”。每一个 HD 钱包有两个亚树,一个是用来接收 地址一个是用来创造变更地址。注意无论先前的层级是否使用是否使用强化衍 生,这一层级使用的都是常规衍生。这是为了允许这一层级的树可以在可供不安全环境下,输出扩展的公共钥匙。被 HD 钱包衍生的可用的地址是第四层级的子 级, 就是第五层级的树的“address_index”。比如,第三个层级的主账户收 到比特币支付的地址就是 M/44’/0’/0’/0/2。表 4-9 展示了更多的例子。
在这里插入图片描述

加密私钥(BIP0038)

私钥必须保密。私钥的机密性需求事实情况是,在实践中相当难以实现,因 为该需求与同样重要的安全对象可用性相互矛盾。当你需要为了避免私钥丢失而 存储备份时,会发现维护私钥私密性是一件相当困难的事情。通过密码加密内有 私钥的钱包可能要安全一点,但那个钱包也需要备份。有时,例如用户因为要升 级或重装钱包软件,而需要把密钥从一个钱包转移到另一个。私钥备份也可能需 要存储在纸张上(参见“4.5.4 纸钱包”一节)或者外部存储介质里,比如 U 盘。 但如果一旦备份文件失窃或丢失呢?这些矛盾的安全目标推进了便携、方便、可 以被众多不同钱包和比特币客户端理解的加密私钥标准 BIP0038 的出台。 BIP0038 提出了一个通用标准,使用一个口令加密私钥并使用 Base58Check 对 加密的私钥进行编码,这样加密的私钥就可以安全地保存在备份介质里,安全地
在钱包间传输,保持密钥在任何可能被暴露情况下的安全性。这个加密标准使用 了 AES,这个标准由 NIST 建立,并广泛应用于商业和军事应用的数据加密。 BIP0038 加密方案是:输入一个比特币私钥,通常使用 WIF 编码过,base58chek 字符串的前缀“5”。此外 BIP0038 加密方案需要一个长密码作为口令,通常由 多个单词或一段复杂的数字字母字符串组成。BIP0038 加密方案的结果是一个 由 base58check 编码过的加密私钥,前缀为 6P。如果你看到一个 6P 开头的的 密钥,这就意味着该密钥是被加密过,并需要一个口令来转换(解码)该密钥回 到可被用在任何钱包 WIT 格式的私钥(前缀为 5)。许多钱包 APP 现在能够识 别 BIP0038 加密过的私钥,会要求用户提供口令解码并导入密钥。第三方 APP, 诸如非常好用基于浏览器的 Bit Address,可以被用来解码 BIP00038 的密钥。 最通常使用 BIP0038 加密的密钥用例是纸钱包——一张纸张上备份私钥。只要 用户选择了强口令,使用 BIP0038 加密的私钥纸钱包就无比的安全,是一种很 棒的线下比特币存储途径(也被称作“冷库”)
在这里插入图片描述

P2SH (Pay-to-Script Hash)和多重签名地址

以数字 3 开头的比特币地址是 P2SH 地址,有时被错误的称谓多重签名或多重 签名地址
P2SH 不一定是多重签名的交易。虽然 P2SH 地址通常都是代表多重签 名,但也可能是其他类型的交易脚本

目前,P2SH 函数最常见的实现是用于多重签名地址脚本。顾名思义,底层 脚本需要多个签名来证明所有权,此后才能消费资金。设计比特币多重签名特性 是需要从总共 N 个密钥中需要 M 个签名(也被称为“阈值”),被称为 M-的 -N 的多签名,其中 M 是等于或小于 N。例如,第一章中提到的咖啡店主鲍勃使 用多重签名地址需要 1-2 签名,一个是属于他的密钥和一个属于他同伴的密钥, 以确保其中一方可以签署度过一个事务锁定输出到这个地址。这类似于传统的银 行中的一个“联合账户”,其中任何一方配偶可以凭借单一签名消费。或 Gopesh, Bob 雇佣的网页设计师创立一个网站,可能为他的业务需要一个 2-3 的多签名 地址,确保没有资金会被花费除非至少两个业务合作伙伴签署这笔交易。 我们将会在第五章节探索如何使用 P2SH 地址创建事务用来消费资金

比特币靓号地址

靓号地址包含了可读信息的有效比特币地址。例如, 1LoveBPzzD72PUXLzCkYAtGFYmK5vYNR33 就是包含了 Base-58 字母 love 的。靓号地址需要生成并通过数十亿的候选私钥测试,直到一个私钥能生成具有 所需图案的比特币地址。虽然有一些优化过的靓号生成算法,该方法必须涉及随 机上选择一个私钥,生成公钥,再生成比特币地址,并检查是否与所要的靓号图 案相匹配,重复数十亿次,直到找到一个匹配。 一旦找到一个匹配所要图案的靓号地址,来自这个靓号地址的私钥可以和其 他地址相同的方式被拥有者消费比特币。靓号地址不比其他地址具有更多安全性。它们依靠和其他地址相同的 ECC 和 SHA。你无法比任何别的地址更容易的 获得一个靓号图案开头的私钥

生成靓号地址

我们必须认识到使用来自 Base58 字母表中简单符号来代表比特币地址是非 常重要的。搜索“1kids”开头的图案我们会发现从 1Kids11111111111111111111111111111 到 1Kidszzzzzzzzzzzzzzzzzzzzzzzzzzzzz 的地址。这些以“1kid”开头的地址范 围中大约有 58 的 29 次方地址。表 4-11 显示了这些有“1kids”前缀的地址。 表 4-11 “1Kids”靓号的范围 From1Kids11111111111111111111111111111 To 1Kidszzzzzzzzzzzzzzzzzzzzzzzzzzzzz 我们把“1Kids”这个前缀当作数字,我们可以看看比特币地址中这个前缀出现 的频率。如果是一台普通性能的桌面电脑,没有任何特殊的硬件,可以每秒发现 大约 10 万个密钥。表 4-12 靓号的出现的频率(1KidsCharity)以及生成所需时间 长度地址前缀 概率 平均生成时间 1 1K 1/58 < 1 毫秒

  • 145 - 长度地址前缀 概率 平均生成时间 2 1Ki 1/3,364 50 毫秒 3 1Kid 1/(195103) < 2 秒 4 1Kids 1/(11106) 1 分钟 5 1KidsC 1/(656106) 1 小时 6 1KidsCh 1/(38109) 2 天 7 1KidsCha 1/(2.21012) 3–4 月 8 1KidsChar 1/(1281012)13–18 年 9 1KidsChari 1/(71015) 800 年 10 1KidsCharit 1/(4001015)46,000 年 11 1KidsCharity1/(23*1018) 250 万年 正如你所见,Eugenia 将不会很快地创建出以“1KidsCharity”开头的靓号 地址,即使她有数千台的电脑同时进行运算。每增加一个字符就会增加 58 倍的 计算难度。超过七个字符的搜索模式通常需要专用的硬件才能被找出,譬如用户 定制的具有多图形处理单元(GPU)的桌面级设备。那些通常是无法继续在比特 币挖矿中盈利的钻机,被重新赋予了寻找靓号地址的任务。用 GPU 系统搜索靓 号的速度比用通用 CPU 要快很多个量级。 另一种寻找靓号地址的方法是将工作外包给一个矿池里的靓号矿工们,如靓 号矿池中的矿池。一个矿池是一种允许那些 GPU 硬件通过为他人寻找靓号地址 来获得比特币的服务。对小额的账单,Eugenia 可以外包搜索模式为 7 个字符 靓号地址寻找工作,在几个小时内就可以得到结果,而不必用一个 CPU 搜索上 几个月才得到结果

纸钱包

纸钱包是打印在纸张上的比特币私钥。有时纸钱包为了方面起见也包括对应 的比特币地址,但这并非是必要的。因为地址可以从私钥中导出。纸钱包是一个 非常有效简历备份或者线下比特币存储方式,也是被称为“冷钱包”。作为备份 机制,一个纸钱包可以提供安全性,以防在电脑硬盘损坏、失窃或意外删除的情 况下造成密钥的的丢失。作为一个冷存储的机制,如果纸钱包密钥在线下生成并
永久不在电脑系统中存储,他们在应对黑客攻击,键盘记录器,或其他在线电脑 欺骗更有安全性

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 10:46:24  更:2021-09-08 10:47:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 8:36:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码