Dfinity技术问答

Motoko是DFINITY基金会开发的一种新的软件语言,带有一个随附的SDK,旨在帮助尽可能广泛的开发人员在互联网计算机上轻松创建可靠且可维护的网站、企业系统和互联网服务。

Dfinity技术问答

什么是Motoko

Motoko是DFINITY基金会开发的一种新的软件语言,带有一个随附的SDK,旨在帮助尽可能广泛的开发人员在互联网计算机上轻松创建可靠且可维护的网站、企业系统和互联网服务。

通过开发Motoko语言,DFINITY基金会将确保提供针对新环境进行高度优化的语言。

但是,互联网计算机可以支持许多不同的软件框架,并且DFINITY基金会也正在开发支持Rust和C语言的SDK。

最终,预计将有许多针对互联网计算机的不同SDK。

可以在http://sdk.dfinity.org上找到Motoko容器SDK。

互联网计算机是区块链吗?

互联网计算机不是区块链,尽管它可以被认为是区块链技术的发展,并且受到以太坊率先提出的“区块链计算机”概念的启发。

相似之处在于,该平台是由高度容错的分散网络协议构成的,该协议使用令牌和Gas来调解参与和控制,尽管在互联网计算机的情况下,这些方面大多对用户和开发人员隐藏。

该平台托管的软件系统和服务具有与智能合约相同的强大可用性和安全性保证。

但是,尽管区块链的性能、固定的或非常昂贵的功能非常糟糕,并且通常要求通过运行在不受信任的平台(例如Amazon Web Services)上的网站来增强功能才有用。

但互联网计算机速度很快,可以不受限制地增加其计算和存储容量,不会增加成本,并且构建起来相对便宜,还支持完全独立的系统,可以将用户体验直接安全地提供给Web浏览器,从而可以创建安全的端到端系统而不会出现问题。

互联网计算机更倾向于互联网模型,并整合了独立的常规数据中心而非传统的加密货币矿工提供的计算能力,尽管业余爱好者和小型企业也可以参与其中。

机载开放算法治理系统(称为网络神经系统)允许数据中心参与,该系统作为互联网计算机的一部分运行,是ICAAN和IANA的算法替代方案,例如,它提供互联网ASN编号供BGP路由器使用。

使用令牌支付给数据中心以提供计算能力的酬劳,令牌的数量相对于其本国货币(例如瑞士法郎),每个借出的单元可提供近似恒定的回报。

总部位于瑞士苏黎世的非营利性DFINITY基金会及其遍布全球的各个研究中心以及合作伙伴组织致力于分散式协议的开发、初始软件的实现以及对公共网络的支持。

互联网计算机依赖于高级加密技术、分布式计算、基于WebAssembly的确定性虚拟机、计算机硬件的方面以及许多其他技术。

为什么DFINITY取决于随机性?

重要说明:此答案非常过时

到目前为止,我们发现在产生虚拟计算机的抗攻击网络中组织大量节点客户端的唯一方法是应用加密产生的随机性。

当然,中本聪也依靠随机性,使矿工竞相解决当前的难题,该难题的解决方案只能使用蛮力计算来随机找到,然后允许获胜者将比特币交易的区块附加到他的链中。

DFINITY需要更强且可操作性更小的随机性,并在固定时间内更有效地产生该随机性。

随机性不仅在确保共识力和报酬在所有矿工之间公平分配方面起着重要作用,像DFINITY这样的图灵完备的区块链需要更高的随机性,因为智能应用程序可以实现取决于偶然条件的大宗交易。

我们找到的解决方案是阈值中继,该阈值中继使用加密技术以几乎无损坏、完全不可操纵和不可预测的方式根据足够的网络参与者的需求创建随机性。

使用阈值中继,DFINITY网络参与者可以产生确定性的可验证随机函数(VRF),从而为网络组织和处理提供动力。

阈值中继如何工作?

重要说明:此答案非常过时

如上述常见问题所述,组织了一个客户网络,阈值中继产生一个内生的随机信标,并且每个新值都定义了客户端的随机组,它们可以独立尝试并形成“阈值组”。

每个组的组成完全是随机的,因此它们可以相交,并且可以将客户呈现为多个组。

在DFINITY中,每个小组均由400名成员组成。定义组后,成员将尝试建立BLS使用分布式密钥生成协议的阈值签名系统。

如果它们在某个固定数量的块内成功,则他们将使用特殊交易在全球区块链上注册为其组创建的公钥(“身份”),以使其在以下活动中成为活动组的一部分。

网络从“生成”开始,带有一些预定义的组,其中一组被提名以在某个默认值上创建签名,这样的签名是随机值。

如果不是,则该组在消息上的签名将是可预测的,并且阈值签名系统不安全,并且由此产生的每个随机值都用于选择随机后继组。

在密码阈值签名系统中,组可以在其成员的某个最小阈值的协作下在消息上生成签名,该最小阈值在DFINITY网络中设置为51%。

为了产生阈值签名,组成员分别对消息签名(此处是前一组的阈值签名),以创建各个“签名份额”,然后将其广播给其他组成员。可以基于足够的签名份额阈值的组合来构造组阈值签名。

因此,例如,如果组大小为400,将阈值设置为201,则任何收集了这么多份额的客户端都将能够在消息上构造组的签名。

每个签名共享都可以由其他组成员验证,并且通过组合它们产生的单个组阈值签名可以由任何客户端使用组的公共密钥来验证。

BLS方案的魔力在于它是“唯一且确定的”,这意味着从组成员的任何子集中收集所需数量的签名份额、创建的单个阈值签名始终是相同的,并且只有一个正确的值是可能的。

因此,所产生的随机值序列完全是确定性的且不可操纵的,并且通过在组之间进行中继而生成的签名会产生可验证的随机函数或VRF。

尽管随机值的序列是在给定一组参与组的情况下预先确定的,但是每个新的随机值只能在当前组的阈值最小一致的情况下产生。

相反,为了使中继由于未产生随机数而停止,正确的进程数必须低于阈值。阈值已配置,因此极不可能。

例如,如果组大小设置为400,并且阈值是201,则200或更多的过程必须变得有缺陷才能阻止生产。

如果网络中有10,000个进程,其中3,000个有故障,这种情况出现的可能性很低。

这样的系统不仅坚固耐用,而且效率很高。在广播网络中,一组400人可以通过仅中继大约20KB的通信数据来产生其阈值签名。

同时,在现代硬件上,参与创建的BLS阈值密码库DFINITY可以在毫秒级的时间内执行必要操作的计算。

您可以通过阅读DFINITY共识白皮书了解有关阈值中继的更多信息。

来源:dfinity.org/faq

翻译:Catherine

本文来自Dfinity,经授权后发布,本文观点不代表DAppChaser立场,转载请联系原作者。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

邮件:contact@dappchaser.com

QR code