# |6 K. r) f! a. i" b3 Y交易的完整记录保存在,这是一系列称为的记录网络中的计算机都有区块链的副本,它们通过相互传递新的区块来保持更新。每个区块包含自上一个区块以来已发送的交易成组进行。为了保持区块链的完整性,链中的每个区块都确认了前一个区块的完整性,一直追溯到第一个,即。记录插入的成本,因为每个块都必须满足某些要求,从而使生成有效的块变得这样,任何一方都不能仅通过分叉链来覆盖以前的记录。) ~" F" f. {7 o6 ~% l6 q& l1 A
; i5 ~; D' D) S3 ?. h1 g+ x* {为了使生成比特币变得困难,使用了成本函数.Hashcash 是第一个安全,有效,可验证的成本函数或工作量证明函数.hashcash的优点在于它是非交互的,并且没有必须加密的密钥由中央服务器或依赖方进行管理;因此hashcash是完全分布式的且可无限扩展的(hashcash使用对称密钥密码术,即一种单向hashcash函数,通常为SHA1或SHA-256)。# N9 }7 F, m6 F U2 _
0 B, n) S9 \; O9 t在比特币中,完整性,区块链和现金成本函数均使用作为基础。7 d3 P4 j+ o P
B. ?0 J% n. m( E- W
密码散列函数实际上会获取几乎任何大小的输入数据,并将其以有效不可能的反向或预测方式转换为相对紧凑的字符串(对于SHA-256,散列为32个字节) )。对输入数据进行最细微的更改会意外地更改其哈希值,因此没有人可以创建提供完全相同哈希值的不同数据块。通过提供紧凑的哈希值,您可以确认它仅与特定输入匹配数据,并且在比特币中,作为区块链的输入数据远大于SHA-256哈希。这样,比特币区块不必包含序列号,因为可以通过其哈希来识别区块,从而为双重识别和完整性验证的目的。也提供其自身完整性的标识字符串称为自认证标识符。) N5 W$ z7 ~7 z7 i2 j5 `
& t! F; R7 F, d9 j6 H该的Hashcash 系数达到通过要求散列函数输出有很多的前导零。从技术上说,为了让更多的细粒度控制比的Hashcash一批龙头0位法,比特币扩展的Hashcash解决方案的定义通过处理哈希作为一个大的big-endian整数,并检查该整数是否低于某个阈值。hashcash成本函数通过用值对块中的数据进行扰动来进行迭代,直到该块中的数据散列以产生阈值以下的整数为止。该块的低哈希值可作为易于验证网络上的每个节点都可以立即验证该块是否符合要求的标准。) I. _6 @9 T m9 y- ^