Link roundup

These are my notes from attending Ethereum DEVCON2 http://ethereumfoundation.org/devcon/

WeChat update
The WeChat groups were still forked (Devcon2 vs DEVCON2). However it now looks like everyone is adopting the longer DEVCON2 chain (272 vs 134). Recommendation: The groups are at capacity, so ask someone in person to just add you to the DEVCON2 group.

Venue and ameneties

DEVCON2 is happening in Shanghai on the famous bund river. It looks beautiful at night 20160919_201337.jpg

There were people doing Taichi exercises in the lobby for show taichi

All of the hotel conference helper staff were Chinese women that were wearing these lovely dresses dress

The quality of the food during the breaks and lunch time was extremely high quality (was too busy eating to take photos) food.jpg

The only negative was the hiccup in the morning for registration. There was a line form 8am, at 9am not even 1/2 the people had managed to be registered, so the conference start had to be pushed back 1/2 an hour registration

 

Sessions

mmexport1474250411819.jpg

Dapp regulations
Speaker was from Coin Center
Talking about the potential risks of Dapps / cryptocurrencies being classified as "securities", which could get you into trouble with the US gov FCC.
Coin / token presales can get you into trouble as that can look like a security. There are ways to structure the technology and language to avoid to help keep you safer. Peter said you can contact him if you want to try and do a safer presale
Peter(at)cooncebter.org

Panel
Generic talks of EVMs that were expanded on much more in later talks

Directions in Smart Contract Research: A Selection
Speaker from IC3
Hackers can try and exploit bugs to earn financial benefit
Try and mitigate with formal specification & verification. Lots of research going into this in the Ethereum world right now. Use escape hatches to try and protect your contact against unforeseen bugs. Bug bounties can help

Incentive system for Swarm
Peer to peer file sharing for Dapps. Has been upstreamed to develop branch
Talked about different contracts (SWAP / SWEAR / SWINDLE) that get nodes to pay and be paid for file retrieval and long term storage.

I'm still unsure why we need swarm
Why aren't we just using IPFS for the storage/transfer, and just putting SWAP over the top for the incentive system. Then it would get wider network effects from the greater IPFS web.
Also saves reinventing the wheel. Seems like "not invented here" syndrome.

Making the EVM scream
Made some tweaks to variable types, etc. to get some more performance. Showing benchmarks that it is faster. Same content as previous blog post
TL;DR it is faster and they want to make faster

Raiden network
They have a working prototype. Will be available "soon".
Should make transactions instant and lower the cost of transactions, and help with transaction privacy.
Showed a demo of an IoT scenario. Consuming energy consumed tokens. Periodically during consumption it would record a transaction (was about once a second), which transferred the tokens instantly, keeping the energy flowing, until the tokens ran out
Goal is to create a general framework to build off chain Dapps

Truebit: Trying to Fool a Blockchain
Ethereum is awesome because it is Turing complete.
Means smart contracts could in theory analyse solidity code, improve itself, compile the new solidity contract, deploy new improved contracts, etc.
But too expensive to do computations on chain, so instead you can get things calculated off chain. But how to do it securely?
Created a proof of concept. Is secured by the "verification game", where someone submits result, someone can challenge. But the honest person will ALWAYS win.

Towards Web3 infrastructure
Swarm for peer to peer files.  Again it sounds like they are reinventing IPFS. They should just let IPFS worry about that infrastructure, and should instead focus on the incentive structure on top.
Whisper is a cool messaging system. Could be used to do streaming video content

Ethcore - building the distributed future
Showing off Parity client UI. It is a clean room implementation of the Ethereum client written in Rust.
Parity will host its client as a Web UI (http://localhost:5000)
Looks like a more fly featured version of local Mist wallet. The best feature is that using other tokens (e.g. DAO tokens, Gavcoin) are treated as 1st class citizen in the UI like ETH, makes it easier to interact and trade with
http://imgur.com/T0Iii0h http://imgur.com/KCINbR9 http://imgur.com/jq5KysS

State channels. Making your application practical
Very clean short explanation of state channels. Watch it if you don't understand how they work.

Ethereum loves Web assembly
https://github.com/ewasm
EVM is the core of ethereum. EVM has had some growing pains.
Want to rewrite it using Web assembly technology, can vastly improve execution due to the Web Assembly execution engine within browsers.
eWASM (ethereum web assembly)
Restricted subset of an web assembly VM.
Backwards compat with EVM 1
Has a tool EVM2WASM to can transpile EVM code to very fast web assembly
Allows extensibility, like putting metering off to the side of execution
eWASM ethereum exexution interface definition.  Defines ~29 instructions
eWASM contract Interface ECI. Defines structure of a contact.

Casper
To move us from PoW to PoS
Goal of consensus protocols is to make all nodes make the same decision if they follow the protocol
Asynchronous consensus is REALLY difficult.
Nodes that are behaving badly and not following protocol are Byzantine
1/3 the talk was spent just defining terms like safety, estimates, approach motivation
Rest of session he spoke too fast and kept clicking next to flick through slides (60 slides in 20 mins). Didn't catch the information at all.

Ethereum on ruby
EVM written in ruby
Wrote a testing framework called teth. Means the tests can be run in memory in ruby EVM
Let's you write tests with multiple actors to test complex interactions.
Alice executes a contact. Bob does something else. Check the state.

Zcash loves ethereum
https://ethereumfoundation.org/devcon/?session=zcash-private-transactions-on-a-public-blockchain
Bunch of cryptography researchers came up with some new insights. All became founders of zcash. Focused on privacy of transactions.
Zcash will be released as its own blockchain

3 ways to combine privacy & programmability

  1. Add privacy to Ethereum. Baby ZoE (zcash on ethereum)
  2. Add progamability to the zcash blockchain
  3. Connect zcash & ethereum blockchain. Project alchemy

Project alchemy: verify zcash's PoW in solidity.
Zrelay.
Smart contacts to fulfil orders.
do a trustless swaps of coins
Would enable ethereum contacts to send & receive zcash. Means they could do transactions more privately
Zcash launches Oct 28

Types for tokens
New kinds of typing disciplines that allow you to detect behavioural errors.
Can help with formal verification systems, and drastically reduce the cost
Talked about types as being pluggable components (sounds like interface based programming)
Rholang is a blockchain based social contacting language with behavioural typing mechanism.
It can detect deadlocks and race conditions at compile time. If you convert The DAO contact into rolang you can see the race condition

Ethereum for Resource-Limited Devices
Getting ethereum onto mobiles, wearables and resource constrained devices.
Multiple threads of progress being made to reduce requirements. Runs on a Rpi model A

Designs for the L4 Contract Programming Language Based on Deontic Modal Logic
Legalese.com
Developing a DSL for lawyers to generate verified contacts
Like SQL for writing contacts
Will compile your contacts to English PDFs

The Mauve Revolution
Ethereum is currently "slow", doesn't scale. Wastes lots of electricity woth PoW
Rather than spend $1000 on physical mining hardware & electricity, instead do virtual mining.  Use the $1000 to virtual mine by staking.
Uses a Casper smart contract. You register yourself as a validator.