热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

百度工程师深度好文,横评3大企业级区块链技术平台!

作者|刘晓赫、程司雷责编|Carol出品|区块链大本营、百度智能云区块链区块链从独立的技术范式,慢慢扩展到企业区块链的融合范式,是下一代区块链的核心特征

640?wx_fmt=jpeg

作者 | 刘晓赫、程司雷

责编 | Carol

出品 | 区块链大本营、百度智能云区块链

区块链从独立的技术范式,慢慢扩展到企业区块链的融合范式,是下一代区块链的核心特征。在区块链技术与AI、大数据、云计算技术加速融合的今天,区块链如何加速企业端的赋能与落地,正在变得越来越重要。

今天起,区块链大本营将携手百度智能云区块链为大家奉上「企业级区块链技术范式」系列专题。

本系列将从企业区块链的技术范式为出发点,以企业区块链架构、企业级智能合约、企业联盟链的高效管理、企业区块链的隐私性、可信区块链的企业应用等5大方面进行展开。深挖企业区块链的深层需求,为读者提供全方位的企业级区块链部署和落地思路。



区块链技术是信任的机器,是在生产消费等经济活动中降低感性上基于品牌、口碑的信任,同时增加理性上基于数学、密码学的信任。

而企业级区块链落地,正在成为区块链发展的另一大趋势。目前市场上企业级区块链产品众多,并且应用领域、具体设计实现细节各有不同,但是在整体系统架构上都存在着诸多共性。

归结起来如下表所示:

640?wx_fmt=png

*点击查看大图

上表列举了6个最有影响力的企业级区块链系统架构,可以看到他们都使用了智能合约作为应用层逻辑的计算工具。么,想要实现企业级去中心化应用一定要通过智能合约来实现吗?

要了解这个问题我们首先回到2008年区块链故事的开始,看看智能合约是如何诞生的。

从比特币到智能合约的诞生

第一个区块链系统是比特币,它是基于区块链的第一个去中心化应用程序。时有2种选择来开发去中心化的应用程序:要么分叉比特币的代码库(例如BCH、BTG等),要么在其基础之上构建(例如OMNI、USDT等)。

但是比特币代码库非常单一。网络、共识、应用这三个层次混合在一起。此外,比特币脚本语言是有限的,并不友好。因此,我们需要更好的工具

在这一背景下,2014年以太坊提出了一个新的命题,即构建去中心化应用程序。人们可以在以太坊区块链网络中部署图灵完备的程序,任何开发人员都可以使用Solidity编写称为智能合约的程序,将其部署到以太坊区块链。这种新方法使成千上万的开发人员开始构建去中心化应用程序(dApps)。

640?wx_fmt=png

智能合约运行原理

基于以太坊的成功经验,很多区块链平台选择在应用层直接集成EVM以运行Solidity编写的智能合约,或者提供其他的沙箱环境和编程语言来支持智能合约的功能。

作为当前的主流,智能合约有很多优势,有很多案例非常适合构建在区块链虚拟机之上:

  • 跨平台可移植的应用,例如希望将以太坊上现有的ERC2.0移植到别的平台,这时智能合约的优势凸显。

  • 简单小型,低使用率的应用,虚拟机非常实用,且用户友好。他们允许开发者在几分钟内部署去中心化应用,这在实现不复杂的应用或者作为PoC(概念证明)时是十分方便的。

  • 如果你不想为你的应用程序部署网络,而只是依赖虚拟机的区块链提供的共识网络,那么只部署智能合约将十分简单方便。

  • 需要用户为应用程序添加自定义逻辑,使用智能合约会降低用户使用难度。

不过,智能合约有显而易见的局限性,由来构建复杂的应用会碰到许多天然的缺陷。目前,企业级应用除了智能合约,「应用专有链」的使用也非常多。



应用专有链

应用专有链是指该区块链网络仅供特定应用专门使用,不提供智能合约来运行其他不相关的应用,而不是构建在基于区块链的虚拟机,如EVM,之上的智能合约应用。这就是所谓的应用专有链,也叫针对应用定制的区块链。

在很多情况下,开发定制化的区块链都是更有意义的,正如上文所说,智能合约有些显而易见的局限性,用来构建复杂应用拥有许多天然的缺陷:

640?wx_fmt=png

*点击查看大图

应用专有链的开发

应用专有区块链之所以直到现在一直不引人注目,主要归咎于构建它们的难度。例如,你希望构建一个面向数字货币的专有区块链,有如下几种选择:

  1. 从0到1开始设计和开发,包括共识引擎、P2P协议、数据层、数据模型、应用层等。开发这样一个区块链的门槛是很高的。大多数人不得不基于现有的区块链解决方案;

  2. 基于现有主流区块链修改,市面上大部分数字货币都是采取这种方式构建的。Netta Lab2018年调查了488种虚拟货币。在这些币中,相似性达90%-100%的有405种。例如很多比特币类的分叉币和山寨币只是简单修改一下参数,还有很多照抄以太坊的项目这里不一一列举。这种基于成熟区块链系统修改的方式要么和copy无异,要么复杂度极高,因为一个完整区块链系统的各个模块是混合在一起的,要针对自己应用需求做出改变是很困难的。


不过市场上也有一些可以高效部署应用专有链的平台。比如Cosmos等。




以Cosmos为例,Cosmos提供了一种让开发者轻松构建和部署可扩展和可互操作的面向特定应用的区块链的方式。




Tendermint提供了一个已存在的包含网络层和共识层(POS+BFT)的通用引擎,通过一个基于socket协议的ABCI(Application Blockchain Interface)接口来连接应用,便于在之上构建任意的应用程序。



640?wx_fmt=jpeg




因此开发人员只需要维护应用层,从而节省了数百小时的开发工作。而Cosmos-SDK是在Tendermint之上构建区块链应用程序的通用框架,把一些通用模块标准化,例如资产转账、货币增发、链上提案、跨链IBC等。开发人员在无需为应用程序编写每一个功能的情况下就可以轻松的创建一条区块链。

 

如果想要实现一个数字货币的应用专有链,基于Cosmos-SDK,开发应用程序的时候可以把一组互相操作的模块组合起来进行构建。每个模块定义状态子集,并包含其自己的消息/交易处理器,而SDK负责将每条消息路由到其各自归属的模块,这样提供给了开发人员最大的灵活性以定义应用程序的状态、交易类型和状态转变函数。

通过这样的方式构建的区块链产品有:Cosmos Hub,Iris,Binance Chain,Terra和Lino

 

美中不足的是,Cosmos-SDK目前只有Go语言实现版,和Tendermint保持一致,这给其他语言的开发者增加了使用门槛

另外,默认的共识引擎Tendermint Core虽然是已存在的最成熟并且被认为是建立权益证明系统(POS)的黄金标准共识引擎,但是并不适合构建企业级联盟链系统。同样Cosmos-SDK提供的许多通用模块也是面向公有链系统的。

尽管如此,Cosmos仍是十分优秀的专有链平台。在百度,我们的区块链平台也是基于Cosmos来实现的。在设计这条链的时候,我们主要想法是能支持复杂的企业级应用,并且能通过跨链通信协议进行不同应用专有链间的交互,支撑各个业务领域协同发展的企业区块链应用生态。

百度的企业级区块链设计思路

正如上文所说,智能合约和专有链各有利弊。而当今的主流智能合约适用于简单的应用场景,无法编写复杂的业务逻辑(比如上万行代码),且大量合约之间的互相调用,使得合约的开发调试和维护升级的复杂度变得非常大。

因此,我们希望能做出一个兼具智能合约和应用专有链优势的东西。在这一基础上,我们的核心思路是这样的。

首先,设计出可插拔应用模块,该模块必须能做到以下几点。

  • 延续Cosmos应用模块化的理念,提供高效的智能合约平台,Cosmos合约平台。EVM作为一个可插拔的应用模块存在,提供Solidity合约的运行环境,比以太坊更好的性能。

  • 除了EVM以外支持一系列面向企业应用的通用模块,可以承载更大的应用复杂度,例如跨链通信(IBC)、TCF可信计算、分布式存证、微服务、资产Token化(DeFi)、去中心化身份(DID)、去中心化交易引擎(DEX)、非同质化代币(NFTs)、预言机(Oracles)、溯源等等。

  • 采用高效的数据分片机制,不同功能模块运行独立的分片。例如该节点只想运行存证模块,只需打开存证模块开关,关闭其他所有的可选模块,这样减少了非必要的计算与存储消耗。

  • 提供企业间隐私交易的解决方案,多方企业间可建立隐私分组,所有的可插拔应用模块都可以进行加密。

智能合约 or 应用专有链?只有你知道答案

智能合约平台还是特定于应用程序的区块链,究竟谁更有前途?

这个争论并没有完美的答案。就像加密世界中的大部分算法一样,答案取决于你的实际情况。企业级区块链应用的主流依然是使用细微差别的智能合约平台,但我认为,Cosmos的出现无疑展现构建区块链应用一种截然不同的道路。

我们不妨拭目以待,看看技术是如何发展的,相信未来的企业级区块链系统的发展一定是两种框架并存,按照自己的需求选择最合适的框架才是正确之道。

*关于作者:

程司雷,百度智能云区块链资深研发工程师,著有三篇区块链发明专利。参与跨链项目Cosmos/IRIS,医疗数据共享公链平台,区块链存证平台、区块链食品溯源、以太坊加密猫等项目的设计研发。

刘晓赫,百度智能云区块链高级工程师。Cosmos-SDK、Bitcoin-Golang源码贡献者,百度智能云自研区块链核心开发者。

640?wx_fmt=gif

12月6-8日,深圳!2019嵌入式智能国际大会,集聚500+位主流AIoT中坚力量,100+位海内外特邀技术领袖!9场技术论坛布道,更有最新芯片和模组等新品展示!点击链接或扫码报名,即可享受6.6折早鸟优惠,比原价节省1000元,学生票仅售399元!

640?wx_fmt=png

推荐阅读:

推荐阅读
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本文整理了关于Sia去中心化存储平台的重要网址和资源,旨在为研究者和用户提供全面的信息支持。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
author-avatar
她丶无可取代
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有