随机数|读懂Dfinity:去中心化云计算平台+高性能区块链网络( 二 )
ICP 所推荐的 Motoko 能编译为 WebAssembly (WASM)。ICP 的运行过程中利用了 WASM 容器来存储数据并执行代码。WASM 是一种用于基于堆栈的虚拟机的二进制指令格式。它支持在 Web 上部署客户端和服务器应用程序。WASM 容器就类似以太坊的 EVM,相对 EVM,WASM 更加强调执行效率和性能。在以太坊 2.0 当中,以太坊也有计划从 EVM 移植到 WASM。
WASM 的优点就是性能强、安全性(在内存安全的沙盒里运行、会执行浏览器的安全策略)、生态拓展(可以直接嵌入到 Web,但是浏览器暂时没完全支持)。
2.Motoko:
Dfinity 自研的编程语言,类似以太坊自研的 Solidity。Motoko 拥有很多对于应用的特定优化(后文会进行深入分析)。
https://github.com/dfinity/motoko
3.Rust:
ICP 提供 SDK 的语言,适合在 WASM 容器中运行。
4.其他的语言由于没有 SDK 以及官方开发文档,可能还是需要 Motoko 或 Rust 作为胶水来实现与 ICP 直接交互的部分,因此开发基本还是只能选择 Motoko 或者 Rust。
3. 生态从生态和开发者体验上来说,Dfinity 提供的示例程序源码、技术文档、开发工具(VSCode 插件、NPM 库、DFX 脚手架)都很全面。
共识协议特点PoS 提速并解决计算冗余、随机数信标保证去中心化、staking 保证安全性、周期性最终确认保证轻量。
共识过程不同于以太坊的 DApp 只是适时调用合约,ICP 设想的软件是完全依靠智能合约来驱动服务的。综上来讲,ICP 需要非常高的计算性能、减少计算冗余,因此 ICP 但同时还得在保证区块链网络去中心化的情况下的足够安全,因此这对它的共识算法提出了苛刻的要求。
- 开始前的节点准备:
- 节点创建私钥公钥,建立匿名的永久身份。
- 节点加入网络需要抵押固定的 token 作为 staking。
- 节点随机的与其他节点组成阀值组(完全随机,一个节点可存在于多个阀值组)
- 阀值组中,运行分布式密钥协议(DKG),每个节点获取该组的「验证签名」密钥(不同于个人密钥,有一组的私钥数学拆分而来)。
- 系统还是根据 DKG 产生阀值组的共同公钥,并对阀值组进行注册。
- 准备就绪,开始等待参与共识。
- 共识过程:
- 选择本轮委员会组 *注 1 *注 4
- 提案委员会打包出块
- 公证委员会持续接收并验证区块
- 随机数信标收集签名;等待阀值,产出公证与随机数 *注 2
- 互联互通|哪些无人机适合新手使用?从普宙O2到大疆Mini 3 Pro,一文读懂
- 以太坊|以太坊合并一文读懂POW转POS
- 从读懂每一次心跳开始,创新不止的华为运动健康业务
- 华为手环|3分钟读懂JS《2022年亚马逊广告报告》,快速提升广告效果!
- OPPO|在这些根技术里,读懂华为的“三观”
- 厉害!一文读懂华为:全面分析华为,深耕沃土,厚植产业,YYDS
- 厉害!一文读懂华为:全面分析华为,“深耕沃土,厚植产业”,YYDS
- iPad Pro|看过这场“传家”发布会,你就能读懂魅族19
- 一文读懂:工业机器人国产化进度如何?
- 一文轻松读懂 ASTM D 4169 测试流程
