Drupal and the Ethereum Blockchain
#DrupalEthereum @digitaldonkey09
About me
- 20 years web development
- 10 years with Drupal
- 1.5 years in Ethereum
- Developer at ConsenSys
Overview
- What is a Blockchain
- Why use Ethereum Blockchain
- Applications for decentralized web
- Drupal Ethereum Module & Roadmap
06/29/2016
Blockchain gets popular
- Banks trying to improve their interbank settlement
- Governments exploring paperless e-government and registries
- Healthcare - sharing evidence, verified prescriptions
- Law - investigating the legal side of "smart contracts"
- Energy - incentivizing energy efficiency and trading
- IoT - Internet of things, sensors, appliances
- NGOs - transparency in international aid & outcomes
Who cares about Blockchain?
Blockchain's promises
"Sharing Economy" of
Uber, Airbnb, Spotify
Centralized User Data,
Facebook, Google
Reduce
Middlemen
Self-sovereign
user identity
Internet of
Information
Don Tapscott: "How the Blockchain is changing money and business"
Internet of
Value & Trust
Blockchain
Imagine the Blockchain as a
"Decentralized Consensus Database"
"0xd62e7da1d30af2abed70f0ec677fefe0a0db5774 owns 5 Bitcoin"
agree
agree
agree
agree
agree
agree
Ethereum Blockchain
Decentralized
P2P consensus
No central authority
Any state change requires a cryptographically signed Transaction
Global ledger with immutable records
Programmable money:
Smart Contracts
Ethereum
- Public Ethereum Blockchain & Private chains
- Ether is the currency in Ethereum:
Anti-spam and incentive to run the network - Data changes to Blockchain gets a immutable audit trail
- Code is deployed to the blockchain
Ethereum is an open-source, public, blockchain-based distributed computing platform featuring smart contract (scripting) functionality
Smart Contracts in Ethereum
- can run automatically when certain conditions are met
- Addressable, can handle money / escrow, Turing-complete
- Crowd founding as a Smart Contract:
Contract crowdFound
if (account_balance) > $10,000
move account_balance to founded_account
else
move donation_account to original_donor
(pseudocode)
Smart contracts are applications with a state stored in the blockchain
Transactions & Blocks
Blockchain "write" requires
- the private key of the from address to sign the transaction
- Some little fee for computation/data storage (public chains)
time
Blockchain Challenges
- Young and nerdy technology
- Ethereum Blockchain currently requires more than 65GB+ of disc space (about +1 GB per month)
- Hard to set up and use for non-developers
- Address ⇔ Identity.
Who is 0xd62e7da1d30af2abed70f0ec677fefe0a0db5774 ? - Decentralized file storage immature (IPFS)
Transaction Signers
- Mist browser (Full Blockchain)
- Metamask (Browser extension)
Coming up: MetaMascara (browser independent) - uPort (Identity provider)
- MyEthereumWallet (Online or Offline browser)
- Jaxx (Mobile App & Browser extension)
- Hardware based signing (Ledger wallet)
Ethereum wallets, Identity providers ...
Drupal Ethereum Module
- Founded and abandoned in 2014
- New approach in 2016
- Ethereum PHP library
- POC release recently
Drupal Ethereum Module
a few potential use cases
- Identity provider for Ethereum
- Registries & Signing
Editorial workflows and presentation for documents & signatures -
Asset tracking
Quality control signed digitally, Supply chain tracking, IOT - Trusted voting / budgeting for NGOs
--> http://bit.ly/drupalvoting - Signed software releases
- Trusted peer reviews ...
Current web
Ideal decentralization
How to connect Drupal and Ethereum?
Semi-decentralization
Client side signing using Transaction-signers
Server just pulls data
(no private key on Server)
State and Roadmap
Current: POC
- Identity
User connector connects Ethereum accounts and user profiles - Limited Transaction-signers
- Potential Ethereum paywall
See Video https://youtu.be/Y5Sa7QtpXSE
Roadmap for MVP
- Finish PHP library for complex data types
- Make Transaction-signers pluggable & add more
- Create a UI for a deployable Login Contract
- Contract management & deployment from Drupal backend
Drupal Ethereum module
Challenges and Outlook
Challenges
- Availability and acceptance of TX signers for all browsers
- Identity attestation
Next scopes
- Evaluate voting / Field based voting
- Create IPFS Field module (decentralized file storage)
- Read & mirror TX content into Drupal entities
Why should Drupal care about Blockchain?
- Blockchain technology provides a new trust layer to the internet
- Drupal can provide Identity in the context of limited user groups
- Implement enterprise level workflows, required for Document signing, Asset tracking ...
- Explore new ways of NGO founding, budgeting, voting.
- Drupal can be a bridge to end-user communities
Thank You
- Evaluate use cases, join discussion
https://groups.drupal.org/ethereum - Tweet about #DrupalEthereum
- Join BOF tomorrow: 1pm at Room 312
thorsten.krug@consensys.net
@digitaldonkey09
The development of Drupal Ethereum Module
Has been sponsored by ConsenSys
@ConsenSysLLC
https://consensys.net
slides.com/digitaldonkey/drupal-ethereum
Drupal and the Blockchain - Drupalcon Baltimore
By Thorsten Krug
Drupal and the Blockchain - Drupalcon Baltimore
https://events.drupal.org/baltimore2017/sessions/drupal-and-ethereum-blockchain
- 3,708