# Ziliqa Day 1 ###### (11/03/2001) --- ## History of Blockchain Bitcoin solved the problem of third party verification basically decentralizing trust and confirmation. Ethereum took it one step forward figuring out a way to decentralizing computing, which allowed the enforcement of smart contacts. But there was a bottle neck in efficiency. In Bitcoin, since every hash added needed to be verified by a large section of the network there is a huge bottleneck compared to centralization. Ethereum was developed to solve a problem not help you code. It is easy to encode bugs into ethereum. Zilliqa aims to solve this problem by providing a better interface to developing applications. ## Zilliqa SHARDING - breaking up verification into different groups to reduce bottleneck. As such the network is being divided into groups called shards. Shards have a fault tolerance of 33.33%. Random distribution What do these shards do ? they are enough to verify transactions. 1. PoW task is bradcast to all nodes 2. Fastest nodes from the directory service commitee 3. all othe rnodes perform second pow (shard particpants) 4. Nodes are verified and assigned randomly to shards the fastest one is labelled the leader of the group. > zilliqa uses pow for verification not for consensus. what does it use for consensus then ? > to prevent sybil attack, shard size threshold exisit as the assignment is random AS for the consensus : Practical byzantine fault tolerance each shart is given a set of transactions, and they only very those. this allows for parallelization. How do they get added back ? once we have the microblocks from parallalization, the directory service comittee will put them together, and scan for various other problems such as double spending. ## Smart contract attacks Most of them have happend in eth a couple of types are : 1. contracts that leak funds 2. unexpected chang to blockchain state 3. contracts that are killed ## Scilla Design Principles 1. Seperation bw computation and communication 2. Seperation bw effectful and pure computation pure computation doesn't change any state var 4. Separation w invocation and continuation **** what exactly is the computation ? zilliqa has zil at the front for easy identification scill is interpreted. compilation would be faster though. > zilliqa wallets : Moonlet, zilpay, nucleas ## zilliqa JS lib https://github.com/Zilliqa/Zilliqa-JavaScript-Library Ide : https://ide.zilliqa.com/#/ ![](https://i.imgur.com/cOZ890u.png) ![](https://i.imgur.com/tJyT1lX.png)