绪言

撰写

从脚本语言开始,分类帐中的地址之间的交易需要某种形式的脚本来执行并被证明是有效的。理想的情况下,没有人希望以芙能够介入爱丽丝的钱,也不希望设计不好的脚本意外地将价值发送给一个无效地址,从而使资金无法回送。

诸如比特币等系统提供了一种极僵化和严厉的脚本语言,难以对定制的交易进行编程、阅读和理解。然而,诸如Solidity之类的一般可编程性的语言在系统中引发了非常多的复杂性,并且对于只有较小的一组参与者是有效的。

因此,我们选择设计一种称为Simon的新语言6,以纪念其创始人Simon Thompson和Simon Peyton Jones的启发思想的创造者。 Simon 是基于[构成合约:金融工程的冒险](https://www.lexifi.com/files/resources/MLFiPaper.pdf)之撰写的领域专用语言。

主要的想法是,金融交易通常由基础元素的集合组成7。如果有一个组合元素的财务周期表,那么可以为任意大型的复合交易提供支援,这些复合交易将覆盖大多数,若不是全部,那么常见的交易类型则不需要一般的可编程性。

主要优点是可以极为了解安全性和执行性。可以编写证明来显示模板的正确性,并排除有问题的交易事件的执行空间,例如从稀薄的空气交易可扩展性创建新的货币。第二,如果需要新的功能,可以通过软叉分离扩展来添加更多的元素。

也就是说,必须总是将卡尔达诺结算层连接到覆盖协议、传统金融系统和专用服务器。因此,我们开发Plutus作为通用智能合约语言和DSL专用的相互操作。

Plutus是基于Haskell概念的类型函数语言,可用于编写自定义交易脚本。对于卡尔达诺结算层,它将被用于我们需要连接的其它层次的添加支援所需的复杂交易,例如我们的侧链方案。


6: 具体内容将在即将发布的规范中公布,2017年第四季的“雪莱卡尔达诺结算层版本”将支持该语言

7: 项目ACTUS)有一个深入的阐述