除了要解决的挑战外,还有一些特定的关键要求才能使区块链在行业应用中得以利用。?这些要求企业布局产业区块链时对于促进这些应用程序的设计,开发和部署是必需的。
重要的是使用一个良好的区块链平台,该平台能够提供所需的服务,以实现和部署特定企业或行业的区块链应用程序。
目前正在开发不同的区块链平台。这些平台中的某些是通用的,可用于不同的工业领域,而其他平台则更为专业化,并针对特定领域进行开发。通用平台的一个例子是以太坊,这是一个基于开源公共区块链的分布式计算平台。它为需要使用智能合约的应用程序提供了一些支持。可以对以太坊中的智能合约进行编程,以代表某个公司或组织进行谈判和签订合约。
另一个通用的工业区块链平台是Hyperledger。Hyperledger是Linux基金会于2015年底发起的开源区块链平台项目。该项目的目的是为金融,物流和制造等不同领域的区块链工业应用提供良好的性能和可靠性支持。Hyperledger的另一个目标是包括由个人努力开发的开放协议和标准,以允许在一个平台上收集和集成用于共识,数据管理,身份管理,访问控制管理和智能合约的不同类型的区块链服务。
特定领域区块链平台的示例包括用于医疗保健应用的Gem和Tierion,用于物流应用的Proveance和Hijro。这些平台提供了旨在支持它们所服务的特定领域的特定功能和工具。
这些功能和工具可以为支持这些领域需求的区块链应用程序提供快速开发和/部署。但是,这些平台通常在灵活性和开放性方面受到限制。
通常,区块链平台的选择完全取决于行业需求和区块链中的行业协作链。例如,一组医疗保健提供者可以使用支持医疗保健应用程序的Gem之类的平台,而来自不同领域的多家协作性多元化公司可以使用以太坊之类的平台在其网络上实施智能合约功能。
一、平台选型的维度
区块链架构:部署方式、共识机制、技术组件
区块链应用场景不同而有不同的架构,区块链1.0支撑虚拟货币应用,也就是与转账、汇款和数字化支付相关的密码学货币应用。区块链2.0支撑智能合约应用,合约是经济、市场和金融的区块链应用的基石,包括股票、债券、期货、贷款、抵押、产权、智能财产和智能合约。区块链3.0应用是超越货币、金融和市场的范围的去中心化应用,特别是在政府、健康、科学、文化和艺术领域的应用。
区块链也会因部署模式的不同而有不同的架构,即3种部署模式:“公有链”“联盟链”和“私有链”。
全面的通用区块链架构模型分成六层:数据层、网络层、共识层、激励层、合约层和应用层组成,不是所有区块链都必须包括这六层,一般来说数据层、网络层和共识层是区块链必不可少的,联盟链没有代币激励层,BTC区块链没有合约层和应用层。另外不同区块链架构还体现在共识层算法的区别,比如BTC采用PoW,ETH将过渡到PoS,EOS的共识是DPoS机制,联盟链多采用PBFT实用拜占庭容错共识。
上述六层通用区块链架构还是比较适合底层区块链项目的开发,实际在企业级应用区块链平台还应该支持更多的功能扩展,因此架构的灵活性及扩展性尤为重要,模块化成为重要考量。根据工信部《区块链参考架构》,区块链架构从功能视图应该既包括区块链的数据层、核心功能层,还应提供包括开发、运维、安全、监管在内的技术组件,当然根据具体场景业务,不同的模块组件之间可以做组合删减,比如需要监管节点接入,身份认证和跨链的场景,那么相应的区块链架构就需要在扩展层提供以上的组件功能。
安全机制
区块链本身通过分布式存储、密码学和共识机制提供了安全手段和技术,对区块链平台的安全评估应该从防51%攻击、密钥生成算法和存储、隐私保护等维度进行分析。
1.防51%攻击
纯PoW/PoS公链都存在算力51%集中矿池攻击导致潜在双花风险,评估此类项目还是要关注网络节点算力及集中化程度。BTC网络采用UTXO模型,即除挖矿coinbase奖励之外,任何一笔交易输入必须存在可追踪的交易输出,形成BTC所有权转让的完整链条,记录资产转移历史,确保一笔钱不被花两次。ETH通过智能合约账户记录余额,类比传统金融账户,任何一个账户资金的增加和另外一个账户资金的减少相等。当然这些都是防双花的辅助技术手段,区块链最根本的还是去中心化程度高的优势,如果区块链本身就中心化,安全优势和中心化系统比是伪命题。
2.?密钥生成算法和存储
密钥是去中心化世界身份和权利的载体,一般在用户账户层面,通过算法分配公钥和私钥,私钥由用户自身控制,私钥文件存储在用户终端或者托管在服务器,在密钥生成算法里面,一般私钥由随机种子数生成,再经由椭圆曲线加密算法生成公钥,公钥无法反推私钥,因此确保生成私钥的随机数哈希函数无法被破解就非常关键,目前SHA3系列的哈希算法尚无法攻破。
一般来说私钥由用户掌握,丢失私钥将不可找回。但这不意味所有区块链平台都不提供密钥丢失后找回的功能,在联盟链里面,密钥托管在和区块链节点分离的服务器上,通过内部安全通信协议或者用户密码授权可以找回私钥。EOS区块链也提供密钥恢复的功能,账户所有者可以通过使用过去30天活跃的任何其批准的账户恢复合作伙伴的密钥重置账户所有者的密钥。对于公有链网络,由于网络去中心化且公开,一般情况下平台无法恢复用户丢失的私钥文件。
3.?隐私保护
虽然区块链不存储明文,交易记录均以哈希值表示,但数据公开在网络上,账户地址的转账交易记录全网可查,并没有做到绝对的隐私保护。因此隐私问题已经成为区块链项目的热门领域,也是区块链拥趸者极力看好的方向。区块链通过账户及密钥实现了背后所有者唯一管理权,但是账本公开也对隐私造成了困扰,是否应该由用户授权来查看这些交易记录,目前联盟链通过引入通道和授权管理来保护隐私问题,公共区块链项目则在探索零知识证明、环签、同态加密、多方计算等隐私保护算法在区块链的应用,但受限于技术成熟度和计算复杂度,目前的进展是非常缓慢的。
应用适用性
上文提到不同的区块链架构决定了应用层的伸缩性,比如比特币网络为代表的区块链1.0架构简单但是稳定,适合转账和支付场景。随着区块链架构的复杂度提升和功能组件的丰富,应用层的场景得以被拓展至金融外的行业应用,但是反过来又提出了新的问题,目前的区块链架构是否真正能承载金融之外的应用。在真实商业场景,采用P2P通信和分布式存储方式的区块链网络应对很多业务是非常低效的,还不如用中心化系统来得直接,这也是很多区块链项目被诟病的原因,一边在鼓吹去中心化,一边在现实应用被打脸成伪需求。
然后还有很多项目想搭建一条链全行业“通吃“,任何场景的应用都可以在它的链上运行,说这话的项目方也不是完全没有逻辑,很多人在将区块链和互联网TCP/IP进行类比,认为最后一定是赢者通吃,成为一个标准,但是想做所有应用的基础链难度是很大的,技术门槛是一部分,其次很多行业场景不需要区块链,如果涉及监管问题也不是说你技术牛就选择用你的链。
所以这里就是谈到任何区块链平台都有它的适用性,一样存在能力边界,像ETH/EOS这样的区块链计算平台其实已经跑了很多Dapp应用了,除了很多是不存在真实需求场景的,这个和企业区块链应用完全是两回事,如果是真实的行业应用场景,这样的公链平台未必是首选,因为上文已经说过了,真实的区块链架构其实除了底层链基础外还需要相应的扩展组件或者说中间件的能力,而这样的底层公链架构设计里面是欠缺这些模块预设的,基本都交给了应用开发层。
ETH算是少有的支持公链、联盟链和私有链等多种部署方式的平台,利用智能合约,除了金融应用,还支持社交、DAO、预测、供应链等场景。
HyperledgerFabric主要还是跨行业联盟应用,比如供应链管理、医疗健康、智能制造和教育;R3Corda作为银行发起的区块链联盟,主要专注金融领域应用;IOTA为代表的DAG结构的链则专注在物联网区块链的探索。
微众BCOS、蚂蚁金服等企业区块链应用服务平台则专注提供区块链BaaS解决方案,支持功能配置包括身份账号、安全、跨链,适用于多个场景。
二、平台选型量化指标
性能指标
1.吞吐量——每秒处理的交易数TPS
BTC的tps在6-7之间,ETH升级前数字在25-40,EOS3000tps,NEO/ONT等公链tps均在1000-3000之间,Fabric利用PBFT共识tps在1000左右,BCOS在4节点环境下数千tps,可见目前从tps指标来看,主流的项目处理速度达到千级别,离上万还有距离。当然不乏很多项目上来就是成百上千万的tps数据,至于真实性如何,实际网络运行效率和节点数都是需要验证的,这里就不具体展开了。
2.?确认时间
出块速度BTC是10分钟1次,1次确认时间大概就是10分钟,完整的6次确认需要1个小时。ETH大概12秒出块确认,Fabric的确认时间是3-6秒,EOS也是秒级,目前很多项目都以毫秒级确认为技术突破目标
3.?容错率
不同的共识机制下决定网络在多少个节点不正常工作时,账本一样能够实现在全网一致性,BTC采用的PoW共识容错率是50%,只要不超过1半节点不正常工作,BTC就无法被攻击。Farbic采用的PBFT共识采用5次投票,通过节点之间的通信达到账本一致性,只要不超过三分之一的节点作恶,网络就能正常工作,容错率为33%左右,目前也有很多项目在PBFT、PoW、PoS等经典共识算法基础上优化出新的共识,具有不同的容错率,这里就不一一分析了。
开发指标
1.?编程语言种类
支持C++/Java/Go/Python/JS等传统编程语言的一种或几种,同时智能合约开发拥有自己的语言,比如ETH的Solidity。
2.?开发者数量、代码维护人数、代码commit/star/folk数量
开源是大多数区块链项目的做法,因为区块链项目本身就是去中心化,项目实际的复杂度可能超过开发团队本身的,代码由社区运营维护是切实可行的方法,只有这样区块链项目才可能不断创新,抵御各种潜在的风险。因此任何区块链平台都应该关注其开发者社区情况,通过一些指标考察它的开发质量,比如开发者数量、代码维护人数、核心代码提交commit次数及标星star、分叉folk数量。
安全指标
包括身份验证、访问控制、加密体系和隐私、密码算法、匿名性、抗攻击能力六个方面。
身份验证:身份验证的方式、身份验证的场景、防止身份冒用、私钥具有完整的生命周期管理、节点的进出需要身份验证。
访问控制(支持or不支持):不同级别账户权限、不同分类账户权限、超级账户权限、账户间授权、账户授权时限控制、账户权限变更、权限变更形式。
匿名性:全部匿名、部分匿名、不支持。
抗攻击:抵御DDOS、女巫、黑客等网络攻击、抗攻击能力程度、节点容错率
密码算法:支持密码算法种类、是否支持国密算法、自定义密码算法。
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。