ScalingNOW! Interview 2: Igor & Roman from POA Network on Implementing Parity’s Bridge Chain Solution, using Side Chains with Cross-Chain Crowdsales
There are a lot of projects focusing on building a scaling solution for Ethereum NOW! Each of these projects has their head down plowing forward with their solution and most don’t have time to communicate their solutions. We are pulling them out of their dark dev caves so that we can all understand our options for launching the DApps ASAP.
If you have a DApp that is looking to launch in the next 6 months and you need a scaling solution, please fill out this application to join POA Network and many other scaling experts in Barcelona on March 6th. Note: You must have a DApp with a need to implement a scaling solution in the next few months.
In our second Scaling NOW! interview, Griff Green and Quazia from Giveth talk to Igor Barinov and Roman Storm from POA Network to get the deets on their implementation of Parity’s bridge chain solution, using side chains with crowd-chain crowdsales, and implementing their own PoA network:
Prefer reading? See transcript below.
Solution Summary:
Summary of Solution: POA Network set up their own chain, the first Ethereum-based public network with Proof of Authority consensus, reached by independent validators. They are using a modified version of the Parity Bridge, customizing it to add ERC20 support to the right side of the bridge, which is the POA.network chain. They had in-depth audits on their project, including DDOSing their own network to test it.Peg setup: The left side of the bridge, the Ethereum mainnet, there is a contract that listens to events. They implemented ERC20 support on the right side of the bridge to create tokens that represent ETH deposited in the applicable smart contracts. Similar to a multisig transaction, minting these tokens requires transactions from three different authorities.
Use cases:
The first use case is migrating existing tokens on the main Ethereum chain to POA.network’s chain to use these migrated tokens in the DApp and the tokens on the mainnet for trading/speculation. An example of that is Block Array, a project that raised $12m. They plan to move part of their token from the Ethereum network to POA to offload computations and make their project cheaper to scale.A second use case, and the use case most battle tested, is doing a crosschain crowdsale, raising funds on Ethereum but creating tokens on POA Network. When wanting to trade these newly minted tokens they can be linked to a token on the mainnet to get it onto exchanges.
Solution Issues:
The governance structure of the POA.network chain is not trustless, as you need to trust the authorities due to it being a POA. This is the same issue as Parity’s solution.
Other notes:
- POA Network has integrated with MyEtherWallet.com, MyCrypto.com andTrust Wallet, an open-source mobile wallet for Ethereum, ERC20 and ERC223 tokens.
- Running your own network is stressful! Running your own network is much more than just keeping nodes synced, developing a governance model for your network could lead to consensus failures and hard forks. Watch the video or read the transcript for a good overview on how POA’s governance model works.
- This solution only works for Parity, not Geth.
- POA Network had a good experience working with Parity Technologies — technical questions were answered and beneficial contributions were accepted.
- Etherscan, Metamask and other ConsenSys projects don’t currently support Ethereum forks.
- Forks of Ethereum don’t have a block explorer that can show internal transactions for a wide variety of calls. POA Network is building an open-source blockchain explorer. 😀
- You too can bridge to POA Network!
ScalingNOW! IRL Gatherings:
Web3 Foundation and Giveth are working together to create an in-person gathering on March 5 & 6 of the top devs working on scaling solutions, as well as the DApp developers that rely on these solutions. Day 1 will be invite-only for select devs working on immediate scaling solutions to share their insights amongst one another. Day 2 will be open to DApp developers who submit a (super quick and easy) application on what they are building. We encourage all interested DApp devs to apply here.
The insights and momentum gathered from this small gathering will feed into a larger public conference on Scaling initiatives that the Web3 Foundation will organize. The initial details of this conference are still being determined but will likely take place in Berlin in late 2018. For more details, follow Web3 on Twitter, join the Web3 Riot channel, and join the ScalingNOW! channel.
Do you want to support ScalingNOW!?
We are funding the ScalingNOW! interviews and subsequent Barcelona gathering transparently on the Giveth Platform. If you want to support the cause, send some ETH or Token love to 0x9cb8921aa376219950ba134c15d8f5ee2769c599. Donations received will cover the costs. Any leftover funds will be split between the Web3 Foundation and Giveth.
Related links:
POA Network
POA Network github
POA Network documentation
POA Network Block Explorer
POA Network Block Explorer github
POA Network’s Token Wizard
POA Network’s Telegram
Trust Wallet
ScalingNOW! interview #1 with Björn & Max from Parity Technologies
ScalingNOW! YouTube playlist
ScalingNOW! chat on Riot
Web3’s article on ScalingNOW!
Giveth
Interview transcript:
Griff: Thank you for joining the second edition of ScalingNOW! Today we have Roman and Igor from POA Network. They are a perfect followup from our first interview with Parity because they took Parity’s bridge tech and customized it for their own use case and have been really pushing forward the cross-chain crowd sale and doing all sorts of cool things with bridge chains. I still don’t know what to call these things, I want to call them side chains but I guess they’re something different. So now introductions. I’m Griff from Giveth, I’m super stoked to figure out how to scale for my own DApp. I’m stoked to show everyone else my own research.
Quazia: I’m Quazia with Giveth. I work on Social Coding. I’m out here trying to get everyone to open source everything.
Igor: Hi, I’m Igor. I’m the technical lead of POA Network. I’m responsible for orchestration for all processes we have. We’re mostly an R&D company.
Roman: Hi, I’m Roman Storm. I’m responsible for writing smart contracts and javascript DApps at POA Network.
Griff: So you guys have a lot going on at POA Network. You have validators that are US notaries. You have a really interesting governance structure. You are building lots of cool chains that you can link to everybody. But I really want to focus on the stuff that will help DApps scale now to six months. For the audience, we’re going to be focusing on competent Ethereum devs who are focusing on side chains as a strategy.So let’s talk about Parity Bridge. You guys made the decision to take their open source software and run with it. I’m curious about how you came to the decision that the Parity Bridge was the right move.
Igor: Let’s explain what POA Network is. It’s an open network, public, it had a crowd sale. People invested their ether into tokens on this network. It’s based on POA consensus created by Parity. We added our implementation of a 10-digit stake meta-consensus and on-chain governance to manage this network. So when we started to create it, we understood that there are lots of gaps when you want to start a public affiliated network — who are the validators, how are they selected, how a third party could prove they’re a real person, how to connect all these dots? That’s how we figured out our governance model and meta-consensus. We implemented it and launched. Why do we need one more Ethereum-based network? It’s not because we just want to be owners of a network. It’s work for the community, we organized it for a reason.
One of the ideas which I like about sidechains, especially Ethereum-based sidechains, is that they can be connected. There are several approaches to have so-called fourth-generation blockchains where blockchains can be connected by something. It can be a relay chain like in Polkadot, it can be a hops like in Cosmos. I like the relay in bridge chain. It was introduced to me by Peter from Web3 Foundation. He told me to try it out.
When I looked at the diagram, I saw that it is something we can use if we can add some parts that we need. If you have two chains, what do you transfer from blockchain to blockchain? Let’s transfer some native currencies, let’s make an atomic swap. Let’s exchange one bitcoin to one litecoin. We saw some examples, it’s not very interesting from the idea of scalability. You can build something like cross-chain decentralized exchanges with this, and it’s a big story, but for now not many use cases.
And so we thought, “What’s clogging the Ethereum network?” At that time it was cryptokitties and ICOs, gas wars. Because we had an open source product, ICO Wizard, and people used it to create their own tokens and crowd sale campaigns, we thought maybe it’s possible to use the Ethereum network but have your token on a sidechain. You use the main network to raise funds because there’s lots of investors and because it’s connected to all exchanges. But after you have your token, you have to deliver your utility. And you have your computations, and computations are expensive. So we decided we can raise funds on Ethereum network but create our token, or part of our token, on POA network. And we decided to integrate Parity Bridge into our product, ICO Wizard, and the best way to test is in our own crowd sale. So we added support of ERC20 to the right side of the bridge.
Griff: What’s the right side of the bridge?
Igor: In this case, left side is the main Ethereum network. On left side the bridge listens to events, on the right side it creates transactions. So on the left side we used our ICO Wizard contract. This contract intermediates events, and on the right side we created transactions. These transactions, like a multisig transaction, if you have a requirement for three transactions to mint a token, if three instances of the bridge sign transactions, this token will be minted. So we implemented ERC20 support on the right side of the bridge. The result of this implementation that you watched on my YouTube video, it was really fast and very exciting. And it’s all in the UI and it’s all working, you don’t need complex structures, you don’t need additional cryptocurrencies, relay chains. It’s like trade agreements between countries or companies. From one chain I’m going to supply this token, on this other chain I’m going to issue this token, and you set up this bridge. What do we need to make it useable? We need to create strong use cases. We didn’t find it yet. For us I built it to move part of an already successful ICO from Foundation network to POA network, just a small part of it. I think this is a possible strong use case.
Griff: So if someone has an ERC20 token that they want to do a DApp with, they can link that ERC20 and move some transactions to POA network.
Igor: Yeah, and this use case would be very useful. And we already have some projects, they can use some software or ideas. We have a use case for crowd sale. They think “how can we use POA Network?” One example is Block Array, a project that raised $12m. They plan to move part of their token from Foundation network to POA to offload computations and make them more scalable. If POA is expensive, you just move to another network. And it’s not just about price, too. If you don’t like governance, you can move from network to network. Let’s say for some reason POA Network gets slow, it’s possible and token holders can move their tokens from network to network. But for this we need a culture of bridging, from moving from place to place.
Griff: This is a very important discussion, but I want to bring this discussion back to your experience with the bridge. You guys took Parity’s code and retrofitted to your own purposes. I think a lot of projects may be looking to do this. How did you do this, how easy was it, will your bridge wizard make this easier for other projects in the future?
Igor: Integration with new projects and teams is a period of figuring things out. Luckily we have good relations with Parity team, this is one of the reasons we decided to be a contributor, we plan to contribute to Parity vision and bridge vision. The good thing about working with Parity is if you have a technical question, it will be answered. And if you have a contribution, it will be accepted if it is beneficial. So that’s why I like this team.
Griff: How was working with the code? Did you make a lot of changes?
Igor: When I first saw it, it was just a diagram. Some of the diameters didn’t work. We did pull requests, some were accepted. I was happy with it and now we are experimenting on our side but we plan to contribute back. We think we have practical use cases, because we have a network and we need to leverage these use cases. First use case is with cross chain crowd sales. Second use case is how to connect a token on this blockchain to exchanges. If you have a token on Ethereum classic and want to list on a major exchanges, you have a tough time connecting. Same if you have an ERC20 token on POA or a new network. This year we’ll have lots of new side chains and they will all have the same problem. So first, how to connect their blockchain to exchanges and second how to connect their tokens on the new blockchain to exchanges. It will be crazy hard for them. The obvious solution is, you create a token on your blockchain. For example, someone created a crowdsale on POA network and 100% of their tokens on POA network, but they need liquidity, so they transfer this token from POA to main Ethereum network, and they block liquidity on the right side of the bridge and unlock it on Foundation network, and once it’s unlocked they can use a decentralized exchange first, which is simple and requires less time to get your token on an decentralized exchange, and you can connect ERC20 tokens to any major exchange. So it will help to run these tokens on sidechains but also to have liquidity for them and leverage visibility on the Ethereum Foundation network. And it’s good for what reason? It’s good because all these projects will stay in the Ethereum ecosystem. And that’s our end goal, to have the Ethereum network be the major amplification platform. In some sense like Microsoft.
Griff: All those guys see the scaling on the wall, everyone uses that as an excuse for not doing stuff. If they can make their own POA network, then that excuse disappears and we have a whole fleet of solidity developers working on open source protocol, being funded by corporations. How funny is that? That sounds good to me. So just to recap, as far as modifying the bridge, you guys modified it a little, but you’re pushing those changes back upstream so everyone gets to play with it?
Igor: We plan to push more. It’s a process we’re setting up right now. We have a roadmap, for the roadmap we have an idea for connecting one more POA networks with each other or with the main network. But the first step is to launch the network, prove governance model, trusted ceremony.
Griff: What does it take to run your own network? You have to deploy your own blockchain, it’s a POA network, you have a roadmap with three validators, you’re going to do more. I’m interested in the process of setting up your own chain, how you did it this time, how you would do it if you did it again.
Igor: Don’t do it in your home. Sometimes I woke up at night and wondered, “Is it here or not?” When you put your ERC20 token on the mainnet, you worry much less about the infrastructure. First of all, this type of consensus and meta-consensus has never been used or tested in public networks, so we are the first Ethereum-based federated consensus, which is trustless because validators are independent and not affiliated with each other. So one big concern was about security audits. We ordered six security audits, two of Roman’s smart contracts, and two from very well-known companies.
Griff: I saw Bockie did it, he’s a great auditor.
Igor: And Alex is also a good one. We also ordered a security audit of our Parity implementation of this authority consensus from a very well-known security researcher. We basically ordered a security audit for our mobile wallet for this network, Trust Wallet. We also ordered DDOS test for our testnet. We figured out how inexpensive it is to DDOS a public affiliated network if you don’t take measures beforehand. So those reports are publically available. The second part is doing something no one’s done in this space. It’s not easy. But now we not only launched our network but provide our tools to anyone who wants to launch a POA-based network. So if you want to launch a POA-based network, you have our documentation, you have audited smart contracts, you have our history of how we modified our consensus, you have our history of hard forks.
Griff: How many hard forks did you have? Were your hard forks intentional or accidental?
Roman: So on our test network, we had 3 hard forks. They were not intentional, we just found a few minor issues that were found during the test of our governance model within the test net of our test net validators. We have a process of our validators in order to make sure the validators understands our governance system and understands the role of a validator. We would like to invite them to our testnet first, and then the testnet we do a bunch of interesting things like every validator has a three-piece validator key, payout key, voting key, and we have this governance system that allows you to dynamically, like let’s say let’s create a ballot for adding a new validator and then validators can participate by voting with their voting key, and say “okay I vote yes, I would like this validator to be accepted in our network.” And that’s basically overall our governance. So the reason we have hard forks, there were some minor issues in the smart contracts that were not found by anybody else before, and that’s why we had to hard fork in order to fix the issues in the main POA consensus contract.
Griff: So the hard forks on the main network were intentional to fix something. But the hard forks on the testnet were experimenting.
Roman: The hard fork, all we did in our case, was just fix the issue in the smart contract and then move all the validators forward to a new smart contract which would fix the issues.
Igor: But all clients will not work without updating speck json. This is exciting for us because we tested the hard fork on live network with about $60m value. And it successfully hard-forked. And now we have this experience and we can leverage this experience for new transfers. Because if you start the network and have never experienced a hard fork, you don’t know how to organize it, and it’s a new process. We plan to make this process more regulated. In enterprise software, there’s a strategy called chaos engineering, Netflix or Google, they shut down servers from time to time just to see how it works. Hard fork gives you lots of adrenaline. How to backup a blockchain, how to restore it?
Griff: So what you’re saying is running your own POA network — don’t do it! Don’t trailblaze as much as you’d think and try to use proven software, that’s the best strategy.
Igor: And also you need to understand that the world around you is not friendly, that you will struggle with a lot of problems, and also that community, if you’re building on Ethereum, that doesn’t mean the Ethereum community will fully support you. There’s some cornerstones in our community that prevent forks and sidechains. From our perspective it’s a stopping factor for horizontal scalability, and this is part of our efforts — how can we make more tools and require tooling to be more available to sidechain forks?
Griff: I saw you guys are on MyEtherWallet, they’re pretty awesome. I love those guys. Taylor and team are just incredible. Really I don’t know how they do so much in the space. In the background they’re always fighting phishers, they’re the background security space in the Ethereum space. They support you. So you have Trust Wallet, your new mobile wallet.
Igor: So it’s a new project started last year by a local developer in Silicon Valley. They started a fully open source Ethereum wallet, they’re open to forks and sidechains. So right now on the iOS version, it supports Foundation network, Ethereum Classic, and POA network. So it’s the main network, fork, and sidechain, the trinity. Also they support testnets and independent testnets. Sometimes an open source tool, they’ll support fork and sidechain, but they won’t support testnet of fork or testnet of sidechain.
Griff: It’s all open source, so if you guys put it on there, they’ll likely put it on there if you follow their game, right?
Igor: Yes and no. You can submit a pull request and it’s never been accepted. You can find this pull request for Metamask where there’s a pull request from us, a pull request from Ethereum Classic, and you can read that it’s a political decision.
Griff: Well that’s Metamask, but with Trust Wallet, if they support your test network then you’re good, right?
Igor: Yes absolutely, but speaking of Metamask they have this new feature.
Roman: So with Metamask they explained why they don’t want to accept any sidechains. But they’re working on some new exciting API. If I understood it correctly, they will allow DApp developers to switch networks programmatically, which will help a lot, especially me as a decentralized application developer, that will solve a lot of problems. However there’s some security concerns with it in my opinion. Malicious developers could enforce to switch the network, run an Ethereum fork with an EAP155 like not combined, and then they can do a POA attack, but I also saw a new issue into Parity that would be great if there is a like RPC meta duno, if this network is EAP155 compliant, which might solve the issue.
Griff: You were talking about pegging ERC20, I think a lot of people will want to go from ERC20 — they have a token on the mainnet — Swarm City, Aragon — they want to run a DApp on another net to do interactions cheaply, but still maintain their value and do right to the people who supported their project thinking it was going on Ethereum mainnet. So can you talk about exactly how they would be able to bridge to the POA network with their ERC20 token?
Igor: It’s not our main use case. Our main use case is how to convert native currency from POA network or from any sidechain to ERC20 token on Foundation network. This is our use case.
Griff: Do you think you would be able to support the other use case?
Igor: Absolutely. So basically with an ERC20 token, it’s the same idea. On the left side of the bridge, you have a contract and you send your token to this contract. And this contract creates an event, and this event basically says that you can’t send this token, has a base amount of token, and if you specified on the right side of the bridge that you will unlock — it can be different strategies. With one strategy you mint new token, but it can be risky for many reasons. We think it should be a consideration how much tokens or coins validators can transfer daily. And so one idea is if a token has a fixed supply, like most tokens, we can create the same supply of these tokens on the right side of the bridge and can unlock or assign new owners to transfer tokens. So if you transfer on the left side, that means you locked on the left side, and the contract which locked an immediate event, validators listen to this event and they created n out of n transactions, which is specified from your mutisig strategy, and smart contract on the right side accepted all these transactions, and if quorum was reached, n out of n, it assigns the tokens on the right side of the bridge to the same owner. Or transfer data to the new owner. So this is the same strategy, and we plan to implement a UI for this, I can share a link with our vision of how it should be.
Griff: Send me a list of links. That doesn’t seem that complicated honestly. Waves did that, right? Something similar with Ethereum — a cross-chain between Waves for their token.
Igor: It is a question of tooling, blockchain explorers. If we can have a blockchain explorer that will work with all sidechains and forks, you can search for your account and see how your token distributed across different networks, or you can have an aggravated, it’s more interesting for our system.
Griff: You guys are building a block explorer, right?
Igor: Right.
Griff: There are a few other open source projects that are pushing the block explorer. In fact the old lead dev for MyEtherWallet, Kosola, he’s got one that I’m pretty excited about, but he hasn’t been able to pull off internal transactions yet. And there’s a few other people working on open source blockchain explorers, but there’s still this issue of “how do we trace internal transactions?” I feel like that’s the big barrier. Is that what you guys are experiencing too?
Igor: No, it’s on our roadmap. We know how to make it. The biggest problem is not implementation but someone needs to take this responsibility to make a full-featured blockchain explorer, on par with Etherscan, with all the features needed by developers, and take it from point A to point B where it can be launched with any compatible network. This project should be open source, scalable, and this is a part of our strategy. We have enough resources to make it open source and not think about business model. We will not put advertising, any data selling and so forth. One of the important part is to make it open to the community, the blockchain explorer metadata should be possible to make a dump or store it on some decentralized storages. You know like with a source of smart contracts, you have Swarm link there, but it’s not aggregated and possibly subject to manipulation or loss of data, so we think this explorer should support data extraction and access to all possible on-chain and off-chain data stored on this explorer by API, so that’s our goal.
Griff: Wow.
Igor: We started to work with a local team. They are helping us with resources. We were excited about this project. Now the code of this explorer is not open, we want to finish our beta version, and publish it to POA network.
Griff: So does the blockchain explorer you have right now show token transfers? What’s its state today?Igor: Not today, it’s on our roadmap. It will be in March.
Griff: I’m pretty excited. Talking about scalability — the reason why Giveth moved to Rinkeby and maybe to Kovan is because it has an Etherscan. This is, in my opinion, what is slowing down ETC, Ubiq, Expanse, POA, Tomo, Ella, all these guys that have an EVM who want to use it. I can’t run my DApp if I can’t tell people what’s going on when I call a function.
Igor: That’s what we want to solve. That’s the main thing.
Griff: Ubiq has three block explorers, two of which are community run, ETC has a couple, and I’m sure that those devs, maybe we just need to get everyone in a room together who’s working on these open source block explorers and have an information swap.
Igor: So that’s why we decided to work with Agile team.
Roman: We work with (inaudible) that’s working with us on open source block explorer, and we meet with them every week, a retrospective on what went well, what went wrong on our implementation of the explorer.
Igor: What I want to add is this project is everyday work, everyday standups, it’s very important to us to have a fully compatible, full-featured clone of Etherscan that will be available to any Ethereum fork or sidechain. And it’s a very ambitious project.
Griff: I want to move to some Q&As to the crowd. Niraj says, “What kind of partnership could you be seeing with Block Array, and how will it affect both sides of growth?”
Igor: Block Array used our open source wizard to create their crowdsale. So after they did funds we did a security check on their live smart contract to prove that their token contract is safe. So it’s a good story of collaboration between two projects. We plan to host part of their token on POA Network. We will use Parity Bridge with our modifications to transfer this token. With Block Array, basically one of the first projects we’re working on. It’s a great story because it’s a story made by people. They used software made by other open source teams and they started to see some problems and they understand how they can help each other. We believe in that logistics, where they’re trying to make some changes. It’s very important. We’ll continue to work with them.
Griff: That’s cool. Are they’re other groups you’re working with?
Igor: We’re a new blockchain, we’re solving all these problems, we have 100,000 transactions/second. We’re not thinking about this. We’re thinking what do we need to have horizontal scaleable Ethereum reference system? How can we make a POA-based network connected by bridges without having other solutions? How to make this possible and how to make our network survive? So these are the two main questions we have now. We’re more focused on how we deliver, not how other people deliver on our network. If you start to think about cases of third parties, it will be like consulting for them. We have a network, and we need to think, “Okay, there’s a problem. There’s so many projects that we can leverage what we’re doing.” We don’t need to find exact people, they will find us because that’s the life structure of the ecosystem. That’s how we’re looking for partnerships, it’s good if you know what you’re doing. It’s easier.
Griff: Sometimes it’s easier to say, “Hey, let’s get our own shit covered,” and then bring people in as we can. With Giveth there’s a lot of people who want to use our platform, and I’m sorry, it’s not ready yet. It’s like on an airplane, you’ve got to put your mask on first.
Quazia: So the open chain explorer, is that the chain explorer repo?
Igor: It’s not open yet. If you’d like to participate, send us a message. The idea of this project is to have it open sourced. But we decided to make an announcement for the release because we want to make it valuable to the community before we open source it. You have expectations about the explorer, if you open it now it will not meet those. We want you to say, “Wow, this is what I need.”
Roman: If you want to contribute to the explorer, make sure you know how to use Elixier.
Quazia: At one point you mentioned the possibility of integrating support beyond ERC-20 for the bridge. Can you talk a little bit more about that and what reasons you saw for doing that?
Igor: It’s a question of the community asking, “Okay, you are working on bridges. Do you have a solution to the cryptokitties problem?” Cryptokitties is a non-fungible token. The idea was to build a use case and have a structure working on this use case. In this case you have ownership of this token on one network, and a computation for this token on another network, so ownership can be on Foundation network and breeding or some other possible interactions between this token can be on a POA-based network. So it’s on our pipeline, but it’s in the form of research. And we probably will prepare a use case and publish it in February.
Quazia: What unique challenges have you found with trying to transfer non-fungibles through relay?
Igor: Unique challenges here are when you’re doing something for the first time, it’s not easy to figure out what you need to do. There’s no exact problem to solve. There’s cryptokitties on the main Ethereum network, but how do you transfer them? You cannot transfer them now. If there’s another game like this, let’s create a new game where there’s one part of a cat on one network and another part of a cat on another. Schrodinger’s cat.
Griff: I think that’s ERC721, right? Is that pretty solid? The non-fungible token standard solidified yet?
Igor: In this chat here we don’t have our researcher who’s working on this, but it’s a solid thing. Cryptokitties it’s not always 721, it’s also additional contracts. The standard itself is a great way of bringing more traffic to sidechains because lots of collectibles and non-fungible assets, you have to think about them. Lots of real world objects.
Quazia: It seems like it would be good to at least look into — I think I saw some progress on someone making a nonfungible that can be stored in ERC20 wallets. But I’m not sure how you would do that. You might want to poke your researcher on that. There might be someone who knows more about that in the audience.
Griff: One of the ideas of this ScalingNOW! video series is to really get everyone to connect. So if you’re in the audience, don’t be shy to reach out. These guys have a Telegram group with 8k people, it’s huge. You guys have a huge network. You are doing really cool stuff.I hope you guys can save the date — March 5 and 6. On the 5th, we’re doing a smaller group brainstorming on ScalingNOW! in Barcelona. Then on the 6th it’s going to be a little more open but still invite-only, DApp teams can send applications. (Interested? Apply here.) We’re creating the event so we can get all the DApp teams who need scaling solutions so we can throw you all in a gym with some tables or something and see how it works out. It won’t be so formal. But I really hope you guys can show up because you guys are real trailblazers in this space.
Igor: Can we sponsor it?
Griff: No it’s a free thing, we’re Giveth, we’re not trying to make money.
Igor: We’d love to support it, to help organize it.
Griff: We have a group on Riot called ScalingNOW! Come there, we’re doing a lot of the organization there.
Igor: It’s a great thing that you’re doing this type of event.
Griff: I know Giveth needs it and I know a lot of other teams need it, too.
Griff: If you’re here for scalability, see you later. Let’s now talk POA Network. I would love an overview of the governance experiments you’re doing on your project.
Igor: Let me explain why we need it. So when you start a new POA network, you have to select some validators. Who those validators are, who the validators are on Kovan network, how they were selected. And what is a lifecycle of a validator? How they are added or removed? Who can vote out this validator? So those questions we raise for ourselves. So first, who are the validators? We thought it would be good to use existing trust mechanisms. One of the good trust mechanisms here in the US is public notary. One of the things that’s good about public notary is that it’s relatively easy to get. It proves that you are a good person, a good person which means you don’t have a criminal record, which is proven by a third party oracle, which for us is the US government. They oraclize this information on the Secretary of State website. You can find my first name, last name, proof of my physical address. So they are oraclizing my public address. Also when you get this license, you have to give an oath and swear that you will do this public duty and also that you will keep your physical address in place, and if you move somewhere you have to update this physical address. And any concerned third party can ask you to prove your identity. You cannot say no. You can say you’re on vacation, but only a few times. The third party can vote you out through a legal method. So we decided to use this trust mechanism, but it’s possible to find individual validators with different professions for different types of POA based networks. So we have this individual validator, how to prove different parts of the identity system, and second how to add them. So we need some kind of trusted ceremony, Roman will explain how we started this network from first validator with a special role to a group of validators. And then second, after we set up this network, it’s not our network, it’s a network of validators. How do they manage themselves? They’re not software developers, but they need to have tools which can be audited by the community and they can be sure that they’re doing what they’re intended to do.
Roman: So when the new POA network starts working, there is one validator master of ceremony. And we decided that master ceremony is allowed to add up to twelve validators and it has to be done in a very secure and a processed way.So the master of ceremony creates those twelve keys, and he gives those keys to the validators. However, we don’t want the master of ceremony to know the keys. So we created a DApp, it’s called a ceremony DApp, where every validator, when the validator receives the initial key, he can exchange that key into three other keys — a validator key, a payout key, and a voting key.So why do we have those three types of keys? So with the first validator key, that allows you to validate blocks on your Parity node on your hosting provider. Let’s say we don’t want to store all the rewards on this node and that’s why we have a payout key. Every hour or so, this node will send money that were rewarded to this payout key, in case that node was hacked. The third type of key, the voting key, where you can easily load it in Metamask, and this key will only be allowed to participate in ballots in the governance systems. So how does the governance work? Basically right now we have three types of ballots. The first ballot is keys management. So let’s say I’m a validator and I lost my keys. I can issue a ballot where I can ask any other validator to create a new ballot for swapping my voting keys. Or we can add a new validator. Say a new person, he claims to be a US public notary license, and he wants to validate our network. So I as a validator can create a new ballot and all other validators will vote using the DApp.
Griff: So the people who don’t have keys can propose a ballot?
Roman: Creation of ballots is only authorized for validators.
Griff: So if you lose your validator keys, how do you create a ballot?
Roman: You ask other validators to create the ballot.
Griff: Just call them on the phone?
Igor: It’s part of what we call social consensus. If you cannot resolve it on-chain you have social consensus. This social consensus is a part of cryptocurrency consensus because voting keys are a part of consensus. If everyone lost their voting key you would need to do a hard fork and replace consensus, so it’s a good thing. It’s deterministic, it’s not that someone shows up and creates a ballot. We call this self-governance of validators. We have a process where validators can swap their keys and add new validators. It can be mixed roles.So let’s say the role of master of ceremony, he doesn’t have voting rights. In our network, I am this master of ceremonies, so I created these first initial keys, and I distributed to the validators. And it doesn’t mean that I had access to validator keys, right? I create an initial key, and this key creates new keys, I don’t know the keys. After the ceremony, all these keys are not known to me.
Roman: For the second type of ballot — right now there is a minimum threshold of three votes in order to make a decision on the ballot. So let’s say we grow to 25 validators, then we definitely have to change that number. So let’s vote to have a minimum of six votes to have a ballot have any effect.
Igor: So changing the threshold.
Roman: The third type of ballot is changing the sum of contract addresses. So let’s say we come up with some better idea for our ballot contract, let’s say we have some new developers, we add more features to our smart contract, validators can vote for their new consensus mechanism.
Igor: And for example, one thing we’re working on right now is called DPOA, a delegated POA. So with the first twelve validators, they’re selected by first come first serve, but they have to meet some requirements. The next validators, we need 25 validators. The first 12 validators can be selected by me, like some Ethereum testnets, they’re all companies in Singapore. So that’s why my suggestion to validators is to add at least 12 validators, plus one more validator. So this validator will have a consensus about which validator they should add. And after it’s good to empower token holders, so token holders will be able to deposit tokens, there’s an additional coin log voting where you can put your coins on one outcome, and if this outcome happens, your points are locked, only on a successful outcome. And so we’ll implement it, and it will require an update of our meta-consensus identity at stake, but we don’t want to make a hard fork. So where we can utilize this third type of ballot where we don’t need a hard fork but we can update our meta-consensus without hard forking. So less changes.
Griff: That goes into a question Niraj has about being able to get POA tokens. You had an ICO but there’s no way to get the tokens yet.
Igor: Tokens are distributed to participants of the pre-sale. It’s not a large group of tokens, 122 accounts purchased all tokens. But some of them were syndicates, groups. So we have about 1300 active accounts right now. So you can get some tokens from them. POA is not on exchanges. For an all-new blockchain, it’s complicated to get listed. But our community is asking this all day.
Griff: That’s the 8k people in your Telegram group.
Igor: It’s important and I know it’s important to people who contributed to the success of our network.
Griff: Niraj wants to dev on your project but he can’t get any tokens.
Igor: For now he can use our test network. We have a faucet. Our test network is supported.
Griff: And if he can find someone with tokens, it works on MyEtherWallet. So you can actually send tokens via MyEtherWallet.
Igor: Or you can find me in person. Or the validators can give some.
Roman: You can reach out to validators, find them on social networks and ask them.
Griff: It’s hard without a market. It’s really nice to have this decentralized value estimator, which is the market.
Roman: I want to add for the governance, validators can also vote to remove validators. So let’s say if I find out that some of the validators has an expired notary license, or let’s say the validator decided that we don’t need master of ceremony, they can create a ballot to remove a validator.
Quazia: So when I go find a validator to bribe for some POA tokens, and they get knocked off, what happens to my POA tokens?
Igor: Validators cannot modify transactions. They can only include or not. For security, we have an audit of consensus and if 51% of validators are good actors, consensus is secure. So finality of chain is not instant, it’s a number of validators multiplied by block time. Right now we have seven validators and five seconds block time. So finality of the network is 35 seconds for now.
Griff: That’s pretty good.
Igor: For Ethereum network, Coinbase has 50 blocks multiplied by 15 seconds, 12.5 minutes. So that’s our security model. Validators, if they’re many validators, there can be some security risks for them, personal security risks. But with increasing amounts of validators we decrease the security risk. Speaking about public notaries, there are 4.7 million public notaries in the US. We can find more, there’s some possibilities with some regulators who can be interested in what we’re doing here.
Griff: So if Quazia assassinates one, we don’t have to worry about that because there’s 4.7 million other options.
Igor: Well it will be a problem for each individual validator. We’re trying to make less incentives for attackers. So you can hack a validator’s node, but if you hack on the wrong node, you cannot break conesus. You would need to hack many nodes. So you can hack our centralized depository, but we have some security practices, validators know that they don’t have any incoming connections. They don’t pull anything from github, a centralized resource. So we’re thinking about this and how to mitigate risk from validators. But at the end of the day, they’re the keepers of consensus. And there’s a risk/reward model. If you’re in this, you have to take some risk.
Griff: I want to hear soft timelines, especially when your token might hit an exchange. And also when are you going to move from three validators to twelve. I also want a list of all the projects you’re working on.
Igor: We cannot answer when the token will be on exchanges. Our roadmap is published on our website. Right now we’re working on the stability phase. We’re adding more validators. Right now we have seven. Ceremony is onboarding. Before hard fork we had three, hard fork happened Monday, now we added four more. At the end of the week we will have twelve validators, and the twelve validators start to use governance DApp to add new validators using voting. So they will propose new validators and those people will not be added by me but they will be added by validators. And they will do it until they reach 25 validators. So this is for the first network.
Griff: You said you were going to peg it to an ERC20 token potentially?
Igor: Yes so this is our plan for March, to peg POA token to an ERC20 token, and to make it listed on decentralized exchanges on the main net. So this is our plan for March.
Griff: You guys are pushing forward pretty quickly. So your list of projects — you’ve got this block explorer project which is pretty exciting.
Igor: Explorer, ICO wizard — we’re going to name it the Token Wizard because of some regulations. This is the only free tool to create a token and crowd sale campaign on the client side. So it doesn’t require any server-side, only application on blockchain. So we will continue to work on identity DApps. We have several DApps that are simple to explain, like proof of physical address, but not easy to implement. So we have proof of physical address which is working, and on our roadmap we have proof of bank account, proof of phone number, social network. So basically it’s like keybase verification, but onchain. There are some projects which promise to do the same, but they’re not delivering as independent oracles. So our idea is to have these identity DApps as independent oracles. So this is the main part.
Griff: So is Trust Wallet considered one of your projects?
Igor: Trust Wallet is developed by an independent company. We plan to use the DApp feature of Trust Wallet. They will have the DApp browser, it’s in beta now. And all our DApps for governance will be integrated with Trust Wallet. Also we going to work on a new consensus algorithm for our network. Right now our first candidate is (inaudible) because it’s asyncronous bft because it works on a network with slow connections and it has censorship protection, which is good for POA network. Right now all validators have known identity, so not a lot of tools for censorship protection from regulators. But using this, adding signatures, we can add this feature to the consensus. And also our plan is to launch one more POA network.
Roman: We’re also getting a lot of professional rust developers who will help us with our POA bridges.
Griff: You guys are doing really incredible stuff, I really appreciate you coming on. I’m so happy Parity told me about you guys. I’m really impressed with the trailblazing you guys are pushing forward and doing a lot of the dirty work. I’m hoping you guys can save a lot of other people from dealing with the same issues and we can all build this scalability together. Thank you so much.
Quazia: So you have the block explorer that you’re doing work on. Of the tools that you only see strong closed-source options for currently, where do you see the priorities lying for providing open source alternatives? Not necessarily projects that you will take on but general ecosystem solutions?
Griff: Like Metamask, for instance.
Igor: Yeah so Metamask, number one. Basically all ConsenSys products. Truffle, right? And also Infura. We asked Infura, “Can we connect our network?” and they said, “Your network means what? A test network?” “No, our sidechain.” “We don’t connect sidechains. We only connect the main Ethereum network and testnets. Other chains, we don’t work with them.” So it’s possible to implement this type of infrastructure, lots of interesting tools to achieve what Infura can do. Terraform, and also we can make it without selling data to third parties. So all ConsenSys products. And interesting that people from ConsenSys don’t understand this kind of political issuance for startups. So they work inside the system but they don’t understand that the system is protecting Foundation network from sidechains and forks. So this is one part. The second is closed source stuff like Etherscan, this is the biggest thing we need to fix.
Griff: Truffle — Giveth uses our own version, we have our own testing and deployment suite that Jordy just kind of built before Truffle was built, so we just keep using that. And then so many people are working on open source block explorers with a lot of good incentives, so I feel like we can get a lot of those things done, even in the next 3–6 months. At least make major pushes for them. That’s pretty promising if those are the only big worries.
Igor: Yeah, and there’s no way to share some of this work towards these efforts. We need some publicity for what we are doing, like some independent resources. Who sponsored Week in Ethereum, do you know?
Griff: It’s ConsenSys and Status. Evan Van Ness is a good dude. He’s relatively independent. Like of course he’s taking money from these guys. The real thing is that especially we’re such a global ecosystem, there’s quite the epicenter in Europe, the distribution of ideas is really weak, that’s why I’m doing this show. Obviously I could just solve Giveth’s issue, but I see bigger issues that everyone’s working on their solutions to these problems, and we just need to get the information out there. And I don’t think it’s that much of a conspiracy, it’s just that we’re all so busy. There needs to be connectors. I know Reese is doing this Ethereum comments group. He’d be great to connect to on this issue as well. And TrueBit as well, Robbie and Sina are going around interviewing people about problems, maybe I can connect you. There’s this L4 group that’s trying to solve Ethereum issues internally, where do all the whales need to put their money to incentivize open source block explorers, maybe even lobby the politics a little bit so there isn’t this closed attitude. In the end we got to remember that we’re building a new world, revolutionary tech, and the more times people say no, it’s just slowing it down. I think there’s a lot of support there in the community itself, and we’ll get there. Thanks guys!
Igor: Thanks for inviting us.
Quazia: We’ll be sure to check your GitHub.
***
See the previous interview, Bridge Chains with Björn Wagner & Maximilian Krüger from Parity Technologies.See all the ScalingNOW! interviews.
Learn more about Giveth and the Giveth Future of Giving DApp.