通过对资料的学习,自己对区块链有了初步了解,接下来自己将结合所习资料从区块链构成、区块链当前的应用、面临的挑战、未来可能的发展方向和应用四个角度阐述自己的观点和看法。
区块链构成
区块链系统包含五个层----数据层、网络层、共识层、合约层、激励层。
如果把区块链系统和生命体类比,那么数据层就是组成区块链的基础单元,类比为生命体的细胞;网络层是无数基础单元组合而成的整体,类比为整个躯体;共识层是区块链的灵魂,它使得各个节点各司其职而且为整个区块链所用,没有共识层,区块链不能运作;合约层是区块链的控制中心,类比为生命体的大脑;激励层是区块链得以运作的动力,类比为生命活动所需能量,如果没有激励,系统的各个节点就没有工作的动力,系统工作效率就会很低。接下来具体从这五个角度剖析区块链:(下面说的“交易”指的是一种基本行为/操作,对于加密货币而言它的基本行为是交易,如果区块链被用在别的领域,那么这个行为/操作可以被替换为所需要的行为/操作,比如在医疗领域这个行为可以是病人信息录入)
- 从数据层来看区块链,它就是一条由很多个block组成的链条,并且这个链条不断增长。每一个block由header和body组成,其中header中封装了版本号、前一区块的指针、时间戳、随机数、目标哈希和Merkle根(将交易记录不断分组哈希得到上一层,然后向上分组哈希直到得到唯一的根)。Body中包含这个block中记录的所有交易数目和交易具体内容。这种“block-> block->……-> block”的设计使得链条能够以很简单的方式增长,只需要将新的块链到当前链条的尾部即可,如果出现分叉就按照特定策略选择一条分支添加新的block,将另一条分支舍弃。从数据层看,每个基础单元就像是生命体的每个细胞,他们有着大体相同的组成结构和基本功能,它们中的每一个都能完成基本的完成并广播交易、建块并广播区块、验证交易等操作。
- 从网络层来看区块链,它是分布式存储在参与该系统的所有节点中的。当某个节点发生交易,它将此次交易信息广播到所有节点。收到交易信息的节点验证交易信息,只有大多数节点认可交易时该交易信息有效,并且该信息被记录。某个节点找到工作证明之后建立区块并广播该区块,其他节点验证工作证明和区块信息后添加该区块。区块链通过将信息进行超大规模的分布式存储来保护了信息的安全----攻击者必须攻陷至少51%的节点(根据selfish mining策略这个值是25%)才能够篡改交易信息,而这几乎是做不到的(或者说成本远高于收益)。另外,普通分布式存储具有的其他优点它也有(比如信息持久性:某些节点失效,可以通过其他未失效的节点恢复)。从这一层看起来,区块链系统就是一个整体,各个节点各司其职,共同为整体服务。
- 从共识层来看区块链,它的各个节点井然有序的为整体工作,而促成各个节点通力合作的关键就是共识机制(如果不能达成共识那么各个节点将各自为政,区块链将效率低下无法运作、容易被各个击破从而出现各种安全漏洞)。常见的共识机制包括POW、POS、PBFT、DPOS、Ripple、Tendermint,其中POW浪费巨大哈希算力资源,POS和DPOS将浪费一定的算力资源,其他方法比较节能。POS和POW机制适用于公有链,其他的则适用于联盟链和私有链。从这一层来看,区块链的共识机制解决了这种分布式系统的一致性问题,制约各个节点按照规则运作。
- 从合约层来看区块链,它通过各种代码、算法来完成复杂行为(比如加密货币应用中的“复杂交易”)的自动化和数据处理。行为的自动化通过锁定和解锁脚本完成,“交易”的甲方通过锁定脚本为交易完成添加束缚条件,乙方则需要通过满足条件来达到解锁脚本的要求,要求达到并且由解锁脚本验证通过之后,数据将自动处理(比如资金自动转账)。合约层就像区块链系统的大脑,能够控制整体自动化运转。
- 从激励层来看区块链,它通过一定的奖励机制让各个节点更有动力地运作,就像人体为各个细胞输送糖类等养分使得细胞能够持续高效地运作。不同的区块链系统有不同的激励机制(但是大多数联盟链和私有链都是没有激励机制的,因为各个节点为整体服务是它们的义务),比如比特币共识机制中的经济激励是由新发行比特币奖励和交易过程中的手续费两部分组成,奖励给成功搜索到新区块的随机数并记录该区块的节点。
区块链当前的应用
好比一个生命体能够进行的生命活动(比如行走),区块链作为一个整体也能完成工作,也即是完成区块链应用。因为区块链具有去中心化、分布式高度冗余存储(这使得它几乎不能被篡改和伪造)、时序性、自动执行、安全性、持久性等等特点,使得它可以在金融、数据存储、数据鉴证、资产管理等多种场景得到广泛应用:
- 金融领域:比特币应用是区块链技术为基础发展出的极为出色的应用,用户可以使用比特币进行匿名、安全无风险的转账、清算。区块链技术在金融领域的应用除了提供金融服务还有帮助企业转型(通过发行叫做post coin的染色币帮助Pos转型,由于PO的公信力,这种发行的币能够得到快速流行)、完成P2P 网络借贷、互联网保险等。
- 数据存储领域:去中心化、高安全性和匿名性等特点使区块链适合用于存储重要/隐私数据。目前的应用有:病人病历信息存储、重要电子文件存储等。
- 数据鉴证领域:时序性、分布式高冗余存储(多节点共同验证且不可篡改和伪造)等特点使区块链可用于各种审计场景。目前的应用有:存储政府机构颁发的各类许可证、登记表、执照、证明、认证和记录等,并可在任意时间点方便地证明数据的存在性和真实性。
- 资产管理领域:时序性、分布式高冗余存储(多节点共同验证且不可篡改和伪造)等特点使区块链可用于各种无形资产的管理(知识产权授权保护、域名、积分发放和管理等)。至于有形资产,可以通过物联网技术将该资产加入到物联网络中从而使其具有对应的数字资产表示(即有形资产的无形表示),然后使用区块链对这些资产进行管理(房屋、车辆等资产租赁和回收等)。
- 其他领域:区块链还能够广泛应用与其他领域,如节能环保领域(发行solarcoin奖励产出太阳能产出者,这利用了区块链的智能合约技术,只要用户产出太阳能就能自动化得到solarcoin奖励)、教育领域(远程教学中利用区块链的区块记录教师的上课信息,将老师的上课看作是一笔“交易”)等领域。
面临的挑战
好比脆弱的生命体,区块链也有它的弱点,区块链目前面临的挑战主要分为以下几点:
- 效率问题:因为区块链的每一个节点都需要保存一个数据备份,而且这个数据备份是日益增长的,就拿比特币区块链作为例子,它的整个链条达到100G大小,这将耗费大量资源(重复冗余导致资源利用率低)。并且由于随机哈希计算难度很大,比特币区块链每秒钟只能够处理7笔交易,并且每一笔交易确认时间是10min,效率很低,不适合实时处理成千上万的小额交易。并且区块链的每个块很小,所以大额交易因为交易费高所以优先被处理,这不公平。解决方案有以下两种:可以简化每个block,使得它不需要存储所有交易细节就能验证交易的真实性;另一种是重新设计区块链结构。
- 隐私泄漏问题:虽然在区块链上各个节点是匿名的,并且每个节点的IP和真实世界中人的身份没有任何关联,但是由于区块链交易都是公开的,可以通过分析某个节点的交易情况来推测这个节点的身份(比如这个节点经常和哪些节点交易,如果已知该节点的某些交易对象真实身份就有可能推测出该节点真实身份)。解决方案有如下两种:mixing技术,当A想要和B交易的时候A可以委托中介人C,C同时和不同对象(D、E、F等)进行多笔交易,这其中就包含和B的交易,这样就无法查知A到底和谁进行了交易(D/E/F/B还是其他人)。Mix coin还可以防止中介人的作弊行为;另一种技术手段是:使用zerocoin,矿工不用通过数字签证就能判定交易信息,只需要判定交易的币是否在一系列币之中即可判定交易信息是否正确/真实,但是还是不能完全隐藏交易目的地和交易数量,所以又研究出zerocash解决上述问题(能够隐藏交易目的地和交易量)。
- Selfish mining问题:这个地方自己读论文和相关文献没搞的很懂,所以说的可能有错误请包涵。首先指出“挖私矿”是指有些矿工计算出块信息之后不公布信息而是开出一条分支并且在这条分支上继续添加区块,如果挖私矿得到相比普通挖矿得到的链条更长就会公布这条分支,然后由于这条分支更长,之后的矿工将选择从这个分支继续建立区块,另一个分支将被抛弃(建立的区块也将失效,对应的矿工也就得不到收益)。有学者指出挖私矿相比普通挖矿将得到更大的收益,所以将有很多矿工加入私矿队伍,并且私矿队伍很容易拥有超过50%的矿力,所以只需要总矿力25%的矿力就能够篡改数据(因为私矿队伍不公布分支也就不参与验证)。这将使得区块链中存储的信息被篡改的概率增大。最好的解决办法是zeroBlock使用的方法:新建立的区块必须在一定时限内通过所有网络节点的验证才有效,这样私矿收益将大大减少,从而减少挖私矿行为。
- 资源浪费问题:使用POW共识机制需要花费大量哈希算力来获取工作量证明,这需要浪费很多电力资源,而这样的哈希计算时没有任何实际含义的,所以这些电力纯粹是浪费了。改进办法是利用算力解决一些实际问题(比如Primecoin要求在共识过程中找出素数的最长链条)
未来可能的发展方向和应用
关于区块链未来的发展方向和应用:
根据论文《区块链技术发展现状与展望》,将区块链技术发展阶段分为可编程数字加密货币体系为主要特征的区块链1.0模式、以可编程金融系统为主要特征的区块链2.0模式和以可编程社会为主要特征的区块链3.0模式,现在处于2.0模式初期阶段,并且这些模式是并行发展的,区块链1.0模式的数字加密货币体系仍然远未成熟,相关区块链领域学术研究严重落后。
我们已经看到,作为区块链技术的代表性应用,比特币取得了巨大的成功,所以我们也可以预见区块链技术在其他领域(经济、科技和政治领域等)大展身手。所以说区块链技术十分值得我们投入相当的技术和人才资源去研究,而这种研究所能够带来的回报将是不可估量的。
下面是自己觉得区块链未来可能的发展方向(虽然现在正在应用区块链技术的场景也还有待完善和优化,但是展望未来还是有必要的):
- 智能合约:目前的合约都是自动化的,但是还仍然达不到智能化的水平,它们基本上都是根据代码中设定好的条件判断交易双方的行为是否促成条件,然后根据判断结果执行对应操作。未来的合约将是收集周围的信息然后智能化推演、判断应该执行什么样的操作,并且能够不断进行学习,不断优化判断,实现自动化到智能化的转变。
- 大数据分析结合区块链技术:由于区块链能够分布式地存储大量的数据,所以能够用于大数据分析,我们可以通过分析用户在区块链中的行为分析出用户的特点/喜好(比如根据用户的交易行为得出用户的交易偏好),然后提供更好的服务(比如给用户提供一些推荐)。当然还存在很多很多其它可能,自己觉得最有前景的就是以上两种。
以上,就是自己对区块链的初识,有的地方可能有不妥当,还请包涵。
参考论文:《区块链技术发展现状与展望》、《Blockchain Challenges and Opportunities : A Survey》、《Majority is not enough》等