Drupal and the Blockchain
by Eva Shon & Thorsten Krug
Overview
- What is a Blockchain?
- What is Ethereum?
- How it might affect our business on the long term
-
Why we like it and how it might change the world
- Current state of Blockchain applications
- What role Drupal might play in blockchain tech
- Drupal Ethereum Module Roadmap
In 2010 the first commercial bitcoin transaction was made to buy a pizza.
The pizza guy accepting the 10.000 BTC for payment was an early adopter.
The value of "the pizza" today is 7 000 000 euros.
Why I like it?
- Remove the Middle man we require for trust
(Music Industry, Airbnb, Ueber, Western Union, Banks, corrupt money systems... ) - Get everyone in the World a bank account
- Regain control / own your data
- Trust layer for cooperative business models (DAO's)
- Reinvent democracy
- Don Tapscott: "How the Blockchain is changing money and business"
Who cares?
- Banks trying to improve their interbank trade
- Governments research how to digitalize ledger
- Healthcare Sector (e.g. validated recipes)
- Lawyers think about implementation between "smart contracts" and the implementation in law systems
- Energy companies how to optimize energy efficiency and trading
3. What role could Drupal play?
Is it a nerds-only thing?
- Blockchains currently require more
than 60GB of disc space - Hard to set up and use for non-developers
- I am:
0xd62e7da1d30af2abed70f0ec677fefe0a0db5774
- Chrome Plugin
- No full Blockchain (API)
- Sign transactions in Chrome
- Metamask works on porting to other browsers
- Coming soon: JS developer library
MetaMask
"Transaction signers"
Ethereum wallets, Identity providers ... there are different scopes and naming
- Mist browser (Full Blockchain)
- Metamask (Browser extension)
- uPort (Identity provider)
- MyEthereumWallet (Online or Offline browser)
- Jaxx (Mobile App & Browser extension)
...
Semi- decentralization
current web
ideal decentralisation
How to connect Drupal and Ethereum?
Semi-decentralization:
Verify and Sign Locally
Semi-decentralization
Clients use
JavaScript- based signing tools
Server just pulls data
(no private key on Server)
Submit already-signed Tx's
to a central Server
Workflows for decentralization
- Most data does not have to be fully trusted
- Drupal can provide editorial workflows and presentation layers to blockchain apps
- Ledger
Signing official documents requires a lot of back and forward, sending emails, revisiting, revisioning, user management, roles, permissions, views ... - Asset tracking
- Quality control signed digitally
- Supply chain tracking and visualization
Drupal Ethereum Module Ideas
- Frontend side
- Pluggable Transaction signer libraries
e.g Metamask
- Pluggable Transaction signer libraries
- Backend side
- Guzzle JSON-RPC calls to any Ethereum Node
- Pull data
pull data
+
push signed data
Identity
Drupal has Identity
- Drupal user accounts
- Limited number of known participants
- Connect:
Drupal UID ↔ Blockchain ID - Optionally charge sign up fees
- Optionally create a validity period
- No Auto-renewal (sorry marketers)
Login Smart Contract
- User adds their Ethereum address
- Drupal generates a hash
- Store it with address
- Generates a transaction, which will store the hash to a registry in a smart contract
- User Signs transactions with their private key (uPort, Metamask ... ) → Hash will actually be stored
- Drupal verifies that the hash was stored and takes some action e.g. assigning a role to the user
Drupal
Ethereum Module
Roadmap for Drupal Ethereum Module
- Connect Drupal/Ethereum on API level
- Pluggable Transaction signers
- Drupal Backend Data pulling
- Identity for Drupal (connect accounts)
- Field based voting system
- Store Hashes of the voting issues and let user vote
- Pull Blockchain Data to Drupal to make it searchable
- Integrate IPFS Field (decentralized file storage)
Ethereum based voting with Drupal
Ethereum based voting with Drupal
- Target Group NGO's "trusted organisations"
- Drupal-Based User management with Etherum-Drupal account connection
-
Creating custom smart contracts
-
Goal: UI to create Smart Contract and deploy them from Drupal admin-backend
-
-
"Freeze a set of fields" to provide a time consistent content users vote on. Revisioning integration=
-
Store a hash of the content in Blockchain
-
-
Provide a UI to sign a vote using a transaction signer
See my Blog post: http://bit.ly/drupalvoting
Looking at the future
- Editorial workflows integrating Smart Contract deployment
- Integrate smart contract libraries for digital autonomous organisations, DAO distribution
- Signed files, Signed Software releases
- Trusted peer to peer reviews
-
Evaluate, mirror and search Blockchain content
- Pull Data from Blockchain
- categorize, search display, make accessible
- Trusted authors:
Connect Posts and Blockchain Identity
Live list: http://bit.ly/drupal-blockchain-brainstorm
Why Drupal should care about Ethereum?
- Blockchain technology will change how things work
- We are experienced in open source sharing culture: we can help connecting Ethereum technology to end-users, our customers, startups, DIY nerds ...
- Drupal can provide Identity in the context of limited user groups
- We have the technology and experience to provide enterprise level workflows which might include signing transactions for "official publishing"
Questions?
- Join discussion
https://groups.drupal.org/ethereum - Tweet about #drupal-ethereum
Eva Shon
http://beluga8.com
@ohmu808
Thorsten Krug
http://donkeymedia.eu
@digitaldonkey09
Drupal and the Blockchain - Drupal Camp Munic
By Thorsten Krug
Drupal and the Blockchain - Drupal Camp Munic
- 2,060