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.
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:
- LeapRate, Zilliqa CEO interview: Crypto market’s bursts of volatility will one day be a thing of the past
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:
- South China Morning Post, The world needs to stop worrying about blockchain, regulate it and let it fly
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:
- QuantLayer Podcast, Zilliqa With Edison Lim: Formal Verification of Smart Contracts, Byzantine Fault Tolerance, and Smart Contract Composition
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:
- App Developer Magazine, What it takes to be a blockchain developer
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:
- BeInCrypto, Top Blockchain 3.0 Projects to Watch in 2019
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)