什么是正经的区块链
区块链回来了区块链两大误区误区一误区二区块链的特征多方写入,共同备份公开账本去中心化不可篡改区块链的核心技术分布式账本共识算法智能合约密码学公有链、联盟链、私有链公有链联盟链私有链重要的开源项目BaaS阿里云BaaS蚂蚁区块链Hyperledger FabricQuorum华为云BaaS百度云BaaS腾讯云BaaS总结区块链回来了
区块链重新回到了业界的话题中心,在此之前,因为层出不穷的代币金融诈骗事件,区块链在普通人眼里几乎要和欺诈划上等号,臭不可闻。
实际上,正经的区块链应用一直在被国内外的大厂商推动发展着。通过剖析区块链的特征,观察国内具备领导地位的企业的发展成果,我们才能认识到区块链的真正价值。
区块链两大误区
误区一
比特币=区块链。比特币及其交易所是区块链的原生应用,但也仅是区块链的其中一种应用形式。
误区二
区块链是万能的,要替代互联网。区块链是一系列现有成熟技术的组合,并不是一种新的技术体系,相反,它高度依赖现有的互联网技术,比如密码学和协同算法的发展。
区块链的特征
笼统地说,具备以下特征的系统就可以被称之为区块链:
多方写入,共同备份
多个利益不一致的记账参与方,在共识算法的驱动下,轮换发起记账,其他参与方共同验证和记录。
公开账本
所有的记账参与方对账本都有访问权限。
去中心化
没有唯一的信任中心,任何一个记账参与方的账本都可以作为信任背书。
不可篡改
基于密码学的散列算法和多方冗余,形成现有技术条件下的不可篡改,但不是绝对的,比如未来的量子计算就可能使这一特征不复存在。
区块链的核心技术
分布式账本
基于共识算法,使多个网络节点都拥有各自独立的、完整的数据储存,各节点间互不干涉,权限平等。传统的做法是在中心数据库存储,区块链则是有多少节点就存储多少份,是一种超大规模的数据冗余,所以称之为不可逆、不可篡改,所有人都有一份数据,谁想逆、想改,需要征得所有人的同意。
共识算法
解决由哪一个节点发起记账,其它节点怎么验证的问题。常见适用于公链的的PoW和PoS算法,以及适用于联盟链的PBFT和其衍生算法。
智能合约
自动验证、执行数字合同的代码,其意义在于交易双方可以在没有第三方信托机构的情况下,忠实地履行合同了。履约是商业社会的地基,把合同涉及的资产上链,当合约中的事件触发时,代码会自动执行资产的传递,代码没有感情也没有歧义,能够大幅降低履约成本,构建诚信社会。
密码学
区块链的基石是哈希算法,其特性是即便输入值只发生微小的篡改,其输出值也将发生非常大的变化。所以区块链所谓“不可篡改”也可以理解为“即便篡改了,也会被很快识别,并被所有参与方获知”。
公有链、联盟链、私有链
公有链
网络中的是不可信节点,可以面向任意用户公开。典型代表是以太坊、EOS。比特币、交易所属于公有链的应用。
联盟链
网络中的是可信节点,用户取得授权才能加入。典型代表是超级账本(Hyperlegder)、企业以太坊联盟(EEA)、金链盟(FISCO BCOS)。
私有链
网络中所有的节点掌握在一家机构手中。
重要的开源项目
超级账本(Hyperlegder)
企业以太坊联盟(EEA)
金链盟(FISCO BCOS)
BaaS
Blockchain as a Service,“区块链即服务”,是指将区块链框架嵌入云计算平台,利用云服务基础设施的部署和管理优势,为开发者提供便捷、高性能的区块链生态环境和生态配套服务,支持开发者的业务拓展及运营支持的区块链开放平台。
简单地说,区块链底层的IaaS、PaaS由云计算厂商解决了,密码学、共识算法、存储、传输等等一系列高精尖的问题大家都别管了,可以专注于自己的业务场景。
阿里巴巴、华为、腾讯、百度四家作为国内云计算的领导者,在BaaS上也获得了匹配其地位的成果。
阿里云BaaS
官方网址:/product/baas
应用场景:商品溯源、供应链金融、数字资产共享、数字内容版权。
阿里的BaaS有三个品种:蚂蚁区块链、Hyperledger Fabric和Quorum。
蚂蚁区块链
类型:合约链,实际也是联盟链,因为是阿里云自研,做出了创新,所以名字上也做了区分。
适用于供应链金融、电子票据、可信存证、分布式数字身份。
合约开发:阿里云提供了一个集成开发工具“Cloud IDE”,帮助开发者进行合约开发、合约部署,合约的开发语言是Solidity,这是一门面向合约的、为实现智能合约而创建的高级编程语言。
应用开发:Cloud IDE集成的JS SDK使Node.js和JavaScript的开发者能够便捷地上手应用开发。并且也面向Java开发者提供了Java SDK。
Hyperledger Fabric
类型:联盟链。
适用于溯源、供应链金融、数据共享、数字内容版权。
Hyperledger Fabric是 Hyperledger 的分支开源项目,目的是建立开发模块化体系结构的区块链应用程序的基础,以便诸如共识和会员服务等组件可以即插即用。
合约开发:链码(ChainCode)是 Hyperledger Fabric 技术框架中对智能合约的实现,开发语言支持Golang,Node.js和Java。
应用开发:提供Go SDK、Java SDK、Node.js SDK。
Quorum
类型:企业以太坊,基于以太坊的代码库建立的私有的联盟链,可以连接以太坊主链。
适用于数字资产交易、供应链协同、数字化营销。
合约开发:Solidity 语言。Remix 是基于浏览的以太坊智能合约编译器和IDE,它能协助用户编译Solidity智能合约并调试它们。Truffle是以太坊智能合约的开发、测试和管理框架。
应用开发:Web3.js 实现了以太坊 JSON-RPC 在 JavaScript 下的 API 接口。
华为云BaaS
官方网址:/product/bcs.html
类型:联盟链,基于Hyperledger Fabric。
应用场景:供应链金融、供应链溯源、数字资产、众筹公证。
合约开发:链代码(ChainCode),当账本数据存储方式为关系数据库时,只支持Golang。其他情况则支持Golang与Nodejs。
应用开发:Java SDK、MySQL SDK、Node.js SDK,还有REST API是无需SDK的。
百度云BaaS
官方网址:/
有个酷炫的名字叫XuperChain,并且是开源的:/xuperchain/xuperunion
类型:联盟链,底层自研,没有使用 Hyperledger Fabric,实现了DPOS共识算法,支持可插拔,从而支持不同的业务场景。
应用场景:司法、版权、政务、溯源、金融。
合约开发:它实现了一套智能合约虚拟机XVM,可以支持Go,Solitidy,C/C++,Java。
应用开发:XuperCDT(XuperChain Crontract Development Toolkit),支持C++和Golang。
腾讯云BaaS
官方网址:/
类型:联盟链。
应用场景:游戏、数字资产、鉴证证明、共享账本。
合约开发:JavaScript。
应用开发:Java SDK、C++ SDK。
到截稿前,未开放注册,目前在腾讯云解决方案中,只有通过“应收账款流转”、“动产质押登记”、“可信存证”加入。
总结
现阶段,区块链适用的范围是:有多个利益不一致的参与方、协作效率要求不是很高、各合作方之间的信任成本很高。
正经的区块链以toB应用为主,以联盟链为主。符合目前区块链低TPS,超大规模应用体验不佳,toC教育成本高的特征。尽量避开性能问题,最大程度发挥传递信任价值的作用。
如果着眼于企业级业务落地,不想或者没有能力聚焦底层技术开发的话,使用BaaS能够大大降低业务落地的成本。
如果着眼于底层技术开发的话,使用以 Hyperledger 为代表的开源项目作为基础,已经有一线大厂帮你验证了。
区块链的想象空间的确足够大,但是目前可以正经落地的场景有限,大家都在摸索。后面的文章将会继续深入到各家的应用案例,希望他山之石,可以攻玉。