 Hey everyone my name is Thomas and a few years ago actually with a bunch of friends we had the idea of making the internet a friendlier place. Also by enabling peer-to-peer communication everywhere on the internet where everywhere before we had unilateral communication from site owners to the web servers suddenly we wanted to have peer-to-peer communication everywhere on the internet. So for that we developed the Hay product which is actually a browser extension that sits on top of every website and offers you a chat room depending on the URL you sit in so you can actually chat with all your friends and all peers that are on the same website as you are. So actually we had this idea quite some time ago and then it's only recently actually one year and a half ago that we thought okay what about actually including the blockchain in this product so we make it even more transparent. So we use the blockchain to actually reward users when they provide meaningful content to the platform and also to actually share the value that is created via the platform because we sell contextualized ads in the chat and actually the users get a share of these advertising revenues thanks to tokens. So we decided to embark on this journey of creating a social network on the blockchain but oh my you might know about the challenges linked to that. So we basically were faced with four key challenges. The first one was about throughput. So you know how do you deal with the huge amount of transactions that you get when you have thousands of users all interacting at the same time with each other. We know today that Ethereum scales with up to 20, 30 transactions per second that this really not enough for you use case. And then user experience you know if you want to build a social network it's not a one player game you need like thousands and thousands of users to make this a meaningful experience where you interact with plenty of people. But to get this mass adoption you need a good UX and UX is always you know clashing with security and blockchain is very secure so how do you make sure you have a UX like that is friendly enough that so that many people come and join your network. And then what about volume? If we start storing all the content of the posts etc then we're gonna hit like a storage cost very very high. So how do we deal with that? And then actually last but not least this creepy challenge of compliance. You know the regulatory environment around blockchain is still fairly undefined and there is still no clear framework in place to say actually who should be responsible if hate speech for example is ever recorded on the blockchain. You know hate speech has got to be removed promptly on Facebook for example otherwise Facebook is held accountable so we wanted to make sure that we would never be accountable for things that users actually would post on the blockchain on the content. So we're faced with these challenges and after quite some thought process we came up with two solutions thankfully for that. So about the throughput and UX challenges we decided to resort on a side chain solution. So I don't know if some of you here in the room know about these little fellows. Probably like if there are Ethereum developers within the room you've seen them there are actually crypto zombies. So we decided for our sidechain technology to use technology provided by Lume. They are great guys so they were first known for crypto zombies so a series of tutorial about how to learn solidity and developed and they've developed this whole technology of their sidechain to support actually gaming and social kind of use cases so which were like the perfect fit for what we're trying to do at Hay. And then next to that talking about volume and compliance this actually forced us to focus on the so-called minimum immutable product. You know when you're building something on the blockchain you don't want to put all your features set like all your architecture and systems on the blockchain you want to make sure you actually use blockchain only for what it's best at. So really focused on you know identifying what it is that has to be made immutable so that things are open enough so that the user trust us enough but at the same time you know we make sound architectural choices and that's how we actually ended up only storing like the ultimate output of a user's interaction resulting in value creation. So let me explain that we've decided not to store any content from the users on chain so we do not store posts we do not store comments or whatever we do not store username all that we store is actually you know interactions that occurred between these users so for example Alice is giving one like to Bob and so actually Bob will receive one karma one token and this is stored on the blockchain but nothing about the content so the storage requirements are way lower and actually we also work around the compliance issue linked to that. So to give a little more insights about Loom so the sidechain technology that we are using they're really great so they have a team of nearly 100 people now worldwide so doing plenty of exciting stuff so their sidechain technology is basically relying on a tender main protocol so using delegated proof of stake with so-called validators so they are the miners of this kind of protocol and then they basically run the Ethereum virtual machine meaning like all the folks that have learned to code an Ethereum you know using Solidity or Viper and stuff like that they can actually take the contracts and just deploy them on Loom it goes like that it's super easy so you have all the stack we pick WebTree.js etc so really great for us this huge developers community and basically they're for using their technology for the use cases as I was saying of gaming and social networks so for example actually the very first use case for the Loom sidechain was a delegate call so you can think of delegate call as a kind of stack overflow specifically for things related to Ethereum and the cool thing with delegate call is that it's running fully fully on the blockchain like even the content etc and it was a bit the laboratory of Loom and one of the great things actually that they've done with this delegate call and that we planned at some point to do on hay it's actually you know writing smart contracts directly in go and then compiling them and having them included embedded directly in the binary of the chain meaning like really all your things that would be normally interactions with smart contracts using you know yeah like smart contracts interfaces suddenly they become embedded in the very fabric of the chain making it way more efficient and and secure actually so that's you know an alternative for people that code well in go and they're not so much at ease using solidity they can actually use that cool language that go is and so we've decided to use them and you know we thought about our architecture don't worry anyway it's unreadable we won't go through all the boxes on that on that diagram but basically what I would like to highlight here is that in our architectural choices we've really had this mentality of you know minimum immutable product so you see like there's a sheet loads of business logic everywhere like all these microservices etc but the interesting thing is that actually there are very few things put on chain so here you have a few smart contracts on the main chain so on ethereum you have mainly the token contract and then on the side chain so on loom you have again the token contract and then the karma contract karma is like on stack overflow the reputation that you can ultimately exchange for tokens but the interesting thing is that everything around is not on chain but we make sure that this is the part you know that users we know they care about that once they have earned a reputation in karma they are sure that you won't get you know stolen it's fully transparent and actually you see a lot of arrows and namely arrows in between the sidechain and the main chain so why is that so that's because you know in hay and also delegate call and or other use cases what you have is that users will actually want to transfer assets so tokens for example you see 20 or 721 from main chain to sidechain and then from one sidechain to the other etc and you gotta have this interoperability of the chains between each other so that they are really really usable and so that's why a lot of arrows and actually we're very lucky in the case of hay because we don't have to rely on a very complex constructions to be able to have this interoperability of chains because probably you know about plasma plasma cash or plasma prime or all these you know very advanced research projects that have the purpose of moving assets from the main chain to the sidechain and that back to the main chain and it's also very complex because you gotta make sure that when a user actually trusts the sidechain owner to move an asset from the main chain to the sidechain it won't disappear in the sidechain making it unusable on the main chain so there's really a risk for users when they transfer assets to a sidechain that they lose their assets so that's why a plasma cash has been found plasma has been built and it's actually a fairly intricate intellectually but we're very lucky actually because here we rely on a like a very stripped down version of plasma where actually we only need to care about users transferring assets from the sidechain to the main chain so that is users will actually gain reputation karma tokens on the sidechain and we basically you know offered offered these tokens offered these assets to them thanks to their activity and contributions and then what they need to do is actually be able to redeem these assets on the main chain and so they need to to bring them back but it's not like they need to go from the main chain to the sidechain and then back to the main chain so only assets created here and then transferred there so let's take a little look at how this works it's called the transfer gateway pattern something that lume has been pushing forward and open sourcing so really doing a great great work on this so how does it work basically let's say that this user Alice has earned karma and tokens on the on the sidechain and then she wants to actually redeem them so that she can trade them you know on any exchange or with friends on the main chain when they have really monetary value so what Alice will do is actually on the sidechain she will burn her tokens you know and actually have approved that you know she she locked or burned these tokens submit them submit this proof to the validators so the miners of the sidechain and the validators will verify the claim that the tokens are frozen and emit a withdrawal message that is signed by them by one of the validators give it to Alice and then Alice with this sign message will actually head to the main chain and provide this sign message from the validators to the transfer gateway the transfer gateway will be able to you know verify that it was signed indeed by one of the addresses of the validator and if only this is true then actually the transfer gateway will release the equivalent amount of tokens on the main chain account of of Alice and so what we have is basically an exchange of signed messages from one chain to the other and that is kind of the magic that makes this transfer possible so thanks a lot for your attention I hope you join the the conversation on high.network the product is in beta version on the chrome chrome web store for now so hopefully see you there thank you we have time for a few questions hello so first of all I'm very impressed by your approach to scalability I think that this is how every decentralized application should be built thanks also props to using loom and my question is so karma has a value right and have you thought about how do you ensure that a user cannot cbo attack the actual network and just like earn karma using a bot or something yeah so that's a very good question actually because I did not mention explicitly that on the loom sidechain you don't need gas actually to perform transactions so you can do you know thousands of transactions per second but of course gas is there for a purpose is to reward miners that's one also to prevent cb attacks so really people spamming the network and how is this prevented it's actually in the very fabric of you know what loom is building they have this built-in reputation system where you need to kind of you know warm up your address to begin being able to send a lot of transactions so you have this built-in kind of reputation system that ultimately allows to block and ban people that are spamming a team and then next to that actually we have a kind of oracle in place that makes it that makes sure actually that people cannot reward each other with karma etc you know on the high smart contracts if they have not previously registered as you know users of the network so it's not like anyone can can begin spamming a network like mad they have to be registered but it's an ongoing field of research I know like loom is spending a lot of time actually having all these reputation system in place to avoid spamming yeah there was this question there in the back about using you know like identity providers on chain definitely it's on the road map so I'm not very familiar with loom but you said that you use standard mint and delegated proof of stake so this is kind of it's a permissionless network if I understand correctly yeah how do you how the contract on the main chain is going to verify the signature of a permissionless network because if you need to know the validators and validators can be added all the time then that that contract cannot store them yeah so the question is about how do we ultimately like the ability to transfer assets from the sidechain to the main chain comes down to the transfer gateway so this recipient on the main chain being able to validate that the transfer transaction is well signed by a validator so how do you actually deal with the governance of making sure that like these validators are legit and are reflected and actually there it's actually how to say the way that it's working now is firstly loom has been running a hundred validators fully internally okay only these ones were like validating so no issue I know what they are doing is actually you know onboarding every month actually new validators and all these validators all these nodes actually belong to companies using you know using loom and their technology as yeah and so basically supporting the technology by becoming a validator so it's not like anyone can enter the the validator network and these validators because it's important to mention actually are being rewarded with tokens etc and the the monetary value ultimately comes from the developers of applications so hey for example renting this network so it's like you know blockchain as a service thanks for the talk I have a question you said so basically users get reputation and then they want to exchange this reputation for tokens we want to really sell it but why people will buy those tokens yeah so that's in the economic model if you wish ultimately hey the company right we gotta make a living so the idea is to monetize the the attention of the users but in a very explicit way so putting actually ads on the network and these ads have high value because they are hyper contextual you know to the url to the url and basically advertisers to benefit from ads they pay with the token so it's an utility token and that makes you know the the velocity of the market where they will buy ads from the users and so users will have incentives to contribute good content so they can sell back these tokens all right thank you good thank you all right so we're gonna put the mic it's already on so yeah so you don't know what I heard not you do