 I'm here to speak about Drupal in Ethereum, now I can also move slide. So I'm in Drupal for a long time and I had like one and a half years ago about, I had a friend coming to me and he's like, oh, I create this new application on a new technology called Blockchain and you can tweet there and nobody will ever be able to delete the tweets or censor the tweets. So he asked me to do some UI for this and it was like basically my first connection with Blockchain. So currently I'm working for a very decentralized company which is about 170 people in more than 40 different countries working on different Blockchain technology startups. And I have the chance to evaluate how we can get a Drupal and Blockchain combined. What I kind of want to achieve in this session is to give you a little idea about what a Blockchain is. Anybody knows what a Blockchain is or who knows it, it's a lot. So who knows Ethereum? Okay. So basically a little bit understanding about Blockchain technology on a very high level and give you a little view about what I did in a Drupal module for this. First came the Dries tweeted about a year ago, like, oh, what does it mean for Blockchain technology? Ah, you're there. I added some tweets on the answers of what on Dries post, they were like some funny and some serious and I think a lot of them were very true, actually. It became really popular in the last year, I would say, there's like a lot of big news articles about Blockchain and how it might change the world and affect business. So to give you some examples, recently the government of the UK released a report in I think in January, which scientifically investigated the implications of Blockchain technology and what they will have on the state and what you can improve in the state. It's a very interesting report I can recommend. Currently there's like the Dubai Crown Prince announced that he want to be for the Expo 2020, he want to have like all city documents, kind of paperless government, like all signatures should be digital till 2020. And also recently some big consortium founded around Ethereum, which is like one kind of Blockchain, with a lot of big players now going there and everybody want to take part in this. So who cares about Blockchain, a lot of fields are affected actually, it's I think a very transformative technology. One example I really like is the idea of an IoT like Internet of Things when you consider the energy. So imagine you put your washing machine and you just tell the washing machine, oh, I need it ready tomorrow afternoon. And so the washing machine is like going, has a smart market, like a digitalized market of energy and it's like, oh, the solar panel says there will be good weather tomorrow. So if you wait till the afternoon or till tomorrow, then you get a very good price for the energy. So you can imagine that different devices and just in this energy field can communicate to each other and find the market prices automatically in a very, very more decentralized way than energy is done today. I think there's also to just pick another one in the sector of foundations and non-governmental organization. There's a lot of potential about, like especially in development aid, there's a lot of money like disappearing and if you use Blockchain technology, there's, I met someone who was working on a project that children in schools in Africa like kind of like check in in the school and then they get like the school money paid from the organization so that it doesn't disappear and not like somebody had like, oh, I have 10 children and I get all this money for the school budget but basically they don't exist. So that you combine it with identification, that you like really have people connected to the money. So basically what Blockchain adds to the internet as we know it is a layer of trust and value which is immutable. What I really like about it is this so-called sharing economy people who's like Uber and Airbnb who like take a share of 20% of every taxi ride or take a share of everybody who rents out his house, like with Blockchain technology you could imagine a world where like people actually really interact and you have at the station, oh, this was a good guest, it was a bad guest and it's based on a mutual trust layer where people directly interact more than it's now. And another important thing is the idea of like become the ruler of your own data again, like currently we like giving our data everywhere and the people working on projects like Uport which is identity provider where you kind of like have your data, your address and you can like share it on demand with an application when you have a single sign on oh, this is my address and then other companies might give you an attestation like the U.K. government may say oh, yeah, we know this guy and we say this address, he put there, it's true. So then if you trust the U.K. government then you will know okay, this guy has this address. If you like this talk from Don Tapscott, I put it on the bottom, I think it's really inspiring how many things can be affected, he put it in very nice words in his talk. So let me try to explain what a blockchain is. You can imagine it a little bit like a database of condensers, so every day you have a lot of database notes, they're all syncing each other and they have like they're all in the same state and if somebody says oh, like example Bitcoin, it's a first blockchain and basically it says oh, there's an address and this person owns five Bitcoins. So if you have your own Bitcoin note, you can say oh, I just like hack my software a little bit and I own ten Bitcoins. So basically the other network nodes will say oh, no, that's not true and they will kind of exclude you and blame you, you're a liar and kick you out of the network. So it's a protocol layer which ensures that the data is always in sync. What Ethereum adds to the blockchain is another layer of programmable money. I will come back to this in a minute but basically the key elements of blockchain technology is that you have a decentralized network which lives in peer-to-peer condensers, at least in public chains without any central authority so everybody can set up his own node which gives you this ledger where you say oh, this data is like valid everywhere. But the important part is that you need to have private keys so every time anybody writes data to the blockchain which can be a smart contract or can be just a value set, you need to sign it with a private key. So basically Ethereum is an open source software and there is like the Ethereum blockchain which is a global chain which has this money called Ether which is used actually the blockchain nodes called miners, they're competing about like some actually solving a kind of useless equation but the one who solves it first gets, I think it's 5 Ether for solving, being the first to solve this problem and it's basically an incentive that people actually run the network that it's existing and another important part is if you look in your mail inbox you'll find a lot of spam so writing data to a blockchain costs you a little bit of money because otherwise just everybody would like write everything in there and the chain will be like huge. So basically every time you write something to the data to the blockchain it creates a new version like if you have one variable deployed there and you change it then you have like the old variable and you can see how it changed and when it changed. So this mystical smart contract, basically you can imagine them as applications which are deployed to a blockchain so once they're deployed they cannot be changed. You have addresses and you can call functions in there. I think the easiest way to, I found to explain what a smart contract is is the idea of a crowd founding so you can make even if this is like just like a idea of code it's not really contract code you say oh when I'm having till this and this time I have like a gathered for example like $10,000 or Ether then move the money to the account and the project is founded so if the money is like not founded this contract would automatically move back the money to the persons who donate it in there and nobody can change the behavior of this contract after it's deployed so people who like want to donate money are kind of sure that it will be a success or they will get the money back. So every time you write data to the blockchain it's signed and it gets combined, it creates a transaction, the transaction always has like a unique ID and a time stamp so you can also use it to make store signatures say oh this person signed a document for example even if you wouldn't put like documents itself in the blockchain because it's too much data you would put like a hash of a document like you have a PDF and then you have like a hash saved in the blockchain to say oh I sign on this document hash. So basically their blocks created every I think 15 no about 17 seconds is a new block created in Ethereum. This all for like a internet nerd like me who comes from Dupal and WebSmart site making it's like crazy technology and it has a lot of things you cannot really imagine in a Drupal site. So besides of being a very young technology which is like still evolving you have the problem that this blockchain becomes really big. I'm not sure if my data is exactly accurate but it's at least 65 gigabyte and it's growing every month. So it's not really the thing you can put on a mobile phone for example so if you want to provide a web service at first look it's like very difficult and you have identity but I come to this later and what I said about like hashing files you may want to have the file storage also decentralized so this is technology is not 100% working yet but I think it will soon. So all these challenges their solutions on the horizon this is why I kind of like optimistic about starting this module. You have a browser called Mist Browser which like has a whole blockchain which is like this tons of gigabyte on your hard drive but there's tools which what I use now is MetaMask. It's a browser plugin currently they're working on making it a JavaScript only library and it basically connects to a blockchain service provided by Infura or you can also connect it to your own blockchain or you can just like add an address if you have your own blockchain out running but it enables also not yet in a mobile browser but without having a blockchain on your local machine to sign a transaction because this is the key thing you need to do in order to interact with a blockchain. So I picked up an abandoned module which was like a very early version of it and I found out that I need to redo a lot of things basically about everything I keep some structure but it was based on an outdated PHP library so I ended up writing my own PHP library and most recently I kind of created a proof of concept how it's going to work but first a little bit about what I see potentially with this module. So basically the identity thing you have like just the address to connect this with like real people or Drupal users because it's like one feature I think Drupal provides out of the box and Drupal 8 it's so easy to add fields to users so basically we have identity we just need to connect it to a blockchain address and then you can use this data to do something with it and there's like lots of lots of projects currently developed especially land registries or document signing workflows and like the in an ideal decentralized world like everything every client would have its own application like a react application or something directly communicating with a blockchain and decentralized file systems but if you actually look in what people are developing currently it's like every application has a central data server so basically it has a semi decentralized architecture which I kind of picked up because my idea is basically I don't want to have any private key on a Drupal server I think this is like I don't know how many servers have been hacked here but I think there's a lot so you don't want to put any private key on a server so I came up with a kind of like a circle architecture which you use like front and tools like currently the MetaMask or any other transaction sign it or even hardware bias based signers and whenever you have like secret data it goes via JavaScript to the blockchain and Drupal will verify the data by pulling his own blockchain source via PHP so that you have a kind of trusted data workflow so the current state of the module is basically you can add your address to a user profile so you add the Ethereum address there and you have a nice verify button and it requires a web free JS like MetaMask injects this in the browser there's a dismissed browser this the Ethereum foundation browser which provides this JavaScript thing and then you can Drupal provides a hash which you like sign and store in the blockchain and then on the back and side Drupal can verify that you actually had the private key to sign this transaction and then Drupal will know that you are the owner of this private key and currently it just adds another role to the user so it's a basic a base to create a paywall for example for a new site it was like my proof of concept demo is you could it's based on one smart contract so this smart contract is also public and you could like easily modify that you say oh signing up will cost you like one ether or like I think now it may be even less so this is working so far you can you can check out my video it's it's not really targeted for Drupal users it's a lot of Drupal around it but it shows the what I did in order to make it a real usable module as a base to implement a lot of other things there's like some work need to be done in the PHP library level and basically I aim to add as many as possible transaction signers I need to create like a more usable interface that you can say oh I support this transaction signer that the goal is to support like every browser I think before every browser it's supported you can maybe use it in a limited user group if you have a community or a foundation says oh all our members are really nerdy and they find using a plugin so you can say oh we set up our elections for the board in Ethereum or something like this but I'm kind of optimistic that let's say at the end of this year we have like much more support of different transaction signers as apps and phones or maybe even more hardware which I consider the most secure and currently I just have the smart contract and that the idea of the module is a little bit to create a UI so that you can add in the smart contract you say oh this sign up will cost you this amount of money and it's valid for this period and then you use the same transaction signer to deploy your own smart contract from the Drupal admin back end to the blockchain and you like parameterize the smart contract and deploy it then so that you can create your own and like basically this user login function is just a basic function you need to do any other implementations so you always need to have an account connected to Drupal in order to do like voting or whatever things you can imagine to do with this module. So I think the general acceptance depends a lot of more transaction signers and more public acceptance I see on the horizon let's say the idea of identity attestation I explained again that like some other authorities maybe even Facebook can say oh we know this user and he has like confirmed his address or a government can say this or any other organization can attest that your address you put some data to your address and some other entity you know attests that this is true. So I think when there will be more in this area there will be a lot of more applications. I had an idea about field based voting I had a blog post about it. I wrote a blog post about it I think it's the idea of just making entities to vote on like projects. Sorry I don't have a time. Okay another thing which is kind of coming back to the beginning where we created this twitter thing so basically our module at this time just like wrote a text strings and saved in the blockchain which is I think now very expensive but the key of twitter is like referencing other users and hashtags so basically the problem is if you want to search for hashtag in your application you will need to search all the blockchain because every transaction is like every transaction so you need to search them all and collect and combine the data somewhere. So basically the idea of read and mirror content into Drupal would be you set up a registry where the tweets are stored in and then you have a watch process and every time a new tweet is there Drupal will like process this tweet, map the users to a user, map the hashtag to a taxonomy tag and then Drupal can provide listings of tweets referencing all this stuff and you can do it like as an open source module so even in a country where the twitter is kind of banned and the blockchain is available somebody could locally set up this module on his local Drupal and can verify or get all the data and have the same this is like I think the power of open source software which I really appreciate. Like creating trust through repute, oh god, repute usability. It is actually just a summary. I think Drupal can be a very good bridge technology because a lot of projects I see currently developing and react and a lot of native or Java stuff. I think they could be very well done in Drupal and I hope we get there soon and making nice projects. So thank you. I want to say one more thing. We have a buff tomorrow so people are interested discussing more use cases. I'm really curious like to collect more ideas. My colleague Eva is here and we can most probably together answer a lot of questions around blockchain and I don't know where my evaluation link is but if you find it I would be happy. Any questions? Basically Consensus sponsored my development time on this project which I'm very grateful and I just got the confirmation today that I can go on this year I think. Decentralized file storage. It appeared here at IPFS. It's a system which is, I don't know too much about it but basically I think we will need it. We would need to integrate it in the media stuff of Drupal that you can like upload the file and you also provide a decentralized version of the file. Sounds like an interesting alternative. We should look at this too. Like the basic for any other application I think it's like this user connection. I'm not sure if I understand your question. The module, okay I think now I got it. So the module actually aims to provide a framework to build other modules on it. So basically the user thing is like the first application module and what the module currently provides is like this architecture layer that you have a Drupal be able to pull data from the blockchain on the front and side that you're able to sign transactions. Yes but currently you would need to write your own smart contract but the idea is actually that you, yeah, like the ideal version would be somebody or we have another module it's called like voting and you enable the module and you have some parameters of the smart contract and you click together your smart contract how the voting should actually work and need to be integrated in the Drupal entity system and then you would say deploy my version of voting to the blockchain. This is like the idea.