区块链因为比特币而为大家熟知,随之而来衍生出一些优秀的项目,比较有代表性的有以太坊(Ethereum)、锯齿湖(Sawtooth Lake)、超级账本(Hyperledger)、比特股(bitshares)、瑞波(Ripple)、小蚁等,根据不同的应用场景分为应用于公众的公有链,需要授权使用的私有链和联盟链,还有在原有区块链基础上进行扩展的侧链等,随着区块链的发展,相信还会有其他形式的应用出现,任何的应用都不是绝对的,应该按实际的业务需求来定。
比特币在牺牲资源和性能的情况下增加了安全和稳定,相较于比特币,新衍生的区块链项目在一定程度上解决了资源浪费和性能这两方面的问题,但安全性有待继续研究,我们经常会看到某某区块链被攻击,发现了某某区块链的漏洞等,这也充分说明了,我们还有很多坑要踩,很多问题需要研究和尝试。
从比特币开始,到现在众多新的区块链项目出现,区块链的层次结构基本分为应用层、合约层、激励层、共识层、网络层、数据层。
应用层一般是业务平台或应用平台,通过业务逻辑处理形成需要上链的数据,按照区块链定义的规则,将数据发送给区块链。最终可以是一笔交易,也可以是需要上链的规则数据,还可以是一笔合同等等。对于应用层我们可以理解为各种应用场景或案例。
合约层在比特币的时候是脚本代码,新出现的区块链项目提出了智能合约的概念,智能合约采用图灵完备的编程语言,以期满足更广泛的应用的场景,因为有了智能合约才有了现在各种各样的币,以及针对于不同行业的区块链应用。但是图灵完备具有一定漏洞缺陷,所以智能合约还需要一段时间的尝试。
共识层是区块链中比较重要的环节,区块链是分布式的系统,对于分布式系统来说,分布式一致性是关键的问题,为了使这种分散的节点达成一致,而采用了共识机制。目前论证和使用比较多的共识机制有:工作量证明(Pow)、权益证明(Pos)、股份授权证明机制(DPOS)、验证池(Pool)、实用拜占庭容错(PBFT)、授权拜占庭容错(dBFT)、权威证明(PoA)等,以后会专门讲解这部分内容。
激励层在中本聪的设计中采用全员记账的方式,记录系统中产生的交易,为了使全网节点竞争记账,而采取的奖励措施,是一种奖励的发行和分配机制,奖励包括系统奖励和交易手续费。这种通过竞争记账最终获得奖励的过程就是我们常说的“挖矿”。目前币圈流行的各种币都是激励层的杰作,这种奖励机制在公有链中使用比较普遍,随着区块链的发展和特定业务场景的需求,联盟链也开始尝试使用奖励机制(ibm的超级账本也要加入Token了)。
网络层用于实现区块链各个节点的信息交互,区块链网络是分布式网络,网络中存在多个节点。提到分布式大家可能会想到客户机/服务器模式,这种模式存在“中心化”的弊端,区块链采用的是对等网络架构,是一种在对等者之间分配任务和工作负载的分布式应用架构。网络中的节点彼此共享资源,服务和内容。这种分布式架构具有高度的容错性和抗攻击性,但是性能问题是亟待解决的问题。个人认为分布式架构在区块链应用中是十分重要的存在。
数据层是区块链最终的数据存储,区块链基本数据单位为区块,以hash作为块标识,用来与下一区块相连,最终形成首尾相连的链表式数据结构。区块是信息记录集,记录了被创建时发生的所有事情,区块中的数据采用了密码学技术来保障数据的安全性。需要注意的是,对于区块的容量在设计阶段要做好详细的规划,以免出现比特币的容量限制问题。
总结,对于区块链可能还会存在多种的逻辑应用,以上列出的是目前区块链架构普遍采用的方式,如果大家有什么想法可以互相讨论。
另外,现在区块链火热的点很多都在“币”上,不知道专家,大佬们闲暇之余是否可以考虑一下,用区块链解决一些问题呢,比如保护莘莘学子成绩不被篡改,不被冒名顶替,又比如文艺工作者的确权问题,侵权盗版等。
原文地址:https://www.cnblogs.com/pangxt/p/blockchain_2.html