Ethereum Devcon3 Summary: Day 2
Spacetime coordinates: Nov 2nd, 2017. Cancun, Mexico
Peter Szilagyi — Developers Developers Developers
Main takeaway: Introducing Puppeth, deployment manager for Ethereum networks. Use Puppeth for managing your own fully featured private Ethereum network, with nodes, genesis set up, tools and monitoring, wallets, faucets, single dashboard, and more.
Puppet lets you define your own genesis block, consensus strategy, precompiled contracts, fees, choose Ethereum release (Homestead, Spurious Dragon, Byzantium, etc), pre-funded accounts. What’s really cool is that it lets you quickly set up multiple nodes, including node monitoring tools, and your own faucet to help people using your network to get test ether, and additionally lets you set up your own blockchain explorer. Definitely a cool tool I’ll be trying out soon.
Marcus Ligi — Walleth: the Ethereum Android Wallet
Main takeaway: Walleth is a new Ethereum wallet for your Android device that stores private keys on your phone — make sure not to delete the key file.
Getting Android Ethereum wallets right represents a great adoption vector for Ethereum, given that Android has 2 billion monthly active device. Marcus highlighted the need for private key storage on the device, as opposed to other wallets that are actually centrally managed by a private server. Focus on design and user experience — don’t ask users to secure their accounts until they actually have Ether in them. Walleth is a light client built in Kotlin.
Jarrad Hope — Status — Ethereum at the Edges of the Network
Main Takeaway: Several new announcements: creation of status hardware wallet, their app with search to connect people with message, open a kind of mini bazaar to facilitate transactions. Status nodes for offline message deliver and open bounty to incentivize collaboration due small talent pool in the cryptospace.
If you’re not familiar with it, Status is essentially a hybrid instant message and mobile DApp browser. Jarrad started his talk with a story highlighting the importance of the fundamental value proposition of the blockchain: decentralization. “When push comes to shove, decentralization matters”. His story was about the recent events in Spain and Catalonia, where in the day before the election, agents shut down some websites that were pro-Catalonia. Highlights the promise of ENS. Part of Status is also a search functionality to help buyers and sellers find each other to facilitate transactions.
Jan— CITA — a Fast and Scalable Blockchain for Enterprise Users
Main Takeaway: Enterprise users of blockchain main ask is for scalability. CITA has broken the Ethereum client into a set of loosely coupled micro services, which give them opportunities to exploit parallelism and asynchronous execution. Advertised 15K tx/sec — but didn’t specify network topology or other parameters of their network to gauge how well the test setup mirrored real world Ethereum network deployments.
Jan started the talk with the known scalability problem on the Ethereum public network. Talked about multiple solutions, including Vitalik’s sharding idea, Plasma chains, and even vertical scaling of individual Ethereum nodes. Then Jan present his team’s solution to the problem: breaking out the Ethereum client into a set of decoupled microservices that comprise a logical Ethereum node that can be scaled independently, and even run on separate nodes. These separate microservices decouple the functionality of key-value storage, consensus, EVM state computation, etc. Presented benchmarks indicating transaction throughput reached 15K tx/s. They’re using RabbitMQ for communication between services. Their implementations of the services are written in Rust. Jan indicated their exploded microservice design is actually orthogonal to future scalability solutions for Ethereum including sharding and Plasma, and thus these approaches can be combined in the future for future scalability. Jan indicated this also creates the possibility for asynchronous & parallel processing within blocks and across blocks, for additional speed gains.
Pawel Bylica — EVM-C — Portable API for Ethereum Virtual Machines
Main takeaway: discussion on what it takes to built your own EVM and Just In Time (JIT) compilers for EVM, referencing EVM evm.h C header file. In the talk directly following Pawel’s talk, Dr Greg Colvin will make the argument that JIT compilation for Ethereum is a bad idea as it represents an attack vector for Ethereum (create code that is expensive to compile but requires little gas to run, and you could potentially DoS the Ethereum network).
Dr Greg Colvin — The EVM: Cleaner, Meaner and Closer to the Metal
Main takeaway: many challenges to balancing native speed and safety of JIT. These includes 256 registers, interpretation and unconstrained control flow, and anything at run time that is not accounted for in gas (such as JIT). Different opcodes within the EVM have vastly different time complexities between each other, and across different EVM implementations.
Dr Greg Colvin presented on performance benchmarks for various operations in the EVM across different EVM implementations. Noted some of the main performance bottlenecks, including: using 256 bit registers in the EVM, unconstrained control flow, and interpretation. He notes compilation needs to be done at deploy time, not run time.
Panel with Martin Becze, Alex Beregszaszi, Pawel Bylica, Dr Greg Colvin, Dr Christian Reitwiessner — Evolving the EVM
Main takeaway: there are many challenges and options for next generation EVM implementations, and no consensus on the direction to move yet
Martin Swende — Ethereum Security
“This is Cryptoland. It’s like Australia, where anything with a heartbeat is trying to kill you”
“This is Disneyland for hackers”
Martin discusses several aspects of security in the Ethereum space. He focused on minor differences between EVM implementations that can potentially cause consensus failure and potentially be used as an attack vector to the network.
Viktor Tron, Louis Holbrook, Daniel Nagy, Aron Fischer — Swarm Development Update
Main takeaway: SWARM is an asynchronous distributed content storage and delivery system that provides a byte count credit limit, enables micropayment, and blacklisting of nodes who have exceeded their credit limit but not paid.
Several presenters discuss aspects of SWARM — essentially a distributed content storage and delivery system. The protocol URI prefix is “ bzz://”. It uses its SWAP protocol to enable nodes to store and transfer content, using a very powerful credit balance system, where nodes can transfer content to eachother, and SWAP keeps track of the balance of bytes and the given credit limit between two nodes. If the credit limit is exceeded, payment in Ether is expected. If payment is not provided and the credit usage is not brought below limits, the defaulting node is blacklisted from the network. PoC client .2 released — functional but only a proof of concept. PSS was introduced — Postal Service over SWARM. Discussed the features of PSS with varying levels of obfuscation of recipient address within the network, to frustrate would-be eavesdroppers.
Daniel Nagy — Scalable Responsive DApps with SWARM and ENS
Main takeaway: There’s an inherent tradeoff between responsiveness/performance and consistency in systems. In blockchain systems, they sacrifice performance for unparalleled consistency. This presents special challenges to developers trying to build high performance blockchain DApps. One potential solution is to design on-blockchain incentives for DApp service providers to be high availability (serve requests quickly and stay connected to the network for a high % of time).
“The only thing that is for certain is the blockchain. All else is ephemeral”
Jordi Baylina — The Future of Token Contracts: MiniMe, Governance, LiquidPledging & ERC223
Jordi discussed several extensions to the standard ERC20 token. The benefits are things like tracking token distribution on the blockchain, the ability to extend the functionality of tokens after creation, and cloneability & forkability of individual tokens. The disadvantage was higher gas cost in transferring enhanced tokens.
Jorge Izquierdo — Designing Future-proof Smart Contract Systems
Main takeaway: Jorge argues it’s desirable for contracts to be upgradeable. Contracts should be cheap, upgradeable, and very simple. Jorge includes multiple patterns for this including proxy contracts, delegates and isolated business logic. One note is that data structure need to be future proofed — don’t use individual fields, as if you add more fields later, it will screw up the storage slot counters — instead use mappings.
Matthew Tan & Wee Chan — Exploring the Ethereum Blockchain
Main takeaway: Having seen 10x year on year growth for 2 years, Matthen and Wee discuss the specific challenges of running high-volume API based service Etherscan.io
Performance suggestions: use SSD drives on your Ethereum nodes. add several nodes behind a load balancer. Node monitoring and quickly restarting Geth is critical.
2 years worth of Google Analytics data for Etherscan users was shared during the presentation. Takeaway: Etherscan users are 92% male, and main countries are: US (20%), China (9%), Russia (6%), South Korea (5%). Matt highlighted the support needs of Ethereum users — the users are looking for more than just transactions, they’re looking for support, education, and onboarding.
Bernd Bohmeier, Kristofer Naerland — Trustlines Network: Open Protocol for Decentralized, IOU-based
Main takeaway: The design for Trustlines is connected graph of credit, with path finding. Essentially, crowdsourced underwriting of debt with extreme liquidity, masterfully efficient balancing of supply and demand where entities who add capacity (credit) to the system are rewarded, and entities who created imbalances in the system are charged fees.
This system would allow two entities who do not know or trust each other to effectively extend one another a line of credit by way of finding a path between interconnected nodes that trust each other — essentially borrowing their friends’ trust and credit. The system keeps track of balance of debt in the system — and attempts to avoid ever needing actual payment by balancing credit supply/demand across entities. To do for financial credit systems what Uber has done for town car transportation
Nicolas Bacca — Hardening Smart Contracts with Hardware Security
Main takeaway: For a higher level of security, hide secrets from the app space and even OS, using SGX/Enclaves and a transaction API that prevents apps from directly accessing secrets
Talk on hardware-enabled security strategies given by Nicolas Bacca, CEO of Ledger hardware wallets.
Augusto Hack, Jannik Luhn, Loredana Cirstea — The Raiden Network
Main takeaway: Raiden is a system to balance blockchain-based consistency with offline transactions. Open a channel on the blockchain, micro payments / transactions occur quickly/freely off-chain, then ending balances are attested by sender/receiver, and channel is closed on blockchain.
Raiden nodes are not Ethereum nodes and Raiden is not embedded in your app. Raiden nodes are separate and communicate with Ethereum nodes via RPC and with your app via JSON API’s. Microraiden is a system for payments where a “channel” is opened between sender and recipient, many transactions occur over a period of time, then closing balance is attested and registered on the blockchain, closing the channel.
Nick Johnson — Towards a Permanent ENS Registrar
Main takeaway: Ethereum Name Service (ENS) is used for decentralized name resolution for DNS and more. Open discussion on the crypto-economic dynamics of their initial name auction, the problems with it, and the modifications they’ve made to the system to create more equitable interactions and outcomes, including using rent-based model for name ownership to encourage usership and prevent speculation, and rolling auctions to minimize manipulation in auctions.
9k name owners. A small set of name squatters/speculators purchased up to 17k names each. Total Ether spent in ENS initial name auctions: 138K Ether. Many supported clients such as Metamask, SWARM, Etherscan and others.
My impression at the end of the day: the blockchain the foundational technology of a new global movement to incentivize cooperation and dis-incentivize corruption, institutionalized large-scale cheating and abuse of power, and the movement is growing.