【AMA必看】IC AMA历史回顾
文章来自于|DfinitySZ
投稿、转载请联系|DfinitySZ小助手
从IC主网创世纪发射至今,DFINITY团队共举行了总计9次的IC AMA活动,以促进IC生态开发者、用户与DFINITY团队之间的社区交流与探讨。由于原文篇幅较长,为了方便大家阅读,我们总结了每期AMA活动的要点回顾,如有遗漏,还请积极反馈,敬请谅解。
IC共识层
AMA主题:ICP协议共识层
活动参与队员:Manu/DFINITY Consensus工程师经理、Paul/DFINITY Consensus资深工程师、Diego/DFINITY产品总监
活动举办时间:2021年5月17日
在许多区块链共识算法中,它们都有自己的假设和属性,而IC的共识算法基于仲裁理论实现,其中最显著的一个特性是使用BLS阈值签名来实现一个安全的随机灯塔数/Random beacon创建具有共同随机性的仲裁排序(区块提议者、公证人)。IC共识算法的另外一个特性是在不依赖于网络同步的快速完成,在正常的网络条件情况下,IC可达到卓越的响应时间(应用子网1秒、NNS子网3秒)。
ICP共识协议:IC区块链通过ICP协议将分布在全球各地的独立节点链接,分成多个相互通信“节点组”/子网,每个子网都是一条分片链,并运行着ICP协议中的共识协议,子网中的副本按照相同的顺序处理输入/外部调用消息和容器间调用消息。
IC共识协议皆在满足安全性和活性属性下优化吞吐量、延迟、简单性(在单个子网不超过1/3宕机情况下),共识协议一共分为4个部分:区块制造:子网中的任何副本都可以收集等待处理的消息,将它们组成一个区块,并通过gossip网络发给其他副本提议对区块链的扩展;公证轮:IC共识协议通过一个分轮次运行的公证流程来解决可能存在的无效区块提议问题,在每一轮中,公证轮可以确保至少有一个可扩展区块链的有效区块;随机灯塔/Random beacon:但仅有公证轮可能会存在多个经过公证的区块,IC的解决方案是通过一个不可预测的值随机灯塔/Random beacon(此值通过门限BLS签名构建)对区块提议者进行优先级排名进行公证;最终确定/Finalization:最终共识通过一个单独的异步机制在不依赖网络假设的情况下完成。
阅读参考资料👇
IC共识层AMA原文:
https://www.reddit.com/r/dfinity/comments/nerppg/ama_we_are_manu_paul_and_diego_we_have_worked/
IC共识层的完整概述:
https://medium.com/dfinity/achieving-consensus-on-the-internet-computer-ee9fbfbafcbc
IC共识层视频概述:
https://dfinity.org/howitworks/consensus
IC共识层Rust代码:
https://github.com/dfinity/ic/tree/master/rs/consensus/src/consensus
IC共识层学术论文初稿:
https://eprint.iacr.org/2021/632.pdf
Chain Key
AMA主题:Chain Key技术
活动参与队员:Jan/DFINITY副总裁、Maria/DFINITY高级工程师经理、Jens/DFINITY首席研究员、Andrea/DFINITY加密团队高级研究员、Manu/DFINITY Consensus工程师经理、Diego/DFINITY产品总监。
活动举办时间:2021年5月26日
Internet Computer建立在“链钥/Chain Key”的基础上,应用于交互来验证正确性。使用Chain Key Technology,不再需要提供历史数据供下载,每个智能合约状态都将同步到特定子网上的独立网络节点中,这不仅可以更高的效率从去中心化管理中获得安全性和弹性,同时也保障了系统和服务内部数据不会被泄漏的风险。
Chain Key:Chain Key是一项由DFINITY构建的创新密码学技术,其通过给每个子网分配一个单一的48字节公钥,允许任何设备(智能手表、手机等)都可以验证来自IC交互的真实性。除分配单一公钥外,它还允许:引入新节点形成新子网以无限扩展网络;在无需停机的情况下使用新节点替换故障节点(通过CUP使新节点追赶子网状态);即使在一个子网中的有太多节点发生故障情况下也可以恢复子网(只要单个节点存活,就可以恢复CUP,生成一组新的密钥供子网允许CUP中的Canister状态);无缝升级ICP协议和添加新功能。
阅读参考资料👇
Chain Key技术AMA原文:
https://www.reddit.com/r/dfinity/comments/nlymmu/ama_we_are_the_dfinity_crypto_and_research_team/
Chain Key的完整概述:
https://medium.com/dfinity/chain-key-technology-one-public-key-for-the-internet-computer-6a3644901e28
Chain Key视频概述:
https://dfinity.org/howitworks/chain-key-technology
IC加密技术的Rust代码:
https://github.com/dfinity/ic/tree/master/rs/crypto
DKG技术概述:
https://medium.com/dfinity/applied-crypto-one-public-key-for-the-internet-computer-ni-dkg-4af800db869d
DKG技术视频概述:
https://www.youtube.com/watch?v=gKUi-2T7tdc
执行层和WASM
AMA主题:执行层和WebAssembly
活动参与队员:Ahki/IC执行团队工程师经理、Islam/执行团队工程师、Dimitris/执行团队工程师、Alexandra/执行团队工程师
活动举办时间:2021年6月3日
在IC上所有通过高级语言(Rust、Motoko、C等)编写的Canister智能合约最后都会被编译为WebAssembly运行,从技术上来说Canister智能合约的代码部分是一个带入IC系统API的WebAssembly模块,Canister还可以导出自己的API,供于其它Canister调用该API调用。(此处关于Canister的概述仅包括WebAssembly部分,关于Canister详情请参考下方资料)。
执行层是ICP协议中的四个关键组成部分之一,其职责是将来自输入队列的输入消息定向canister中,并基于此输入和 canister 的状态,执行环境更新canister 的状态,另外还可以向输出队列添加消息并更新进入历史 (也可能对较早的进入消息进行回应)。而执行层与消息路由层必须共同处理的另一个任务是: 一个子网上的 canister产生跨子网消息的速度比另一个子网上的 canister 消耗消息的速度快。因此,启用了一种对生产 canister 进行限流的自我调节机制。执行层还要处理许多其他的资源管理和簿记任务。
阅读参考资料👇
执行层和WebAssembly AMA原文:
https://www.reddit.com/r/dfinity/comments/nrmvim/ama_we_are_akhi_alexandra_islam_and_dimitris_from/?utm_source=share&utm_medium=web2x&context=3
Canister完整概述:
Motoko简介:
https://stackoverflow.blog/2020/08/24/motoko-the-language-that-turns-the-web-into-a-computer/
构建IC的开源库:
https://github.com/dfinity
互联网计算机的技术概述:
https://medium.com/dfinity/a-technical-overview-of-the-internet-computer-f57c62abc20f
互联网计算机接口规范:
https://sdk.dfinity.org/docs/interface-spec/index.html
Motoko
AMA主题:Motoko语言
参与队员:Andreas/Motoko首席设计师、Claudio/Motoko工程师、Christoph/Motoko工程师、Gabor/Motoko工程师、Joachim/Motoko工程师、Omer/Motoko工程师、Yan/Candid Motoko工程师
活动举办时间:2021年6月10日
Motoko是由DFINITY构建的一款轻量级的区块链开发语言,其特性包括结合了JavaScript/TypeScript特性、根据IC应用模型量身定做、面向对象(但不支持继承)、支持await/async通信、结构化类型推断、安全的数值计算、没有NULL的指针、自动内存回收机制、基于Wasm设计,以利用Wasm标准未来扩展等。
注意:Motoko并不是IC上的唯一开发语言,所有可编译为Wasm的编程语言(C、C++、Rust)等都可用于在IC上开发。
阅读参考资料👇
Motoko语言AMA原文:
https://www.reddit.com/r/dfinity/comments/nwtlpp/ama_we_are_andreas_claudio_christoph_gabor/
Motoko视频概述:
https://www.youtube.com/watch?v=4eSceDOS-Ms
Motoko库:
https://github.com/dfinity/motoko#readme
Motoko简介:
https://stackoverflow.blog/2020/08/24/motoko-the-language-that-turns-the-web-into-a-computer/
Motoko文档:
https://sdk.dfinity.org/docs/language-guide/motoko.html
Motoko示例库:
https://github.com/dfinity/examples/tree/master/motoko
NNS
AMA主题:网络神经系统/NNS
参与队员:David/NNS负责人、Ryan/NNS工程师、Johan/NNS工程师总监、Nico/NNS软件工程师
活动举办时间:2021年6月21日
在IC网络上,所有人都通过一个链上的特殊DAO治理系统达成一个共同的共识目标输出贡献——NNS神经元系统在IC链上充当着ICANN角色,从抽象的角度来说我们可以将NNS认为是一个开放式的中枢神经,其职责包括:升级托管网络节点机器使用的ICP协议和运行软件;创建新的子网增加网络容量;拆分子网使网络均衡负载;配置经济参数控制计算成本;在极端情况下冻结恶意Canisters保护网络等。
每一位用户都可通过在NNS Dapp中质押ICP生成神经元的方式获得相应的治理投票权参与网络治理,所有参与网络治理投票的神经元都将获得相应的币本位收益,收益率与投票权正相关,投票权计算公式如下:
NNS投票权=neuron_stake * dissolve_delay_bonus * age_bonus
NNS投票权=神经元质押ICP数量*溶解延迟奖励值*年龄奖励值
溶解延迟奖励值是一个介于1到2之间的值,而这个值的大小取决于神经元溶解延迟/dissolve的时间,在溶解延迟时间达到8年时,溶解延迟奖金值可达到2的值。
年龄奖励值是一个介于1到1.25的值,而这个值的大小取决于神经元老化的时间,这个老化可以理解为神经元不开启溶解且锁定状态的时间,在年龄/Age时间为四年时,年龄奖励值可达到1.25的值(最高为1.25)。
阅读参考资料👇
网络神经系统/NNS AMA原文:
https://www.reddit.com/r/dfinity/comments/o4zdy6/we_are_david_johan_nicolas_and_ryan_ask_us/
如何使用NNS Dapp:
神经元收益计算器:
https://networknervoussystem.com
生态系统
AMA主题:DFINITY增长团队的生态系统增长
参与队员:Anna/DFINITY开发者关系、Alexa/DFINITY开发者关系、Liz/DFINITY开发者教育活动成员、Lgor/DFINITY开发者关系工程师、Lomesh/DFINITY增长团队副总裁、Matthias/DFINITY产品营销、Michael/DFINITY社区总监
活动举办时间:2021年7月6日
由于该AMA活动数据较为久远,我们直接将数据跳转到了近期的IC生态数据。从IC主网上线至今,DFINITY基金会一共给166个开发团队下发了Grant资助、IC主网托管的Canister超过3.94w+个、据2021年末数据显示共有50个用户创建了IC钱包等。
更多实时数据查看:
https://internetcomputer.org/
阅读参考资料👇
DFINITY Grant计划:
https://dfinity.org/grants
开发者论坛:
http://forum.dfinity.org/
DFINITY官网IC生态系统展示:
https://dfinity.org/showcase/
第三方网站IC生态系统展示:
https://n7ib3-4qaaa-aaaai-qagnq-cai.raw.ic0.app/
2021年IC生态年度总结:
ii
AMA主题:互联网身份/ii
参与队员:Roman/DFINITY工程师、Robin/DFINITY安全工程师、Christoph/DFINITY工程师、Bjorn/DFINITY密码学研究员
活动举办时间:2021年7月21日
ii是一个由DFINITY团队构建的网络身份认证系统,其建立在WebAuthn协议之上,并使用安全的加密身份验证技术为用户提供与Canister安全交互的服务,在隐私性和安全性上提供一种假名身份机制来保障。
阅读参考资料👇
Ii AMA活动原文:
https://www.reddit.com/r/dfinity/comments/ooy00c/ama_we_are_bj%C3%B6rn_christoph_robin_and_roman_from/
创建ii教程:
ii的工作原理:
https://medium.com/dfinity/web-authentication-and-identity-on-the-internet-computer-a9bd5754c547
ii源代码:
https://github.com/dfinity/internet-identity
NNS Dapp
AMA主题:NNS Dapp
参与队员:Islam/DFINITY软件工程师、Hamish/DFINITY后端工程师、Anish/DFINITY前端工程师
活动举办时间;2021年7月29日
NNS Dapp是由DFINITY团队构建的钱包Dapp,目前支持功能包括:提供Prinicpal ID和Account ID服务、神经元的UI操作页面、治理提案投票操作页面、创建Canister以及为白名单Canister充值Cycles。
阅读参考资料👇
NNS Dapp AMA原文:
https://www.reddit.com/r/dfinity/comments/ou5k30/we_are_anish_hamish_and_islam_ask_us_anything/
NNS Dapp使用教程:
ICP Ledger
AMA主题:ICP Ledger
参与队员:Bogdan/DFINITY金融整合团队、Maciej/DFINITY软件工程师、Roman/DFINITY软件工程师
活动举办时间:2021年8月9日
ICP Ledger由一个Canister组成,其部署在容错能力最高的NNS子网上。ICP Ledger Canister本质上是一个保存Account和交易的智能合约,这些交易要么为Account铸造ICP Token,要么将ICP Token转移到另外一个Account或者销毁ICP Token。
阅读参考资料👇
ICP Ledger AMA原文:
https://www.reddit.com/r/dfinity/comments/p0z2bz/ama_we_are_bogdan_maciej_and_roman_ask_us/
如何与ICP Ledger集成:
https://sdk.dfinity.org/docs/integration/ledger-quick-start.html
Rosetta API规范:
https://www.rosetta-api.org
JavaScript Rosetta客户端:
https://github.com/dfinity/rosetta-client
必看周刊
生态精选
寻宝回顾
精彩活动
联系我们
t.me/DfinitySZ
dfisz.com
twitter.com/DfinitySZ
twitter.com/DfinitySZCN
reddit.com/user/DfinityShenZhen