Burela's house-o-blog

Devcon 3 report: Day 4 – p2p tech


Other reports:

Today’s sessions covered a lot of secure messaging (Whisper / PSS), some swarm, and a couple of sessions on real world supply chain / logistics applications

Whisper: Achieving Darkness – Vlad Gluhovsky
Imagine a world where defensive technology always won. World would live in harmony. Lots of harmony and liberty for all
Want to help “achieve darkness” with whisper.

Whisper is a messaging system designed to deliver darkness at high cost.
Darkness is when no meta-information has been leaked. Plausible deniability.
Is an integral part of Ethereum. Off chain. The underlying Ethereum communication protocol takes care of delivery. It is a gossip protocol. Every message is delivered to every node.
Message is forwarded on, node can’t decrypt it, passes it on. When the message does receive a message that is for them that they decrypt, the node still passes it on so that no one knows it was the final recipient.

Spam prevention uses proof of work.
Ephemeral identities. Decentralised. Built in steganography. Darkness
Is high latency, high traffic, high processor load, high memory usage. Need to try and decrypt messages even if they aren’t addressed to you (is the only way to find out if it is to you).
The topic is 4 bytes of arbitrary data. Used for probablistic message filtering. Will be used for routing in version 6. Topic collisions are expected and required for plausible deniability. Is just there to help you get a subset. But you don’t want to reduce darkness too much.

Recipient: should forward all messages
Sender: maintaining noise by sending random data sometimes. So that metadata isn’t leaked by only sending messages when it is a real message.
One directional logical channels
Can do symmetric and asymmetric encryption.
Whisper is tech agnostic. Can use on any network.

Need to pad messages with random data to not leak metadata.
Additionally you can use steganography to hide messages in the “random” message padding


Using Whisper and IPFS to improve customer experience in a P2P marketplace – Michael Thuy, Stefaan Ponnet
Consumer facing dapp without users worrying about blockchain, EVM bytes, etc.
Will talk about creating IPFS consortiums to help ensure data is pinned and available

If you want to create a Dapp which is completely decentralised, you still need storage. Need to make sure data is retained long term on IPFS. Got people in an IPFS consortium who help out by cross pinning each other’s data to keep it retained.
Created a IPFSProxy.sol contract to handle the cross pinning.
Contract that has functions to add and remove hash and broadcasts events when hashes are added/removed.
Run a proxy listener on IPFS nodes to know what to pin/unpin.
Other contracts can call the contract to add/remove pins.
Can trigger a pin via a couple of mechanisms e.g. whisper
Individual supporters can run the proxy script at home.

Gas station
a way for users to get some gas to be able to use Dapps. Most Dapps are solving this by giving some free gas via a faucet. But difficult to restrict it from being abused.
Made a contract that holds eth/gas, can swap tokens for gas.


How to build a real world supply chain ecosystem using the Main Ethereum Network – Giuseppe Bertone

Easier for you to read his slides than me retyping it out


Building consumer facing interfaces for trust in supply chains
is from Consensys.
Give consumers on the supply chain of an item. Disclosing how you make your product and the craft that goes into it.
Based on verifiable claims. The claim and the verification are 2 separate things

Bringing verifiable claims to the supply chain.
Business claims. Could claim you are independent or family owned. Could claim this by linking to your company registration.
Organic certification requires getting a person to come out to your farm, check the process, then give you a PDF certificate. Show that PDF to other companies to prove your organic status. Gives you the rights to put the logo onto your products.
Moved the organic database into the blockchain. Can move from just a logo on a pack to something you can scan and verify.

An issue they had in the old system was that more fish were being sold than had been certified (fraudulent fish). They made an easier way for fishermen to register their catch on the blockchain, and then associate it to the fish.

For flowers, created an app so you could see the entire logisitcal history of where it has been.
Same with coconuts


Next batch of sessions I moved into the breakout stream for p2p technologies

[p2p] Breakout Session on P2P technologies: Introductory Remarks – Viktor Trón

Ethereum for the “world’s computer”
Swarm for the “world’s hard drive”
he called this a Swarm workshop. I may get ranty again.

Swarm has continued to grow in scope (feature creep) and is well beyond its initial spec of file storage.
Real time apps need communication, so want to build PSS
Need an incentive system, so are building Swap (this I agree with)
Are now creating their own payment channel system……..

there is so much scope creep!
Creating their own decentralised storage, incentive system, messaging system
Now they are creating their own payment channels?

I absolutely love and agree with the end result. But this team really needs to scale back, focus on the core value prop (Swap for node retention incentivisation) and do a lot more module reuse from other projects like uRaiden, IPFS, etc.



[p2p] – Swap, Swear and Swindle games – Viktor Trón, Aron Fischer
Framework to incentivise all distributed system.
Grew from a small micropayment system, to a more complete system.

Swap is the protocol which tracks what services are provided and consumed. Is on a per connection basis. Nodes keep track on usage of its peers.
Type swarm address bzz://somesite
Receive data from peers and compensate them if you consume more than you send back.
Can track the payments off chain. Can keep collecting cheques from a channel, only need to keep track and eventually push the last one onto the blockchain for payment.

Cheques are just a promise, not an actual locked in payment.
The system can be extended into a payment channel with stronger assurance.
Chequebook system can be extended to cover other forms of financial instruments. Bounties, bonds,

Swear is saying what services you can offer
Swindle contracts are the enforces of service promises.
The point of the swap and swindle game, is to securely list and provide services.


[p2p] – How Truebit can leverage PoW + PoA to solve for visa-scale transactions – Zac Mitton
Has been doing research on Merkle computers, as TrueBit
Ethereum scaling strategies.
Blockchain isn’t scalable, because all full nodes need to execute all transactions.
Solution is to find a way to not require every node to execute every transaction (such as sharding, side chains)

Truebit allows for provable off chain computation.
Break up the execution of the piece of work into many many tiny sub parts, each are small enough to be executed within the Ethereum gas limit.
Run it off chain, publish result to blockchain. Others can verify and challenge if they disagree. Then a proving game starts where both parties say at which point through the execution do they disagree. A billion operation execution could happen in 30 verification transactions on chain. The dishonest person pays the penalty.


[p2p] – Web3 Goes Live – Livestreaming Video on the Peer-to-Peer Internet – Eric Tang

Live streaming today needs a lot of infrastructure to support the bandwidth requirements, processing into multiple streams, pushing to CDNs. Large costs on bandwidth.
Peer to peer video can help reduce costs on popular streams by peer sharing.

The future is to move to a decentralised live streaming model

His suggestion is to use a crypto token service. The nodes that are providing service earn tokens. People use tokens to broadcast on the service.
Nodes can be supplying bandwidth. Or they could join the network as transcoders and offer that service for tokens.
Nodes can do the transcoding, provide merkle proofs for what they do. Can be verified, so that they get their payments (can use Truebit or Oracalise for example)


[p2p] – Streamr stack for P2P data transport and off-chain analytics – Henri Pihkala
Streamr is for streaming raw data feeds. Like IoT sensors, temperature. Creates a data stream economy.
Want to create a marketplace and make it like an “app store for data streams”


[p2p] – Self-sovereign BigchainDB data injection in smart contracts through the Jolocom Identity Gateway – Dimitri De Jonghe, Eugeniu Rusu
Decentralised data gateway for Ethereum
BigchainDB is a “planet grade database”.
A lot of our personal private data is in data silos owned by corporations.
Combination of private data + public claims.
If you know where your data is being stored, you could grant/revoke access.


[p2p] – PSS – Node-to-node communication over swarm
stores chunks across many nodes. Then nodes can retrieve from nodes. Has a routing algorithm to try and be more efficient.
PSS uses the same kind of logic, but for message passing instead of files.
Node addresses are generated as a long string of bits. To randomly split up the network. Nodes think of neighbours as being “close” by how similar their bits line up. Completely ignores the concept of geographical closeness. May not be geographically efficient, but is efficient with routing.
Messages are forwarded from node to node. Compares the address to its respective peers, then forwards on to a node in the correct direction (closer number of bits).
Messages are cached on the node, so it knows if it has seen it before.
To help mask metadata of who was the intended recipient, as you get closer to the correct node, forward it on to additional nodes. Final node passes it on so you don’t know it was the last one.
Using the Whisper encryption and message envelope.
Uses the same Whisper message padding to hide metadata


[p2p] – Workplace messaging using PSS – Shane Howley, Carl Youngblood
Company name is mainframe (that will be fun to try and find any documentation online).
A fully decentralised messaging system. It is alike a decentralised Slack with privacy.
Can be used with a company and also secure cross organisation communication.
Help guard against corporate espionage. Helps protect against accidental leakage.
Mailboxing service.
Swarm node. Exposes a GraphQL API. (there is some pretty cool tech under the covers)

Add contacts via their public key. Then can start sending messages


Designing IoT Frameworks Using Ethereum – Shuang Liang, John Gerryts
, lightweight pub/sub message transport. Designed for sensors with low bandwidth channels
Wanted to combine with Etherem to get trust and global identity.
MQTT-Trusted combines them.

uDapp (miro dap)
Sounds like it is a standard Dapp? Files stored on IPFS, etc. Think the only difference is saying that the uDapp device is running on a IoT device like a car.
Use Geth client in light sync mode. Then use MQTTT for messaging (instead of Whisper)
Wrote a Nodejs library for SoC to access HSM (hardware security module)


AKASHA: Unveiling The Next Experiment
to make a decentralised social network that isn’t centralised (like Facebook, who own your data).
Collective memory and freedom of expression back into the hands of people
Uses Ethereum & IPFS

Every user needs to burn a small amount of mana to interact with the network.
You lock your AETH token for a small period of time, get mana. Burn mana to do things. Mana regens over time.

But then they read from Vitalik that most tokens are useless. They need sinks, not just flows. So now they are re-evaluating everything. Trying to figure out what “Token 2.0” is