创建一个 Dapp,为什么要选择波卡?
Dapp,decentralized application,顾名思义,去中心化应用。
从 Web2 的角度发问,App 为什么需要去中心化呢?那些基于中心化记录的数据、信息等在 Dapp 中怎么实现呢?这时需要引出 Dapp 的一个底层概念——智能合约。智能合约是存储在区块链上的程序,在满足预先确定的条件时会运行这些程序。它们通常用于自动执行协议,以便所有参与者都可以立即确定结果,而无需任何中间人参与,也不会浪费时间。智能合约可以自动完成工作流程,在满足条件时触发下一个操作。而一旦合约写好后公之于众,个人或组织无法任意修改,当外界条件发生变化如违约或合同到期,智能合约会自动触发。
智能合约具有速度、效率和精确度,信任和透明度,安全和节省的优势。
有了智能合约,有了共识机制,行业中的公链崛起强大,然后公链、联盟链、私有链齐头并进发展,链上的各种应用发展迅速吸引用户进入 Web3,Dapp 便是部署在这些链上的应用。通常由几部分构成:前端应用展示 + 智能合约 + token(通证经济)+ 去中心化社区自治。
Dapp 与 APP 核心不同的在于是否中心化,DApp 先有发起人或发起组织,通过智能合约规定好规则、机制进行众筹,持有其发行的虚拟资产的用户获得后续激励,享有社区治理或其他权利。本文并不想发散讨论如何创建和推出一个 Dapp,而想提出一个前置的问题,在哪条链上部署和创建 Dapp?
巨头以太坊似乎是首当其冲的选择,但是成熟的生态也预示着激烈的竞争,高油费、低吞吐也是一贯叙事。其他一众崛起的新公链都想承接以太坊溢出的价值,展示着便宜又快的特点,但安全性、不成熟的生态等也是难以忽视的痛点。
波卡在这时进入大家的视线,本文将从共识机制、构建智能合约的技术架构、底层,跨链性能和生态几个角度来分析,为什么开发者可以选择波卡创建自己的 Dapp 甚至区块链。
NPoS--创新和安全并存
共识机制作为选择区块链构建 Dapp 的重要前提,来自于波卡实现了其新型自创的提名权益证明(NPoS)共识机制,在权益证明(PoS)的基础上产生。选择什么共识机制,其实也就选择了 Dapp 将基于怎样的共识建立和发展。
这个方案允许大量的质押( stake )来支持验证人,远远高于任何单个用户的持有量,从而使网络更加安全。提名人与他们支持的验证人分享经济奖励以及可能的 Slash 惩罚( Slash 惩罚:当验证者在网络中有一些不当行为,例如离线、攻击网络以及运行修改过的软件等,被 Slash 的验证者会和他们的提名者一起失去一定比例的质押的 DOT),在经济上给予系统安全性,因此在经济上激励他们监督验证人的性能。
因此,NPoS 不仅比 POW 更有效率,而且比没有 Stake 委托的纯 PoS 机制更安全和去中心化,因为 PoS 中成为验证人的门槛是高额的 Token 持有。同时 NoS 共识机制还具有支持热更新、多共识并存和交互、交易打包时间零占有的特性。
Substrate--强大的开发工具
如果用一句话快速让新手开发者了解 Substrate 是什么的话——Substrate 使开发人员能够快速轻松地构建一条区块链。而强大的开发工具,是开发者建立 Dapp 的技术保障和支持。
前文提及智能合约是 Dapp 的重要部分,但波卡的中继链是没有智能合约的功能的。与之替代的是平行链。DApp 开发者如果想要基于波卡开发应用程序的话,必须使用波卡的平行链或者选择一条智能合约平行链进行部署。与智能合约相比,平行链是去中心化应用和去中心化中间件的更好形式。由以太坊为基点所展望的 Web3 蓝图,具备互操作能力和跨链能力的众多平行链更接近预期中的实现。
而目前为止,Substrate 无疑是开发平行链最先进、最强大的工具。Rust+libp2p+多种共识+WASM+功能丰富的模块使得 Substrate 处于区块链开发技术的最前沿。2019 年起,OneBlock+ 与 Parity 官方独家合作 Substrate 课程,从初始《从 0 到 1 学会 Substrate 区块链应用开发》优化到《 Substrate 区块链开发入门/进阶》共开设了数十期课程,至今我们已经培育了千余名 Substrate 开发者!已经通过课程进入 Web3 开创 Dapp 的开发者,从成功实践的角度让我们看到了, Substrate 对开发者的赋能和奠基作用。
如有对课程感兴趣的开发者,想在波卡生态进行开发之旅,欢迎参加最新一期的《 Substrate 区块链开发进阶》课程。课程将于 8 月中旬开课,入学名额所剩无多,期待更多开发者能加入并了解到 Substrate 的魅力。
Substrate 作为高定制、高灵活,能以最小路径搭建最高自由度的底层技术框架,能让开发者轻松创建一条区块链,更能让开发者选择一条智能合约链/平行链创建属于自己的 Dapp。这无疑是授人以渔,不同赛道不同主题的 Dapp 已是事实,而未来汇聚了众多 Dapp、各具其专业领域的区块链才是趋势。
WASM--对 EVM 的挑战
构成 Substrate 的一部分,也是优势之一的 WASM,让开发人员轻松地创建和部署智能合约,是运行和维护程序的虚拟载体。
理解 WASM 之前,不得不提其 Benchmark EVM,而在此之前又不得不提虚拟机。虚拟机(VM) 是实体计算机的数字版本。虚拟机软件可以运行程序和操作系统、存储数据、连接到网络以及执行其他计算功能,并且需要加以维护,比如更新和系统监控等。简而言之,虚拟机是应用程序运行和维护的载体。以太坊虚拟机 (EVM)是一种轻量级虚拟机,用于在以太坊网络上运行各种智能合约。
WebAssembly (WASM) 是一种新型代码,可以在现代浏览器上高效地执行。WASM 通常被称为 EVM 2.0,它具有 EVM 的所有功能,同时功能又多于 EVM。我们可以视 WASM 为一项改变游戏规则的技术,因为它能支持以接近原生速度运行的应用程序,它具备速度快,效率高,可移植的特点。
WASM 消除了以太坊对预编译合同的依赖。由于 WASM 非常高效,开发人员可以创建高效、快速的智能合约,而无需担心潜在的硬分叉。同时 WASM 支持更多的语言,并且提供了比 EVM 更广泛的工具集。WASM 支持传统语言,如 Rust、C 和 c++。WASM 也被本地 JavaScript 引擎支持。
XCM--迎接多链未来
一个真实存在的困境是我们从共识机制、开发语言、技术结构等构建 Dapp 的出发,也许都能找到跟波卡对标的区块链,但仍然难逃‘区块链孤岛效应’。一条一条孤立的区块链,让开发者只能将自己的项目在一个生态一条区块链上实现,如果想复制到其他链上则需要比较大的转移成本和再开发壁垒。
波卡这时展现出了其跨链和多链的优势——XCM(跨共识信息格式)。波卡的中继链和平行链架构使平行链能够原生地与其他平行链互操作,这本身就能够让开发者享受到整个生态的跨链便利,能够做到任何种类数据和资产的跨链传递,丰富其开发的功能和场景。为实现跨链传递功能,跨共识信息格式(XCM)格式定义了一种围绕如何在两个互操作区块链间执行传递信息的表达语言。
值得一提的是,XCM 的使用并不限制于波卡内,其目标是成为两个共识系统间的通用和可扩展性语言。也就是说,波卡生态内的开发者,在未来是很有可能不需要重新开发 Dapp,而能直接连接到不同的区块链上,将应用与不同的生态系统、其他的应用连接,获取更多的用户和流量,真正实现“链”接全球。多链势必成为行业趋势,而推出 XCM 的波卡将更快地到达这一未来,对于开发者来说,这就是先行优势,这就是顺应多链的选择。
生态--实现开发者和生态系统双赢
当波卡以前底层架构和技术潜力向开发者展示了舍我其谁的优势时,其繁荣的生态建设和生态环境又给开发者带来了抓住时机的信号。Substrate 项目年初时社区的统计已经接近 500 多个,Top 10 的类别覆盖多个火热赛道。
同时波卡背后的 Parity 和基金会为了促进波卡生态,推出了一系列开发者支持和激励计划。如基金会发布的 Grant 项目和波卡 Kusama 的国库支持,Grant Program 会资助和扶持为生态系统提供价值的优秀技术项目。
同时生态中也持续推行 Substrate 课程,波卡黑客松,Substrate Builders Program 等计划,为开发者的提升带来知识、技能上的帮助。同时也时有 Web3 行业都为之关注的线下盛事,如波卡每年举办的各种大型会议:关注于技术的 Sub0 开发者交流会,波卡生态全球路演会 DotCon,波卡全球生态社区交流会 Polkadot Decoded,波卡主办的面向 web3.0 的 Web3 Summit 等等。波卡打造出的线上、线下结合的开发者培训和发展体系,实现了生态和开发者的双赢。
结 语
选择在波卡中创建 Dapp,给开发者带来的是,强大的技术架构、多链的潜力未来、友好的开发支持和良好的生态环境。也许依旧有很大一部分人想的是如何接到以太坊的溢出流量,但从长久的发展、Web3 的潮流趋势来看,选择巨大潜力的波卡生态,开发者将有超出预期的收获。
参考文献:
Gavin Wood 解析平行链的四大优势:无法中断、可升级性、不受限和无手续费_交易
https://www.sohu.com/a/495451980_100217347
区块链上的智能合约是什么?| IBM
https://www.ibm.com/cn-zh/topics/smart-contracts
WebAssembly 虚拟机是什么?为什么应该使用它?| 登链社区 | 区块链技术社区
https://learnblockchain.cn/article/3486
跨共识信息格式(XCM) | Moonbeam Docs
https://docs.moonbeam.network/cn/builders/xcm/overview/
Substrate Builders Program · Polkadot Wiki
https://wiki.polkadot.network/docs/builders-program
Polkadot Ambassador Programme · Polkadot Wiki
https://wiki.polkadot.network/docs/ambassadors
Community · Polkadot Wiki
https://wiki.polkadot.network/docs/community
评论