区块链学习笔记6:实例说明区块链技术

已经记录的5篇区块链文章主要在概念上对区块链技术做了说明和介绍,相信让很多人对区块链技术有了一定的感官了解。但是,也仅仅局限于此,明白了区块链的关键与核心特点,例如去中心化、去信任、可靠难篡改、分布式数据库之类等。至于具体应用了哪些技术,如何服务于区块链,还是一脸迷茫,本篇将用实例来说明区块链技术在比特币中的具体使用场景。

区块链学习笔记6:实例说明区块链技术

场景设定:用户a要向用户b转账比特币

主要交易流程:

1、下载钱包和创建收款地址

  • 比特币钱包是交易的基础,实际上就是个文件,可以访问用户的比特币地址

  • 比特币地址类似于银行账户,每个用户都能创建多个账户。用户a需要创建一个地址,作为接受用户b的转账收款。

  • 创建账号,实际上也就是在生成公钥和私钥,用于交易加密使用

2、提交转账申请

  • 用户b通过比特币钱包,发起转账申请,即输入用户a创建的收款地址,同时输入转账金额

  • 比特币钱包就会用用户b的私钥来验证付款账号的合法性,对本次交易申请进行私钥签名

  • 签名后的数据全网广播,由大家通过用户b的公钥解密后验证合法性

3、交易验证

  • 交易的验证由全网上的其它节点来保证,即所谓的矿工

  • 每个旷工都会将距离上一次记录的区块以来的所有记录打成一个区块,但只有1个矿工有资格发起此次区块的记录

  • 区块记录资格是通过计算一个正确的hash值来获取的,hash值的计算基于上一个区块的hash值、本次需记录的区块信息、一个随机数来算的


  • 系统对算出来的hash值有特征要求,需要hash值已特定数量的0作为开始,这一限制导致了每个矿工需要不断去修改随机数以期获取到符合要求的hash值,从而获取到记录区块的资格

  • 此外,每个区块还包含一个coinbase的交易记录,里边就是记录了本次给予挖矿成功人的比特币奖励信息,此时挖矿成功者的钱包里会自动生成一个地址存放奖励金额

  • 挖矿成功者会记录本次的区块信息,并全网广播告知,让全网每个节点都同样记录一份

至此,一次交易算是完成了。下面额外追加说明下比特币技术目前存在的明显问题

1、区块容量和交易速度受限

比特币设计之初只允许每个区块大小不超过1M,即交易记录不超过4096个。同时,挖矿的工作量证明机制使每个区块的记录需要花费大约10分钟左右的时间。目前区块扩容需求已经越来越急切。


2、挖矿机制对资源存在巨大的浪费

曾有人统计评估过,每年用于挖矿的成本大约在8亿美元左右,包括矿机的投入,用电的损耗等。而挖矿的本质其实就是为了找到一个随机数,生成正确的hash值而已,并没有产生其它额外的价值。对此,业界主要提出了两种解决方法:限制矿工数量,减少挖矿竞争;引入权益证明机制,配合工作量证明机制。

3、比特币脚本语言不支持循环语句

区块链2.0是智能合约阶段,而对于不支持循环语句的比特币脚本语言来说,无疑是很难满足复杂的逻辑需求的处理,对智能合约的直接支持程度不足。这也是将比特币归类于区块链1.0阶段的原因所在。


分享到:


相關文章: