前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入分析dapp链上智能合约系统开发逻辑分析及案例

深入分析dapp链上智能合约系统开发逻辑分析及案例

原创
作者头像
I357O98O7I8
发布2022-08-16 10:49:36
7670
发布2022-08-16 10:49:36
举报
文章被收录于专栏:dapp系统开发

基于区块链技术的基础设施

区块链脱胎于BTC系统,从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”、“公开透明”、“集体维护”等特征,基于这些特征,区块链奠定了坚实的“信任”基础,创造了可靠的“合作”机制。

Web3的基础设施基于区块链技术,Web3.0 Foundation将Web3的技术栈定义为由L0~L4组成的5层架构系统,如下图所示:

V+MrsFu123
V+MrsFu123

Web3技术栈

L0提供数据分发和互动能力,主要包括:

  • 点对点互联网覆盖协议(Peer-to-peer (p2p)):一个允许节点以分散的方式进行通信的网络套件。
  • 平台中立的计算描述语言(Platform-neutral computation description language):一种在不同物理平台(架构、操作系统等)上执行相同程序的方式。例如EVM(以太坊)、UTXOs(BTC)和Wasm。

L1提供分发和互动数据的能力,主要包括:

  • 零/低信任度互动协议:描述不同节点如何相互作用并信任来自每个节点的计算和信息的协议。大多数加密货币,如BTC和ZCash,都符合零/低信任交互协议的定义,它描述了节点参与协议所需遵循的规则。
  • 数据分配协议:描述数据如何在去中心化系统的各个节点之间分配和交流的协议。例如IPFS、Swarm和BigchainDB。
  • 瞬时数据公共/子信息传递:描述不打算永久存储的数据(如状态更新)如何被传达以及如何让节点意识到其存在的协议。例如Whisper和Matrix。

L2增强了L1的能力,进行提升扩展性、加密消息传递、分布式计算等功能。

  • 状态通道(State channels):区块链通过让节点在链外相互通信,通过在主链上“打开”和“关闭”通道,只写初始和最终结果,而不是在链上记录每个状态转换,从而提高可扩展性的一种方式。例如BTC的Lightning Network和以太坊的Raiden Network。
  • Plasma协议:Plasma是通过创建区块链的“树”来提高可扩展性的另一种方式,主链是树的根,而“子”区块链尽可能少地与更高级别的链互动。例如Loom的PlasmaChain和OmigeGO Plasma。
  • 加密存储(Encrypted storage):使用密码学对数据进行数学加密和解密,包括静态(即存储在特定的计算机上)和动态(即从一台计算机传输到另一台)。例如静态指的是存储加密,动态指的是传输加密(HTTPS就是一种传输加密)
  • 重型计算(Heavy computation):可以理解为如果需要进行大量的计算,例如在数组中推送大量的对象提供一种方法,允许计算分散在许多计算机中,并证明计算是正确进行的。例子包括以太坊的 Golem 和TrueBit。
  • 分布式秘密管理(Distributed secret management):允许信息只被授权方访问,包括复杂的场景,如“解密此信息需要所有六个签名者使用他们的密钥”或“7个签名者中的任何5个必须同意”等等。
  • 预言机(Oracles):将链外数据(如天气结果或股票价格)注入区块链的一种方式,一般供智能合约使用。

L3是人类可读语言和库的层。在这一层,开发人员可以适当抽象并进行程序开发,包括可扩展协议的API和语言:

  • 各种开发应用程序的语言,如:Solidity和Vyper(Ethereum),Plutus(Cardano)和Rust(Substrate)。
  • 使编程更加容易的各种框架,如:ethers.js、web3.js和oo7.js。

L4是技术栈顶层,参与者主要是普通用户。用户可以在这一层和单个或多个区块链应用等进行互动,而不需要知道如何编程和实现细节,案例有Status、MetaMask、MyCrypto等。

去中心化应用(DApp)程序架构

Web3去除了管理中心,无需数据库集中存储应用程序的状态,也不需要集中的网络服务器来存放后端的逻辑,Web3的应用程序(DApp)架构与Web2时代的App有很大不同,Web3可以利用区块链在互联网上的去中心化状态机上构建应用程序。

状态机是由状态寄存器和组合逻辑电路构成的,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。区块链可以理解为一种被实例化为创世状态的状态机,并且有非常严格的规则(即共识)来定义该状态如何转换。

没有存在的实体控制这个去中心化的状态机,状态机是由网络中的每个人共同维护的。与Web2后端被控制的方式不同,在Web3生态中,我们可以编写智能合约,定义应用程序的逻辑,将应用程序部署到去中心化的状态机上,这意味着,每个想构建区块链应用的人,都可以在共享状态机上部署代码。以下是该架构示意图:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档