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