找回密码
 立即注册

扫一扫,登录网站

首页 区块链生态 查看内容
  • 15086
  • 0
  • 分享到

虚拟货币为何难当货币大任?从比特币底层技术说起

2020-10-3 21:19

来源: 澎湃新闻 作者: 吴云、朱玮

比特币的交易数据构造:交易、区块、链

和传统的电子支付一样,比特币也抛弃了纸钞、黄金这样的实体,但为了在点对点环境下实现可信支付,比特币创造性地使用交易记录作为货币的载体。虽然在比特币名字中有“币”这个字, 但在比特币这个系统中并不存在一枚金光闪闪的“币”。 比特币所构造的模型迥异于传统银行系统的余额制, 当然更不同于古老的金银铸币和纸钞(倒是在流通模式、隐私保护上与金银和纸钞类似)。中本聪设计的比特币,以交易记录的形式出现。你并非拥有一个比特币, 而是拥有别人转比特币给你的一笔记录。这个记录就叫作“未花费的输出”(Unspent Transaction Output,UTXO),可以理解为一张可转让的权利电子凭证。

很多论著或报道告诉我们,区块成链,所以我们把这种技术形象地称为“区块链”。实际上,比特币区块之中的交易通过UTXO记录的形式也勾连成链,形成了连续的交易链条,也即交易成链。我们来具体了解一下“区块”的特点和“链”的形成过程。

“区块”是将多笔交易数据打包在一起形成的数据体。可以将区块理解为一个账本, 账本里记录了多笔交易。单笔交易在最简单的情况下,大小为250字节, 当然实际发生的交易会大于这个数值。每个区块大小被中本聪限定最大为1兆字节(1024千字节), 那么我们就可以算出来, 一个区块最多可以容纳4096(1024000/250) 笔交易。以账本作比喻, 中本聪限定了一个账本最多只有1024页。而每个最基本的交易要占用四分之一页, 那么一个账本最多就是4096笔交易。

区块成“链”的同时交易也成链。记账人按照规则在账本(区块)上记满了交易后,在封面贴上时间封条,同时在账本封面上记录前一个账本的编号,这样就在账本之间构成了一个首尾相连的账本链条。这样构成的账本链条, 有一个特点:越老的账本, 其中的交易越难以篡改。若要更改2015年高度为363270区块中的一笔交易, 那么就要将自2015年该账本之后的所有账本, 全数改掉, 重新记账才可做到。

如何防止篡改账本呢?比特币创造性使用了工作量证明(POW)机制,矿机通过哈希运算竞争获得记账权,从而防止区块篡改。比特币没有中心服务器,而是由所有节点的矿机自发运行为系统提供算力。矿机通过竞争,以获得记账权,系统会给获得记账权的矿机以比特币作为奖励。也就是我们常说的“挖矿”。矿机作POW运算就是对“区块头”数据进行两次哈希运算(比特币使用的是SHA256哈希运算), 得到了一个256位的哈希值。

算出哈希值只要几秒时间,矿机在瞬间即可完成,因此,比特币给哈希运算提出了要求,也即你必须算出指定要求的哈希值,比如,前19位数都是零。这样,难度陡然增加。矿机要算出指定要求的哈希值,必须用试错的方法,将随机数(专业上称作“被使用一次的非重复的随机数值”,即Nonce)不断代入以运算出小于某个数值的哈希值。因为SHA256的运算结果是非常随机的, 所以, 要想运算出指定的哈希值, 唯一的方法就是不停地尝试Nonce。因此, 矿机是否能够挖矿成功, 一是依赖矿机的运算速度; 二是依赖运气, 也许第一次改变Nonce的值, 就得到了合乎大小的哈希值, 也许运行几百亿次, 也没有得到。比特币设置了自动调节哈希运算的时间,将其设定为平均十分钟,并动态调整。这个时间设定,是两个方面的平衡,时间太少,消耗算力不够,无法让篡改企图知难而退,且造成网络同步不稳定,而时间太长则交易确认时间过长,矿机体验太差。

以上是对比特币的区块链原理的基本解释,对于非技术人员了解比特币的运行效率而言,至关重要的有三个方面:

第一,可以将每一次比特币交易验证过程理解为一次“出块”,就是将很多交易数据文件整理在一起后封装,并盖上数据哈希和时间戳,从此不再更改(前提是在哈希竞赛中胜出并在共识机制中得到足够多的确认)。

第二,比特币区块大小被设定为1兆字节,每个区块理论上只能记载4096笔交易。

第三,出块时间就是矿机们验证交易、区块打包、哈希竞赛的时间,按照比特币代码的设定,比特币哈希竞赛的目标难度值会进行动态调整,使出块时间平均维持在10分钟左右。


版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。
相关新闻
发表评论

请先 注册/登录 后参与评论

    回顶部