16

Kadena :Pact 语言奠定智能合约新标准 | 火星技术帖

 4 years ago
source link: https://news.huoxing24.com/20191129133050342043.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Kadena 的智能合约模型为区块链代码的安全性与可读性创造了条件。

智能合约的目的是保证区块链操作的安全,因此,细节至关重要。在智能合约的整个发展过程中,合约受各种 bug 与漏洞所困扰的消息在加密货币社区屡见不鲜。至今,已经出现过很多因设计缺陷而导致合约出现问题的情况,这些设计缺陷包括:

  • 语言难以辨认且无法验证;
  • 模型使合约暴露于危险的漏洞和非确定性行为之下;
  • 缺乏检查和可追溯性;
  • 调用外部智能合约费用昂贵、速度缓慢且危险。

当 Kadena 的创始人 Will Martino 和 Stuart Popejoy 在摩根大通为该投资银行构建首个区块链时,他们发现智能合约技术无法满足企业用例的需求。

6fYv6vu.jpg!web

为解决这一问题,Will 和 Stuart 创建了 Kadena 的开源智能合约语言 Pact,旨在避免那些可能会带来高风险的设计缺陷。以下内容介绍了 Pact 如何在创建之初就具备了高度的可扩容性与安全性。

Pact 是人类可读的语言,更加方便所有人使用

Pact 提供了一种直接在链上执行的解释型语言。解释器的使用意味着,Pact 代码将人类可读的智能合约直接放在了链上。

这就让企业及企业家可以直接清晰地在区块链上安全编写智能合约,真正推动了朝向安全、自动化合约的进步。 Pact 让任何人都能够轻松参与到智能合约技术中来,以支持全新的业务模型及链上服务。

Pact 是一种图灵不完备的语言,任何人都能够更安全地使用

同比特币一样,Pact 是图灵不完备的。这就有助于防止递归错误和相关的不良使用模式。在 Pact 中,检测到的任何递归都会立即引发故障并终止所有正在运行的代码。此功能大大减少了智能合约中可能存在的潜在攻击向量。

Pact 智能合约的执行快速又安全

Pact 提供了一个标准库作为基本原理。它为 Pact 编写者提供了其可能需要的所有必要工具,用以编写安全有效的合约。而且,Pact 绝不会出现「操作码耗尽」或内置合约地址的情况,这就使其能够按照显示的需求合并新功能。因此,gas 模型对于原生定义的函数仍保持定义明确的静止状态,这就使用户能够以模块化方式构造其代码,同时仍保留了推理能力,不仅是推理代码功能的能力,还包括推理运行时的成本的能力。

此外,当 Pact 编写者在区块链上调用另一个合约时,特定功能代码(及其所有传递依赖项)将永久内联到用户的调用站点。这样不仅执行速度快(代码处于直接作用域内),而且后续也无法对其造成破坏,因此更加安全。

Pact 智能合约支持原生多签并可升级迭代

Pact 绝不会将智能合约的设计限制在单签这一种方式,缺少变通的动力。而且,Pact 提供了适当的调度模型,允许指定的智能合约被单个或多签名密钥集管理。

Pact 智能合约可以通过更新机制进行更新、更改或固定,从而确保在只有新代码成功执行后才发布应用的智能合约新版本。发生任何错误时,智能合约都会自动回滚到其先前状态,并中止进行任何新更改。

这一功能使得开发人员能够修复潜在的错误。此外,多方参与的合约也可对其协议进行更新,从而体现业务逻辑的发展状况。

Pact 是智能合约技术的未来

为了使区块链真正实现其变革潜力,我们需要并致力于为开发人员和用户提供可以信任的智能合约。在 Kadena,Pact 的设计在于以一种不同的方式来解决区块链的安全性和可用性。Pact 旨在为开发人员提供一种简单的方式,无论是通过形式验证还是通过智能合约语言的功能,实施完全安全且无 bug 的智能合约。

现在,开发人员能够创建下一代智能合约,从而使那些需要在区块链上代表真实价值和资产的实际应用成为可能。我们欢迎新的项目使用 Pact 来颠覆各行各业,彻底改变我们开展业务的方式。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK