The language of the Zilliqa program presents an exclusive "separation between different orthogonal aspects of the language", explains Ilya Sergey of Zilliqa to Dan Patterson of TechRepublic. The following is a modified transcript of the interview.
Dan Patterson: Tell us a little bit about how the code works, how Zilliqa works.
Amrit Kumar: Thus, one aspect of Zilliqa is the first to ensure that the yield remains very high. It increases approximately linearly with the size of the network. The other aspect that we will focus on Zilliqa is to have an intelligent contract language that is safe to use, safe to implement, so if you write an intelligent contract language that is actually distributed on a chain, then it will be error free You know as much as you can, and actually you can actually demonstrate strong ownership of the contract. So you could, for example, prove that your contract will not freeze funds. Your contract will not spread funds to others, say, parties, and that's where Zilliqa comes in and Ilya will be very happy to process that piece.
Ilya Sergey: All right, so let me bring it from here. So we designed Zilliqa as a programming language that would have been useful to write typical applications for which customers consider smart contracts a good field, like ICO, like different crowdfunding campaigns, games, but it is a rather general language.
SEE: Kit IT Hiring: programmer (Tech Pro Research)
Thus, what makes it different from the programming languages of intelligent contracts like Solidity is a separation between different orthogonal aspects of language. So this separation is what makes it easier to implement the executions of "sharded" contracts written in Zilliqa and to verify that the contracts are actually doing what they should do. So think about it this way, so the contracts actually incorporate more features. They act as agents who communicate with each other and also with the users of the blockchain who transfer funds and also act as normal programs that perform the calculation.
So these two aspects, calculation and communication, are quite orthogonal and it is nice to be able to reason about them separately. So having communication as something that is a kind of external interface of the contract and this is how the contracts interact with each other makes it possible to integrate the interaction between the smart contracts in this Zilliqa architecture, something that Amrit will be in able to elaborate on. So every time a contract communicates with another contract, this is something that is only processed by one part of the system in a fragment or a small subset of the fragments rather than in the whole network, which will be the case in Ethereum where each transaction is processed by the entire network.
This is how we get the scalability component. The correctness component actually draws on many, many years of research on formal methods and reasoning on the programs and communication of transition systems. So, thinking of contracts like these automata that only send messages to each other, we can formulate properties of interest as if this contract will give me back some money, if this contract has ever performed this operation, and so on. So all these properties we care about, so if you also think about the recent bug in the Parity portfolio discovered in Ethereum, this was a topic of a problem that can be very easily stated if someone can commit suicide with this contract. If we can write a contract so as to formally prove to Ethereum that it is never the case, then we have covered the security aspect. So, in this way of structuring contracts in Zilliqa, it is possible to formally demonstrate properties like this on contracts even before they are implemented.