Zilliqa Project Update #32 — #BuildonZIL, Technical Content

Driving adoption for a programming language takes a lot of education (and documentation). As we are now beginning to focus our efforts more heavily on adoption of the Zilliqa platform, engaging developers with Scilla is our priority.

Hello everyone,

Following the end of bootstrap phase and the launch of the Zilliqa mainnet we have been seeing our network grow. As you all know, we are an open-source, community driven project aiming to build a more scalable, secure, and decentralised blockchain infrastructure. A large part of this is inspiring and rewarding our community to #BuildonZIL. We’re glad to share that they are currently working on quite a few exciting projects!

Some Recent Community Highlights

  • Moonlet Wallet 🌝 has released officially! Moonlet is a blockchain agnostic cryptocurrency wallet that allows Users to safely store Ethereum and Zilliqa assets with just a single set of mnemonic seed words. Check it out in the Chrome extension store
  • Viewblock explorer has implemented dark mode 🌚
  • ZHIP iOS wallet 🚀 is also officially released! You can transact micro-payments via ZILs easily on this intuitive wallet application
  • @micovi created a simple-to-use Zil-cli node-js command-line wallet. Simply install it via npm install-g zilcli .Find out more in the detailed documentation (https://zilcli.app/)
  • @as1ndu created a VSCode editor Scilla language extension. Check it out and install it via the VS marketplace
  • @gully’s PyZil SDK is now ready for production. You can now do batch transfers and deploy/call Scilla contracts with this Python SDK. PyZil documentation will soon be added to the apidocs portal

Scilla Technical Content and Adoption

Driving adoption for a programming language takes a lot of education (and documentation). As we are now beginning to focus our efforts more heavily on adoption of the Zilliqa platform, engaging developers with Scilla — the formal-verification friendly smart contract language that was created by the team behind Zilliqa — is our priority.

We will begin by creating documentation and technical content around the functionality of Scilla and how to create powerful and safe smart contract applications. Stay tuned!

Zollo Phishing Scam

On April 6th, Zilliqa caught wind of a scam from a fraudulent entity calling itself ‘Zollo.’

“Zollo” claimed to be in partnership with Zilliqa and Maker DAO to provide a free “token distribution” of ZLO (Zollo token). Users were asked to provide sensitive information during the sign-up process for this scam token distribution. In response to this, Zilliqa shared a technical report with all known facts regarding this incident on April 7th, reiterating to everyone in the community that there is no partnership of any kind between Zilliqa and Zollo, and that Zilliqa has strong security protocols in place. The core team shared recommendations on how people can utilise basic yet effective security measures to avoid being victim to any such scams. The full technical report can be found here.

Past Events

Zilliqa Co-Founder Max Kantelia attended the Dublin Tech Summit this week. He explained blockchain, spoke about its business benefits across industries and its growing global adoption.

Max Kantelia speaking at Dublin Tech Week 2019

Upcoming Events

April

Paris Blockchain Week | 13–19 April | Paris, France

FiNext Conference | 25–26 April | Singapore

May

Consensus 2019 | 13–15 May | New York

BlockAsia 2 |16 May |New York

Malta Blockchain Week | 23–24 May |Malta

Echelon Asia Summit 2019 | 23–24 May | Singapore

Tech Updates

Our core tech team has been busy making preparations for release v4.5.0, which is planned for integration into the mainnet as we head into the critical token swap period.

In this new release, miners will now be able to perform additional queries on their nodes, the most significant of which is the ability to check for the existence of a pending transaction. The other queries are more for providing the flexibility of adjusting a node’s parameters on the fly, and we plan to introduce more queries of this nature in the near future.

Most of the remaining changes in this new version involve vital fixes to our existing functionalities, and here’s a quick rundown of these:

  • Micro blocks with zero transactions are incorrectly withheld from the lookup nodes by the shard nodes, preventing other nodes from being able to rejoin successfully. Three separate code changes have been introduced in the new version to address this issue
  • The directory service leader may propose a list of proof-of-work submissions that differ from a backup node’s own expected list due to priority ranking differences. Currently, the backup will not look at its larger, complete list of submissions before attempting to verify those differing entries from the leader. This can lead to unnecessary re-verification if those same entries are part of the backup’s larger list. The next release adds the cross-check against the larger list before attempting verification of differing entries
  • DNS resolution was found to be missing in our transaction packet routing code. When one of our lookups changed its IP address, it caused the mainnet to stop processing transactions for a period of time. This issue will no longer occur with the DNS resolution code now in place in the next version

Scilla Interpreter

On the Scilla side, we have been working on adding namespaces to the language, enhancing cashflow analysis to handle non-native tokens and testing Scilla contracts written by the community for bugs and inefficiencies. Details are given below:

External library support: We recently added support for external libraries which allows smart contract developers to deploy standalone libraries that only contain pure functions. However, the implementation had a limitation. Recall that libraries are allowed to import other libraries. As a result, it is possible to have conflicting function names in libraries. In the previous implementation, an error was raised by the checker, when it detected any name conflict.

As a follow-up, we now support namespaces in Scilla to avoid conflicts of names between imports. Every imported library can now be associated with a namespace in the context of the importer. This can be specified as import Lib1>>Foo . Accesses to Lib1 names in the importer will then be through a prefix Foo.name .

Cashflow analysis: Our cashflow analyzer checks whether money is handled in a consistent way across a contract — money being the native ZIL tokens. The analyzer however does not give any useful results for non-native tokens that have value, e.g., a fungible token.

To this end, we have added a new feature to the analyzer that allows users to provide a hint on which code parts can be tagged as “Money”. The cashflow analyzer then takes the hint as a ground truth in its analysis. This feature makes it possible to analyze a fungible token contract that does not handle native ZILs but instead keeps a record of fungible tokens.

Testing Scilla contracts in the wild: We decided to put our static analyzers namely cashflow analyzer and gas analyzer to test by testing it on sixteen community-written contracts and identified the following inefficiency patterns/bugs: (1) copying of a map from a field to read a single entry, (2) copying of a nested map to check if the key corresponding to it exists, (3) creating a copy of a container and not referencing it later, (4) money-receiving transitions failing to explicitly accept funds or accepting funds more than once. The bugs from categories 1–3 were discovered using the resource analyser, while (4) has been detected via the cash-flow analysis.

This shows how the analyzers can be used to either eliminate bugs in Scilla contracts or make contracts consume less gas.

Zilliqa in the News

Amid Bitcoin’s recent surge in prices, our CEO Xinshu reflects on the past two years in the blockchain space amid the crypto winter, along with the importance of focusing on technological development and mainstream adoption irrespective of market performance:

As the industry shifts from exploration to implementation, our CEO Xinshu shares his thoughts on the factors that continue to impact mainstream adoption of blockchain and the importance of progressive regulations:

Our Application Edison caught up with the QuantLayer Podcast team during this year’s ETHDenver to discuss the importance of formal verification, our secure-by-design smart contract language Scilla, and secure blockchain architecture:

In a rapidly changing industry where we engage with a rapidly developing emergent technology, the role of a blockchain developer has experienced critical changes over time. Our Application Lead Edison reflects on his journey into the space and how the role has evolved in recent years:

Lauded for our emphasis on scalability and security, Zilliqa was included in a roundup of top blockchain 3.0 projects to keep an eye on this year:

Excited for Project Proton? So are we. A result of one of our long-standing partnerships and a valuable real-world use case in the programmatic advertising space, Project Proton has made some significant strides this year. We’re excited to share some news with you all soon:

That’s all for now! As always, please feel free to connect with us in any of our social channels:

Discourse Forum: https://forum.zilliqa.com/

Telegram: https://t.me/zilliqachat

Slack: https://invite.zilliqa.com/

Twitter: https://twitter.com/zilliqa

Reddit: https://www.reddit.com/r/zilliqa/

Github: https://github.com/Zilliqa/zilliqa

Gitter: https://gitter.im/Zilliqa/ (Dev-related topics including the Ecosystem Grant)