来自Zilliqa的Ilya Sergey和Amrit Kumar对TechRepublic的Dan Patterson表示,Zilliqa的编程语言非常独特,可以提供“语言不同维度之间的隔离”。更多采访信息请看下文。
原视频地址:https://www.youtube.com/watch?v=yRoeCfJch6w
Dan Patterson:请給我们详细地说说Zilliqa代码是如何工作的。
Amrit Kumar:首先,Zilliqa的一个目标是要保证有高的吞度量。吞吐量可以大体上随着网络规模的扩大而线性增长。Zilliqa的另一个目标是拥有可以安全使用并安全部署的智能合约语言,如果你写的智能合约语言可以部署在链上,那就说明它是没有代码缺陷的,你可以证明合约的强大属性。例如,你可以证明你的合约不会冻结资金。你的合约不会将资金泄漏给其他人,比方说团体的资金,这就是Zilliqa的用武之地,Ilya将非常乐意详细说明这一点。
Ilya Sergey:好的,让我从这里开始吧。我们将Zilliqa设计为一个编程语言,可以用来编写人们认为适合智能合约领域的典型应用,例如ICO,不同的众筹项目,游戏,但它是一种非常通用的语言。
SEE: IT Hiring Kit: 程序员(Tech Pro Research)
因此,它与其他智能合约编程语言(例如Solidity)的不同之处在于语言的不同维度之间的隔离。这种隔离使得在Zilliqa上编写的合约更容易在分片上执行,并验证合约实际上正在做他们应该做的事情。从这种角度来说,合约实际上包含了多种功能,它们充当相互通信的代理,也充当区块链用户转移资金的代理,它们还可以充当执行计算任务的普通程序。
计算和通信这两个方面是非常正交的,可以对它们分别进行讨论。合约之间的交互是通过把通信作为合约的外部接口来实现的,使得智能合约之间的交互能够适应Zilliqa的这种分片架构,Amrit将会对此加以阐述。每当合约与另一个合约进行交互时,都只由系统中的一部分进行处理,如一个分片,或分片的子集,而不是整个网络,就像在以太坊中每个交易都是由整个网络来处理的。
这就是我们提高可扩展性的方法。正确的方法实际上来自于我们对编程和通信转换系统多年的扎实研究。将合约视为互相发送消息的自动机,我们可以制定我们关心的问题,例如合约是否最终会给我退款,是否执行过某个操作等等。
这些我们关心的问题描述起来很简单,比如最近在以太坊Parity钱包发现的程序漏洞的问题就可以被很容易的描述,那就是是否有人可以通过潜在漏洞终止合约。如果我们写一个智能合约并且可以形式化地向以太坊证明这个合约永远不会出现问题,那么我们就在安全方面得到了保障。Zilliqa的这种构建合约的方式,使得我们在部署合约之前就可以确保合约的安全性。