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
  • 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

  1. User adds their Ethereum address
  2. Drupal generates a hash
    • Store it with address
    • Generates a transaction, which will store the hash to a registry in a smart contract
  3. User Signs transactions with their private key (uPort, Metamask ... ) → Hash will actually be stored
  4. 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

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?

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