比特币是如何工作的?

比特范 view 448 2020-4-17 15:23
share to
Scan QR code with WeChat

密码学

有几种加密技术构成了比特币的本质。

首先是。每个硬币都与其当前所有者的公共相关联。当您向某人发送一些比特币时,您会创建一条消息(),将新所有者的公共密钥附加到此数量的硬币上,并用您的私钥。当此交易被广播到比特币网络时,这将使每个人都知道这些硬币的新所有者是新密钥的所有者。您在消息上的签名会为每个人验证消息的真实性。完整的历史记录交易记录由每个人保存,因此任何人都可以验证谁是任何特定组硬币的当前所有者。

交易的完整记录保存在,这是一系列称为的记录网络中的计算机都有区块链的副本,它们通过相互传递新的区块来保持更新。每个区块包含自上一个区块以来已发送的交易成组进行。为了保持区块链的完整性,链中的每个区块都确认了前一个区块的完整性,一直追溯到第一个,即。记录插入的成本,因为每个块都必须满足某些要求,从而使生成有效的块变得这样,任何一方都不能仅通过分叉链来覆盖以前的记录。

为了使生成比特币变得困难,使用了成本函数.Hashcash 是第一个安全,有效,可验证的成本函数或工作量证明函数.hashcash的优点在于它是非交互的,并且没有必须加密的密钥由中央服务器或依赖方进行管理;因此hashcash是完全分布式的且可无限扩展的(hashcash使用对称密钥密码术,即一种单向hashcash函数,通常为SHA1或SHA-256)。

在比特币中,完整性,区块链和现金成本函数均使用作为基础。

密码散列函数实际上会获取几乎任何大小的输入数据,并将其以有效不可能的反向或预测方式转换为相对紧凑的字符串(对于SHA-256,散列为32个字节) )。对输入数据进行最细微的更改会意外地更改其哈希值,因此没有人可以创建提供完全相同哈希值的不同数据块。通过提供紧凑的哈希值,您可以确认它仅与特定输入匹配数据,并且在比特币中,作为区块链的输入数据远大于SHA-256哈希。这样,比特币区块不必包含序列号,因为可以通过其哈希来识别区块,从而为双重识别和完整性验证的目的。也提供其自身完整性的标识字符串称为自认证标识符。

该的Hashcash 系数达到通过要求散列函数输出有很多的前导零。从技术上说,为了让更多的细粒度控制比的Hashcash一批龙头0位法,比特币扩展的Hashcash解决方案的定义通过处理哈希作为一个大的big-endian整数,并检查该整数是否低于某个阈值。hashcash成本函数通过用值对块中的数据进行扰动来进行迭代,直到该块中的数据散列以产生阈值以下的整数为止。该块的低哈希值可作为易于验证网络上的每个节点都可以立即验证该块是否符合要求的标准。

有了这个框架,我们就能实现比特币系统的基本功能,我们拥有可验证的比特币所有权,以及所有交易的分布式数据库,可以防止。

比特币

我们在上一节中提到过,在区块链中添加一个区块非常困难,需要时间和处理能力来完成,而投入这一时间和电力的动机是设法生产区块的人会获得奖励。 。奖励有两方面首先,块生产者获取赏金一定数量的比特币,这是商定由网络(目前该赏金是25个比特币;.这个值将减半每21万块)二,任何生产者可能要求大宗商品中包含的交易中可能存在的。

这引起了被称为“比特币 ” 的活动,该活动利用处理能力来尝试生成有效的区块,结果是“挖掘”了一些比特币。网络规则使得调整以将区块生产保持在大约每10分钟1块。因此,矿工从事采矿活动的次数越多,每个个体矿工生产块的难度就越大。总难度越高,攻击者越难覆盖目标的尖端。带有自己的积木的区块链(这使他可以将硬币花费双倍。有关详细信息,请参见页面)。

除了对于维护交易数据库很重要之外,挖矿还是在比特币经济中人们创造和分配比特币的一种机制。网络规则使得在接下来的一百年里,付出或花费几十年,请参阅。不是将钱从直升飞机上丢掉,而是将比特币奖励给通过在创建对网络做出贡献的人。将创建2100万比特币。

双花

该是一种常见的总帐赞同所有的比特币节点里面详细介绍了所有者的每个比特币,或其一部分。不同于传统的银行系统,没有集中的地方,这个账目交易被储存。这是通过通过广播小块(“块”),每个块都表示它是前一个块的延续。块链有可能分裂;也就是说,两个块都可能指向同一个父块并包含一些,但是,并非所有事务都相同。发生这种情况时,网络中的每台计算机都必须自己决定哪个分支是应接受并进一步扩展的“正确”分支。

这种情况下的规则是接受“最长”有效分支。从收到的块的分支中选择路径,其总“难度”最高。这是假定的块序列对于所需的比特币,这将是事件的“真实”顺序,这是计算余额以显示给用户时要考虑的内容。

随着新块的不断生成,仍有可能在以后的某个时间将另一个分支变成最长的分支,但是扩展一个分支需要花费大量的精力,而节点会努力扩展已经收到的分支并且被接受(通常是最长的分支)。因此,与第二长的分支相比,该分支变得越长,第二长的分支要赶上并克服第一长的分支所花费的精力就越大。网络中听到的节点越多,最长的分支越多,下一次生成一个块时其他分支的扩展就越不可能发生,因为节点将接受最长的链。

因此,交易成为最长区块链一部分的时间越长,越有可能无限期地保留在区块链中。这就是使交易不可逆的原因,这也防止了人们自己的硬币。在应该将钱转移给他/她之后,每笔交易的接收者的工作是检查所述交易之后的区块链已变成多长时间,因为交易之后添加到最长分支中的区块越多,发生的可能性就越小是其他分支机构将克服它吗?

当交易后的区块链足够长时,另一个分支几乎不可能克服它,因此人们可以开始接受该交易为真,这就是为什么``区块''还可以作为交易的``确认''的原因即使另一分支机构确实克服了交易的障碍,大多数区块仍将由与硬币发件人无关的人生成,因为大量的人正在努力生成区块。对于网络中的所有节点,这些块包含事务的可能性与先前接受的分支中的块一样。

比特币依赖于这样一个事实,即任何单个实体都无法在任何可观的时间长度内控制网络上的大部分CPU能力,因为如果可以的话,它们将能够扩展他们选择的树的任何分支,并且比任何树都更快。可以扩展其他分支,使其成为最长的分支,然后永久控制其中出现的交易。

btcfans公众号

Scan QR code with WeChat

Disclaimer:

Previous: 比特币细节答疑 Next: UTXO与比特币脚本

Related