PegaSys – Enterprise-Grade Ethereum Protocol Engineering
We’re joined by Rob Dawson, Head of Product at PegaSys. PegaSys is the protocol engineering spoke of ConsenSys, and the team building Pantheon, a Java implementation of the Ethereum client. The Pantheon client was built from the ground up as both a mainnet, and consortium chain client. Written in Java with an Apache 2.0 license, it benefits from being easily accessible to enterprises, who predominantly use that language. The PegaSys team has built additional features into the Pantheon client like privacy, permissioning, and the ability to deploy chains on IBFT, a consensus algorithm better suited for consortium networks of up to 40 validators. Working closely with other protocol teams (Geth and Parity), and being a founding member of the Ethereum Enterprise Alliance, PegaSys is also working towards Ethereum 2.0.
Topics discussed in the episode
- Rob’s background as an enterprise Java developer and how he became involved in the blockchain space
- The role of PegaSys in the broader ConsenSys ecosystem
- The Pantheon client and why they chose to build a new Ethereum client
- The case for Java and why enterprise has a preference for this language
- Pantheon’s unique features of privacy, permissioning, and performance
- What is Istanbul BFT and how it differs from Parity POA and Tendermint BFT
- The types of applications which are better suited for IBFT
- The Ethereum Enterprise Alliance (EEA) and PegaSys’ work on standards
- PegaSys’ work on Ethereum 1.x and Ethereum 2.0
- The team’s recently announced certification program
Sebastien Couture: Hi, I’m here with Rob Dawson. Rob is Head of Product at PegaSys and PegaSys is the protocol Engineering Group within ConsenSys and their role is to build the protocol. And so they’re building an Ethereum client within ConsenSys and an Ethereum client that’s actually targeted to Enterprise. Hi Rob. Thanks for joining me.
Rob Dawson: Hey, it’s a pleasure.
Sebastien: So let’s start off by looking a bit of your background and how you got involved in this space.
Sebastien: You’re saying that cryptocurrencies are not real crypto.
Rob: Yeah, they’re crypto but real crypto is cryptography, which is you know, that’s what you should be talking about when we talk about crypto.
Sebastien: Oh sure, of course. Yeah, obviously cryptocurrencies use cryptography. I think that’s why people call them cryptos but jokes aside, looking at it from a security perspective, you know, when you came into this space after I believe you have a background working in Enterprise and building Enterprise software, what are some of the things that may be pleasantly surprised you about how the community was building software or were the things where you just kind of face palmed and was like what’s going on here? How are people what are people working?
Rob: Yes, so it’s you know, the open source sort of nature of everything was really really great to see and I think that’s probably the first part the fact that when you look at Ethereum in particular the core devs that are there which you know, it’s not like a secret society. It’s a pretty open core devs network where you can reach out and be a part of this community and be able to contribute so easily is pretty amazing. On the flip side some of the facepalmy sort of stuff might be sometimes it feels a little bit like the wild west still in terms of building robust software. I think there’s been projects which their CI sort of being read has been something that you know failing CI for me as an Enterprise dev and just as a product focus vev feels like as soon as you see a bill being read that’s that’s like warning bells, go change it fix it make sure that it’s passing its test make sure that it’s working right whereas I’ve seen clients and and software that that has been in at that sort of red state for months at a time.
Sebastien: Okay. Sorry what’s CI?
Rob: Continuous integration.
Sebastien: Oh, okay.
Rob: Though some of the things in basic things that you as a software dev and an experienced Enterprise dev you expect there to be there. So making sure that there’s a good automated test suite that’s making sure that the code does what it’s meant to do if someone changes something and behavior and it’s going to break things you actually get told and find out so I think elements of that are there but it’s not as robust as would make me really excited.
Sebastien: Okay. Why do you think that that’s not there? I mean if those are sort of like, you know already established things that people build into their software building process.
Rob: I think parts of it the the ecosystem being driven by research and being like people that are excited about the possibilities of technology and so moving quickly from a proof of concept to it’s actually being used and so I think some of us just the I guess the maturity of the ecosystem.
Sebastien: Okay. Yeah makes sense. How’d you get involved in ConsenSys?
Rob: It’s definitely just it was a referral. So I knew someone who was working here. They said come along and took a bit of a took a bit of a look. I really was not looking to change what I was doing, but I’m glad I did.
Sebastien: Okay and so a couple months ago, we had Joe Lubin on and this was I guess in the middle of this moment where a lot of companies were downsizing and ConsenSys was also downsizing, you know, have you guys felt that within your spoke and sort of broadly in the organization? How do you how do you see the organization changing over the last few months?
Rob: Yep, so I guess in terms of our spoke we were fortunate I guess that we weren’t directly impacted. I know a number of people that are no longer at ConsenSys and it’s a shame that they aren’t but I think overall for ConsenSys it’s been a good move. I think it’s sort of allowed to be the corporate corporate background of me says tightening their belts and and all those sorts of those sorts of glib statements, but it is a little bit of that and so I think helping to focus on being almost a bit more of a grown-up company while still keeping that a lot of the great experiments that Joe’s always had there so the decentralization of the organization is still fills that roots very strongly.
Sebastien: Moving now to PegaSys. What’s the high level goal of this spoke?
Rob: There’s a vision and mission which really boils down to the idea of making sure that we remove the friction in in having transactions happen. And so the way you’re going to do that in Ethereum and that’s being a part of ConsenSys that’s where our natural sort of effort is going to be focused around Ethereum is making sure that you’ve got a really top class Ethereum client. And so that’s making sure that it’s available to use by everyone giving it an open source license. So we’re Apache 2.0 licensed piece of software. So making sure that that’s easy for Enterprises and anyone to be able to use, making sure it’s really high quality Enterprise-grade software. And so it’s got that the continuous integration sort of backing at it’s got the tests that are happening to help give us the confidence that the protocol that the client is of the right standard and of the right quality and then adding in some of the Enterprise features that are important for the consortiums and for those private kind of networks to be able to use, while also giving them that path to using mainnet because I think the Ethereum mainnet is the future be it the current Ethereum mainnet or Ethereum 2.0 mainnet that’s that’s the future and so I think we see building out the capabilities for our clients and our software to work well in both that Enterprise context and then mainnet context as well.
Sebastien: Okay. Yeah, well, we’ll get to that as the show progresses but staying on PegaSys a little bit. What is your role sort of in the broader ConsenSys community and also in the theorem space? What are your interactions with other teams and other client teams and protocol engineering teams out there?
Rob: Yep. So we in terms of the ConsenSys context we work closely with a bunch of the other spokes to make sure that we’re both building the client and then any Enterprise features that we’re building that they fit in with the rest of the ConsenSys kind of tool chain, and so places groups like Alethio, Infura we work really closely with, we are working with Kaleido as well for that sort of Enterprise hosted hosted version. We sort of have done done work with Truffle to make sure that we work well with Truffle as well. And so it’s kind of working and partnering with the rest of the parts of ConsenSys to make sure that we’re delivering the best client. With the community, there’s a few different spots where we really see it sort of flesh out. And so we’re part of the core devs calls. And so we’ve got, I don’t personally get to go too many of them because they’re in the middle of the night for me, but we’ve got one of our guys Dano is regularly on the core devs calls hoping to work together with the other core developers to ensure that we’re taking the Ethereum clients forward in a sort of consolidated fashion. So making sure that we keep the beautiful decentralized parts of Ethereum really strong while also helping to push forward and ensure that the protocol does grow to be the great protocol it wants to be. And then the last part then on a community is getting involved with the Ethereum research and we’ve got a very active team working with the, actually two active teams working with the Ethereum 2.0 sort of research efforts. So one of the team’s is very much on the sort of more sort of future theoretical kind of side and then another team is actually building out some of the early proof of set concept clients to help make sure that we’re actually delivering on Ethereum 2.0 that it doesn’t just become a more academic exercise that it’s actually shipping real working software that the people are able to use.
Sebastien: Would you say that within ConsenSys there is this push to get the quality of all the different software coming out of all the different spokes at this Enterprise grade quality and is PegaSys pushing that, is it coming from PegaSys or is it coming sort of a top-down and being brought on to every spoke?
Rob: That’s a good question. I think quite a number of spokes that are really really pushing hard. So it sort of depends on where a spoke is at in its lifecycle I guess. So there’s a number of spokes that are at that spot where they’re getting that product market fit and I seen that the product market is actually very much in that Enterprise space. And so for those spokes actually really focusing on the quality is really important. There’s other spokes we’re being able to innovate really rapidly is the key thing for them at the moment and so for them, maybe sometimes there’s that trade-off between let’s write another test versus let’s try out this new idea. They might lean more towards trying out the new idea.
Sebastien: And then with regards to your interaction with other teams, and so for example, like the Geth and Parity client team, coming from this background of Enterprise and also working with Enterprise building this client, how have your interactions been with there with those other teams? Do you see that there’s a high level of desire also on their part to build a more robust client, like build tools that are Enterprise-ready or are you seeing that they’re more looking at it from the research side and maybe not building in a continuous integration that you mention. How would you describe you the interactions with the other teams on this front?
Rob: It’s been really great working with the Geth and Parity teams. They’re a bunch of really smart people and it’s been really amazing being able to see the ideas that they’re trying and be able to work alongside them to help work things out. On the mainnet front they still very much are the leaders in that space and we’re working our hardest to catch up and it’s hard because they’ve actually done a bunch of really interesting things to make sure that they can make their clients go really fast and tuned for the mainnet world. And so, you know mainnet space we’re working hard and I think we’re catching up but they are really smart people and it’s great to work with them.
Sebastien: Let’s move on into PegaSys the main product is being built by Pantheon. Why did you decide to build another Ethereum client? Why not just use Geth and Parity or maybe branch off from them. What was the desire here?
Rob: It’s really important for PegaSys to build Pantheon because it really gives us control over the client. We’d looked at some other efforts that have been made to produce more Enterprise focused clients that were branching off Geth and Parity and saw a lot of the pain that ended up happening in having to maintain that fork, being able to maintain a fork of any open source project is non-trivial and to be able to add in some of the Enterprise features in particular privacy requires enough deep changes to the client that maintaining that fork is non-trivial. So that’s one of the one of the aspects. The other is being able to offer Enterprises a client with an Enterprise friendly license is really important and so the LGPL and GPL still raise flags for a lot of Enterprises and so we’ve got an Apache 2.0 licensed client and that really makes a difference.
Sebastien: Can you talk about why this license is problematic for Enterprise and why Apache because I know that also Hyperledger built everything on Apache for that exact reason.
Rob: So it’s I’m not an open source guru so probably not the best person to answer that. You should have a conversation at some time with Jim Jagielski . So he’s at ConsenSys as well and was was formerly at the Apache Foundation. And so he’s got a really clear way of being able to articulate why why Apache 2.0 matters. Essentially it comes down to the fears around the viral nature of the GPL sort of license. And so once you’ve have something that’s using GPL license code your code then also needs to be GPL-licensed. And so it’s organizations being afraid of that. Whether or not those fears are valid and whether or not how that that really plays out. It hasn’t been tested in the legal system, and I’m not a lawyer and I don’t know how it would pan out, but it’s just one of those things where if you do have the choice between, for a lot of organizations if you have the choice between and particularly, I guess for developers in an organization if you have the choice between something that’s Apache and you can just use versus something that’s LGPL or GPL and you have to go through the legal team of your organization to get approval to use it you’re going to go to the Apache 2.0 is just going to be so much easier and so given that we wanted to have a client that was easy for Enterprises to pick up with having that Apache 2 was one of the parts of that decision-making.
Sebastien: Okay, that makes sense. So in the GPL license these open source licenses, I guess force users of those software to also open source the things that they built with it. Whereas Apache you can use the open source software, but it can be closed source within your organization, you know, you don’t have to go and open source at yourself. So it protects I guess companies and Enterprise and protects their IP because that doesn’t itself need to be open source,
Sebastien: So why is it that Enterprise predominantly work in Java?
Rob: So I think it’s it’s a lot of it’s the historical reasons. And so you’ve got the devops the sysadmin teams are going to want to maintain systems that they’re familiar with that they’re comfortable with that they know here’s the way that I make it go fast. Here’s the way that I need to think about the the mainnet of the systems here’s how our suite of systems will work. And so having that consistent infrastructure I think really helps those those sorts of groups. And within the Java sort of world it’s often actually the JVM is sort of the thing that’s there. And so whether you use Java, Scala, Kotlin, whatever kind of cool language you want to use it’s all compiling to that JVM sort of bytecode and works in a consistent way.
Sebastien: So if you’ve got a company that’s using Java, how do you get them to start using Ethereum?
Rob: So I think it’s starting with the idea of the distributed ledger and so hey, you’ve got this immutable data structure that you can use and I actually lead a bunch of workshops just a couple of weeks ago in San Francisco getting people to help think about it and it sort of started through, we would go through and teach people a little bit about blockchain, little bit about what some of the properties of a blockchain are, and then think about how this is going to be working with maybe the consortiums with the companies and other people that they work with starts to give that here’s why blockchain matters and then you can talk about Ethereum because it’s got the solidity is kind of there, there’s this community around it. There’s all the tools that are there to help make it work. Then you can talk about Pantheon being a part of that and being able to run that in your Java sort of world and make that fit in really well with you there. And so this is kind of nice sort of arc that fits in well for an Enterprise there.
Sebastien: Okay, and in my experience in the time that I spent working with Enterprise and trying to convince big companies to start using blockchain etc, so in 2016 to late 2017 companies were not at all or very little at least thinking about using mainnet and using public chains, a lot of companies were looking at implementing permission chains, what seems very complicated now I think back on it. Why do you think that companies should be on mainnet? And is that something that you guys are pushing towards?
Rob: I think that mainnet is definitely a piece of the picture for people and so I think if you if you look at and so there’s a person at ConsenSys, a visionary and great great speaker John Wolpert, and he has a few different great ways of being able to think about why mainnet is important and I think there’s if you sort of look at the two security properties of of I guess secrecy and the immutability blockchain and mainnet in particular is awesome for immutability and so being able to pin your data to mainnet I think for organizations is really the gold standard that’s that’s there for being able to prove that you’ve got some sort of merkle proof backing whatever hash you’ve written to the mainnet is is gold. And so I think that is really where organizations need to be moving towards and then potentially there might be sort of private databases, private consortium networks that they’re using on to sort of get to that result that they want to pin back to the mainnet. But I think that there’s definitely this mainnet first sort of world that we need to get to and how we get there. I’m not sure. I think there’s probably some of those convoluted consortiums and private networks are part of the path that is still sort of sitting there for a lot of organizations, but I think getting to that mainnet sort of first is really important.
Sebastien: The way that I see this increasingly now that like now that Cosmos is out and that we’ve got kind of a road map for Ethereum 2.0 and we’re starting to piece together how these blockchain networks will will look like sort of in their infrastructure, the way I see this is we’ll have shards or side chains or whatever you want to call them, zones backed by a mainchain. And before we thought okay, there’ll be these consortiums and these consortiums will operate independently and there might be some interaction with public chain, but it wasn’t quite clear how that was going to play out. Now that we have these sharded chains or at least they’re they’re coming into existence the idea that you could have a consortium running on a shard of a main chain or as a side chain and then that consortium just yeah, like you said it it pegs back to the main chain at some point to establish the veracity of a transaction or a state and then I think that extends to other consortiums so you might have like a company or consortium on shard and then another company or another consortium on another shard and then they can use the main chain to transact and interact with each other. Is this the future that you also envision with regards to Enterprise or is this something that we’re missing here?
Rob: I think that’s pretty close to it. I think that Enterprises will definitely have multiple different chains and multiple different that multiple different chains that they communicate with, having a client that helps make it easy to communicate to a different chains is going to be absolutely essential. I think the spot at which the cross chain communication happens is going to be an interesting place for research and development over the next months and years. And so how that communication across side chains or across shards sort of happens. I think will be an interesting topic. How much of that is at layer one how much of it’s at layer two and how things progress from maybe you start with a layer two solution and then evolve out a layer one solution will be the interesting place one of the interesting places for research to be happening.
Sebastien: Have you guys given any thought to how Enterprise might also become stakeholders of the main chain? So in Ethereum like the beacon chain, do you envision a future where large companies or sets of companies working with Ethereum implementing side chains, shards are also stakeholders of a future Ethereum proof of stake network, or are they just out of tagging along for the ride and using the shared security without any specific stake?
Rob: I’d love to see them a part of it. I don’t have a strong opinion on how that how that happens. But I think it makes sense. So I would imagine that if the staking is as profitable as it’s meant to be it’s probably going to be a good place for some of these larger Enterprises to keep some of their funds and have as one of their investment strategies and given that and they’re using it it’s also then giving them that sort of safety and reliability of the network and so I can see them sort of wanting to do it further, you know, just for straight financial reasons, but also because it’s protecting their investments and their assets as well.
Sebastien: Also in terms of governance, I mean, you know, if they have a stake in the network they would also be able to vote on, you know, I’m not really sure how the future Ethereum governance is meant to look like but presumably there’s some governance mechanism in there that allows stakeholders to vote on proposals in this sort of thing. You think this is something that companies are going to want to interact with in the future.
Rob: I’m not sure what the governance model looks like in the Ethereum world. I’m not sure that stakeholders are directly going to be tied to getting voting rights on changes to the network. But I do imagine that organizations are going to want to be able to influence the direction of the protocol.
Sebastien: So let’s move on to Pantheon tell us whether some of the interesting features that Pantheon offers.
Rob: Yep. So to just start with it’s a mainnet first client. And so I think our initial release of Pantheon was to have it running on mainnet to have it’s syncing with the network and processing the latest blocks and that’s, our first commitment is to working on mainnet, but then on top of that we also think about the Enterprise Ethereum and so I think we might talk a little bit later about the Enterprise Ethereum Alliance and so Enterprise Ethereum is something that we take really seriously and it talks about three p’s when it’s kind of really two p’s and a c. So the three p’s are privacy permissioning and consensus mechanisms or performance and so we offer I think really good answers to all three of those sorts of requirements. So we have a good really good system in place for for permissioning and being able to control who can join the network and who can submit transactions. So that’s our commissioning sort of story. We’ve got some good tools to help think about privacy and so being able to have a mix of sort of off chain privacy. And so the only thing that gets written to the chain and in an off chain sort of privacy sense is a hash of a transaction that’s happened between some subgroup of parties. So it’s got that sort of support and then we’re also going to have tools and partnerships with some of the zero-knowledge kind of tools. So there’s the Aztec sort of group have produced a really good sort of zero-knowledge solution. And so there’s a blog post which we can share probably in the show notes which talks about about how that works. And then in terms of consensus mechanisms, we’ve got a new consensus mechanism that we’ve produced that that works really well as well for a consortium type environment.
Sebastien: Okay, so let’s dive into these three p’s starting with permissioning now. So just to preface for the moment at least this privacy aspect is permissioning aspect and also the like being able to switch out consensus mechanism only works if you’re deploying Ethereum as a consortium chain it these things don’t work with the main chain.
Rob: That’s right at the moment. So our privacy solution we’ve designed to be able to work on the main chain if all of the parties involved in the private transaction are running Pantheon, so that quality is not quite there yet, but that’s what the solution has been designed for.
Sebastien: That’s interesting.
Rob: Yeah, as we as we sort of improve that will be working towards that so at the moment within that the challenge that we need to solve for is what happens in the case of chain reorgs and and how to handle that is where the kind of the challenge in that.
Sebastien: It’s interesting. Are you saying that then a consortium of companies could deploy a smart contract to Ethereum and if they’re all using Pantheon, maybe if the smart contract only authorizes certain keys to send it transactions. I don’t know if that’s possible. But then you could have sort of a little permissioned private chain or private smart contract happening on the Ethereum of main chain.
Rob: So I think the vision is close to that but slightly different and so within that privacy sort of world you would be able to deploy a smart contract to the main chain. The only thing that the rest of the world would be able to see is a hash that there was a transaction that was sent to a pre-compiled smart contract and then the other Pantheon clients would be able to interact with that pre-compile smart contract, they’d be running the pre-compiled smart contract would then be able to look up the transaction using the hash, if they’re a party to the transaction they would be able to then execute it and be able to participate in private transactions against that state. And so your first transaction would be deploying a smart contract and then future transactions would be interacting with that smart contract. And so only participants in that privacy group is what we sort of call it would be able to see anything more than a hash of the transaction.
Sebastien: Okay are any companies doing this right now on the mainnet?
Rob: Not on the mainnet.
Sebastien: Okay. So that’s the privacy side. This is something you’ve implemented on PegaSys and presumably works very well if you’re on a consortium chain, but perhaps you can also use it on the main chain. How does permissioning work?
Rob: Yep, so the permissioning we we think about it in, there’s probably three different levels. So we have some permissioning around our JSON-RPC APIs. So being able to control which accounts are able to interact with which JSON-RPC APIs, but that’s that’s very much around a specific node that’s an Ethereum client that’s being deployed. Then we have sort of our node level commissioning. So the node level commissioning is being able to have a white list of which e-nodes are able to connect to the network. And so that’s managed via a smart contract. And so you’re able to restrict which nodes are able to join the network. And so the peer-to-peer network is not broadcasting out to everyone in the world. You can’t just have anyone join you have to be on that white list of e-nodes to be able to join the network and then the third level that we’ve got is account level permissioning and so this is I guess kind of a the most real in terms of the network. And so the account level permissioning is restricting which accounts can I guess having again a white list of accounts that are able to submit transactions that are able to do different types of transactions. So whether it is an Eth transfer or a smart contract message that’s being sent or deploy a new contract those sorts of levels of granularity in our account level permsissioning.
Sebastien: Okay. Yeah that will make a lot of sense in a consortium setting you obviously you only want the members of the consortium people to access this the blockchain and then you might have other permission considerations for the types of API calls that each of the nodes can send to the network and then also like accounts and things like that. I can see there’s a lot of use cases around that.
Rob: Exactly and that that system that we’ve built and designed is a smart contract based approach. So we’ve worked with the Enterprise Ethereum Alliance to sort of take what we’ve done and work with the other organizations to make sure that it makes sense to having a standard and set it up to be standardized which then is done in such a way to give a real strong split between the enforcement of these permissions, which is really well defined in a well-defined interface smart contract interface. And then the actual sort of management piece. We’ve sort of kept a sort separation of concerns which gives that ability to use a different governance model for your consortium network or sort of swap out what sort of governance model makes sense for your network.
Sebastien: So moving on now to the third P or C, the consensus algorithm. So you guys are working on this IBFT algorithm. Can you talk about that and describe maybe what types of use cases it’s best suited for.
Rob: Yep. So the the IBFT protocol it’s in the sort of has two bits of heritage to it. And so it’s very much in the PBFT family of consensus mechanisms, but then on Ethereum, it also has a bit of a clique kind of POA kind of feel to it as well. And so if you kind of merge those two together you end up with the the IBFT family and so there’s a really sort of active research community around around the consensus mechanisms at the moment and doing a lot of security research into where some of the failure modes might be from a computer science perspective which often then get proven out with sort of real-world failures as well. And so our research and development team have helped us to produce the the IBFT 2 algorithm that that we’ve produced and it’s it’s really ideal for that kind of consortium or private kind of Ethereum network. It’s probably not going to be the algorithm that’s used for the future proof of stake kind of world, but it is going to be the thing that were using for those kind of private consortium networks and it’s sort of the idea there is it works great for some sort of range from four to thirty sort of validate a nodes in your network is the sort of golden sweet spot for that algorithm.
Sebastien: So how is IBFT different from say Tendermint BFT where Tendermint BFT can scale to more like 100 – 250 validators I think.
Rob: So I think it’s it’s very much around the recovery when there is a Byzantine fault and so the IBFT algorithm the time to recovery when there is a fault is is smaller. And and I think that’s the key sort of win that’s there. There’s also some other potential optimizations which are available to the IBFT family in terms of decreasing the number of phases that are needed in the happy kind of path and that sort of optimization is not available for the the Tendermint.
Sebastien: Okay. So you mentioned that IBFT probably won’t be the algorithm that would be used for the future Ethereum proof of stake network because obviously like 30 validators is probably too little but it is conceivable that IBFT would be used on side chains and then that IBFT sidechain would then sort of commit to the main chain. Is that correct?
Sebastien: Okay. Are you seeing any specific types of applications in your dealings with Enterprise that are particularly well suited for IBFT.
Rob: Yeah. So it’s the standard kind of I guess financial DeFi sort of use cases are really sort of strong ones there. So one of the key properties with IBFT is the transaction finality and so we can see that sort of consortiums which are doing anything that’s kind of financially based being able to know that a transaction is fine or when it’s written to the chain is pretty important.
Sebastien: Right because IBFT has finality.
Rob: Yeah, that’s right. So the banks are a bit uncomfortable with the idea of the probabilistic finality of the proof of work offers.
Sebastien: So moving back to Pantheon what types of nodes do you support like, full archival nodes, full sync nodes.
Rob: So at the moment we’re full archive node, in our recent sort of release that we had we have added in fast sync and so fast sync is something that takes a long time to implement funnily enough. And so our fast sync is there, the bit of work that’s currently underway is adding in pruning and so that will sort of move you from being that sort of full archive node to just being that sort of full node. And then I think the more sort of light client sort of configurations are in our future but we’re not there yet.
Sebastien: So you mentioned standardization and the work that you’re doing with the Ethereum Enterprise Alliance. Can you expand on that and let me give a status update on the EEA?
Rob: Yep, so I think it’s been a really busy probably 18 months for the EEA. They went from not having a client specification at all to the Raptor Version 3 was either has just been released I think is the status of it and then they’re targeting Devcon 5 for a Version 4 release and so they’re really iterating very fast on making sure that there is a top-quality client specification there and that’s that’s the main place where I work with them. They also have another a number of other sort of working groups that are there. So there’s a group that’s working on building out a test network, which is then going to perform the basis of a compliance sort of testing suite so the initial version of that test network is going to sort of help flush out some of the interoperability issues that they might be between some of the Enterprise Ethereum clients. And then once they’ve got that sort of up and running that’s going to then form the basis of a certification program. And so the EEA is working really really hard as an organization and the client members to ensure that it’s adding value and making sure that we are producing standards and specifications of Ethereum that work well for Enterprise.
Sebastien: So how important are these standards to Enterprise and how do you reconcile because you guys are building a client that’s both mainnet compatible but also consortium chain compatible. How do you reconcile the needs of permissionless Ethereum world and the needs of a highly secured permissioned consortium chain.
Rob: It’s a good question. So I think it’s one that I think I’ve seen other clients have different approaches to what we’ve got. So I mentioned early on that we’re mainnet first and we take that as as our priority. And so whenever we do something that is Enterprise our first goal is to try and do something that works well with mainnet and is compatible with the standard Ethereum. There can be features that that doesn’t fit in and so that does happen from time to time. So when you look at the permissioned sort of network, maybe there might be a spot where an e-node RDL moves from being straight IP address base to being dns-based because that’s going to maybe work better for an Enterprise context. Now that’s going to be a change which breaks by running your Ethereum client in that mode you’re no longer main that compatible and that’s going to be a change which makes me uncomfortable, but we would probably probably make and so I think it’s that making sure that any time we’re doing something that makes our client have a mode which is non-mainnet compatible makes us feel uncomfortable, but it might be the right thing to do still, it’s kind of the way that we play that that challenge there.
Sebastien: In terms of the applications that companies are building and Enterprises interested in building, have you seen any shift in the last couple of years towards some of the applications being built on mainnet or are companies still very interested in you know, building their supply chain and like building out their internal processes and certifying their internal processes on Ethereum, which is something I think that a lot of Enterprise were interested in a couple years ago. What’s the state of the way Enterprise are thinking about Ethereum and the applications that they can build there?
Rob: I think it’s in this what we were a couple of years ago people were interested in building the the private networks, but not doing anything because I was still just interested. I think right now we’re seeing some uptake in some of the consortium networks, but there’s a lot of interest in doing mainnet and so it’s kind of they’re not quite in the spot where okay yep we’re going to commit to mainnet, what they are really interested in it and really thinking about okay how is mainnet going to fit into our strategy. How are we going to do it? So it’s that sort of tipping point where I think in, you know, a year’s time in two years time people really will be using mainnet in a serious way.
Sebastien: And how would they be using mainnet like what kind of applications will they be using mainnet for because of a lot of the stuff happening on mainnet now is a lot of DeFi and I think a lot of the infrastructure there is sort of supporting I would say like speculation around Ethereum and token transfers and decentralized exchanges and this sort of thing. What’s what are the interests of Enterprise for using mainnet?
Rob: So I think the DeFi kind of use case is pretty strong still and then I think it’s also then using it as a certification spot for their private kind of consortium networks or their side chains pinning state back to mainnet are probably the two spots where there seems to be the most interested in the moment. So but I think in Ethereum the sweet spot for Ethereum right now is kind of the that DeFi, the tokenization of things is tokenize all the things I think is sort of where we’re at for Ethereum, not just where we’re at, but I think it’s where we’re we’re going to be for that sort of short to medium and perhaps even sort of longer sort of future, that DeFi use case is pretty strong.
Sebastien: Can you talk about some of the specific things that maybe some of the companies that you’re worked with or ConsenSys is worked with are doing.
Rob: So am I my sweet spot is more on the actual protocol side itself and helping make sure that we’re building the right thing to support people. We are definitely seeing though some of the interesting use cases are out there. So there’s Congo is a project that is using using Ethereum and built on top of and built in partnership with ConsenSys very closely. And so it’s a commodities trading platform and a consortium based network in the in Europe. And so that’s that’s sort of one of our very successful projects that’s there. Definitely seeing a lot of interest for, again a lot of the financial use cases. So I won’t name names or name projects, but the interbank settlement sort of space is quite interested in using Ethereum to help make that work well, anywhere where there’s multiple sort of large organizations that don’t quite trust each other to or trust any one person to be the centralization point is where we’re definitely seeing a large sort of interest for Pantheon and Ethereum.
Sebastien: So you think that Ethereum really does have the potential to scale at a point where it can support something as transaction volume intensive as interbank settlements, or do you think that companies and banks will continue to use side chains to do this?
Rob: So I think the Ethereum 2.0 with the sort of sharding that’s there on that road map is going to have that sort of scaling that you know, a thousand X on top of on top of what you are doing on the current sort of Ethereum plus and that’s just by the straight sharding in plus the smart things that you can do for changing how you process transactions and do things there I think really does give that space to provide the scale the mainnet Ethereum as it is now does not does not provide it but moving forward to that Ethereum 2.0 future I think there is a world where that works well
Sebastien: So do you see a future where permission chains continue to exist or like what is the point of a permissions chain if Ethereum scales to some close to infinite level.
Rob: I don’t think banks want to be making the details of their interbank settlement very visible. And so I think that it’s more for the I guess the privacy side then the scaling side is probably the spot where you going to see the side chains, consortiums, the non-mainnet kind of chains out there.
Sebastien: Okay, cool, so before we wrap up here I do want to spend a little bit of time talking about Ethereum 2.0 or Serenity whatever we’re calling it now, can you give us a bit of an update on where things stand at the moment with regards to Ethereum 2.0 and what is some of the work that you guys are doing on that front.
Rob: So I can speak more to where we’re at it’s hard to know exactly where Ethereum 2.0 is because it’s hard to keep up but the bits that I can definitely see is there’s the three phases, phase zero sort of starting off the beacon chain, phase one sort of introducing the sharding, and then phase three with the execution environment. Phase 0 is getting into a very good spot and so there’s a number of test networks that are out there at the moment, there’s sort of plans in place to work on how to get those interopping with each other and getting the sort of clients talking to each other and working together really well. There’s a recent sort of announcement about trying to get a staking contract out for Devcon and then looking to get this sort of released in early next year and getting like really a beacon chain running in a production environment early next year. And I think that some of those timelines are aggressive, I think that there are great stakes in the ground that aren’t just going to slide as in I think that maybe the date moves from like an early January to like a February but it’s not going to be like, we’re not going to be sitting here this time next year and saying what’s happening with our beacon chain, I would be absolutely shocked if we didn’t have a beacon chain running like very well by this time next year.
Sebastien: That’s really encouraging to hear because the last time we talked about this on the podcast, I think I mean, of course beacon chain is one part of it but you know, there was this expectation that Ethereum 2.0 could take you know, two to five years until it’s ready it maybe maybe that’s still the case with all the other layers that need to be added. I’m going to ask you the same thing, I think I asked this to Joe Lubin, if Ethereum 2.0 does take so long to bring into production, I think the estimates are somewhere around like two to four years something like that until we’re ready for production, there are other blockchains out there that are doing similar things to what Ethereum 2.0 wants to achieve, so Cosmos launched a couple of months ago and there was just this big like the first Cosmos event, Polkadot will presumably launched before that as well. What are your thoughts on Ethereum’s dominance as the predominant dap platform and how Ethereum could potentially lose some of that predominance if it takes too long to to move into production and these other chains are ready and you know people can build on them.
Rob: I think it’s a real risk for Ethereum and one that we need to take seriously. I think that that said I think that there is sort of that weight of the community already in Ethereum. I think that that’s why as well PegaSys is taking a really strong two-faced sort of approach of really pushing hard into that Enterprise sort of space and so by going out into the Enterprise and reaching out particularly with our Java client being able to reach out to the Java Community, like most of them have hardly heard of blockchain. Maybe maybe with the new face are friends in Facebook. Everyone’s going to know about blockchain now, but I think that it’s more about growing the community and so within that Enterprise kind of context, there’s no sort of issues with scaling. There’s the well-known well-established tool chains that are there for doing the smart contract development in Ethereum that I think a really good story for us to be able to communicate with that Enterprise community and I think that so that’s one direction that the PegaSys is working in and then also working very hard on that Ethereum 2.0 research but also making sure that we are shipping software with Ethereum 2.0. And so I think making sure that we are building stuff that proves that the research is either right or wrong rather than keeping it as the radical. So I think that those two things are the best things that we can be doing to make sure that both Ethereum works well now and that the future of Ethereum 2.0 or Serenity sort of comes in the right sort of timeliness.
Sebastien: And are you guys working with the folks working on theorem 1.X are you also interacting with that team?
Rob: Yep. That’s right. Yep. So sort of we had a number of people going along to some of the workshops and trying to help bring that bring that forward to have that sort of I guess bridging between you know that Ethereum 1.0 and making sure that it continues to scale for long enough to keep the the mainnet running well until Ethereum 2.0 comes
Sebastien: And can you give us an update on the progress there? Are you aware of what’s going on on that front?
Rob: So I think there’s a bunch of really good proposals that are being worked through which I don’t think too many of them have made it into the form of EIPs yet. But that’s sort of you know, the way forward is to go from those sort of working through what is possible to producing the EIPs which can then be reviewed and implemented. So it’s still in that sort of earlier phases of that, but I think it’s probably going to be the things that we would see in the the hard forks that happen next year on the mainnet with clients or the mainnet Ethereum network?
Sebastien: Okay, cool, so tell us where can people learn more about PegaSys and Pantheon and anything you want to plug at this point.
Rob: So I think the best two places, so the PegaSys website and then for probably an even better spot is our GitHub, those would be the two places to go.
Sebastien: And are you guys hiring?
Rob: Yeah, I think if there are people that are blockchain engineers, people that write Java and are interested in contributing to the Enterprise Ethereum client definitely would love to have a conversation.
Sebastien: All right Rob. Thanks for joining me today and looking forward to seeing the developments on Pantheon.
Rob: Thank you. It’s been a pleasure.
Microsoft AzureDeploy enterprise-ready consortium blockchain networks that scale in just a few clicks. More at aka.ms/epicenter.
Trail of BitsTrust the team at the forefront of blockchain security research. Learn more at TrailofBits.com.
- PegaSys Website
- Introducing Pantheon, a Mainnet Java Client - Demo & Roadmap (Devcon4)
- Another day, another consensus algorithm. Why IBFT 2.0?
- Scaling Consensus for Enterprise: Explaining the IBFT Algorithm
- Blog Posts and Webinars - Pantheon
- PegaSysEng/pantheon: An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client
- PegaSysEng/artemis: Java Implementation of the Ethereum 2.0 Beacon Chain