& SHARDING-FRIENDLY SMART CONTRACTS MINER FRIENDLY: LOWER COST, STABLE REWARDS, COMPATIBLE TO ETHASH 200X AND MORE HIGHER THROUGHPUT, BUILT TO SCALE MUCH LOWER TX FEE FOR USERS
HIGH VOLUME TRANSACTIONS REAL TIME PARALLEL BIDDING SCALABLE THROUGHPUT WITH NETWORK SHARDING EFFICIENT PROCESSING WITH COMPUTATIONAL SHARDING DATA-FLOW SMART CONTRACTS SIMPLE ABSTRACTIONS AMENABLE TO VERIFICATION VOLUME MISMATCH BILLIONS OF ADS/DAY VS. 1 MILLION TXS/DAY ON ETHEREUM SMART CONTRACTS TOO COMPLEX TO REASON ABOUT
A DEDICATED GROUP COMBINES OUTPUTS FROM EACH SHARD AND REACHES CONSENSUS ON IT. DIVIDE NETWORK DIVIDED INTO GROUPS, CALLED SHARDS EACH SHARD RUNNING CONSENSUS PROTOCOL ZILLIQA.COM @ZILLIQA
ENERGY COST STABLE REWARDS LOWER TX FEE PoW only used for sybil defense; not consensus More even payout with lower variance Users no longer need to compete for the few Tx/s
Press Press Press for 2 s NON-TURING COMPLETE AMENABLE TO FORMAL VERIFICATION CLEAN SEPARATION: COMMUNICATION VS COMPUTATION DECIDABLE CONTRACTS OFF DIM BRIGHT
HAS A BUG, DO NOT USE function reclaim { uint amount = backers[msg.sender]; if(msg.sender.call.value(amount) == false) throw // reset the amount for sender backers[msg.sender] = 0; } // SAFE TO USE function reclaim { uint amount = backers[msg.sender]; backers[msg.sender] = 0; msg.sender.transfer(amount); } CHECKS-EFFECTS-INTERACTIONS
Reclaim // Check if the sender is eligible to reclaim if ( … ) send (<to → sender, amount → 0, tag → “main", msg → "failure">, MT) else // remove sender from the list let v = get(backers, sender) in backers := remove(backers, sender); send (<to → sender, amount → v, tag → “main", msg → "refunded">, MT) SCILLA SOLIDITY EXTERNAL CALLS ALWAYS HAPPEN AT THE END REENTRANCY FREE // SAFE TO USE function reclaim { uint amount = backers[msg.sender]; backers[msg.sender] = 0; msg.sender.transfer(amount); }
1: Contract will have enough funds to refund. ZILLIQA.COM @ZILLIQA “ ” FORMAL VERIFICATION USING COQ SCILLA + COQ Lemma 2: Contract will not alter its contribution records.