Crypto AMA with ETH 2.0 Implementers (7.2.19)

Spencer Noon Dec 6, 2019

Guest:
  • Preston Van Loon (Prysmatic Labs)
  • Greg Markou (ChainSafe)
  • Cem Özer (PegaSys)
Moderator:

Moderator:

Alright everyone, let's give a warm welcome to @preston from Prysmatic Labs, @cem from Pegasys, and @greg from ChainSafe!

As a reminder for everyone participating, please keep the discussion respectful at all times. We're hoping to cover Ethereum 2.0 Phase 0 specifically in this AMA since the spec was frozen, but I also imagine there will be some high-level questions about other phases as well as questions about ETH 2.0 implementation in general.

Preston, Cem, and Greg - could you guys start off by giving us brief bios touching on your backgrounds as well as how you got started in crypto? And then a short overview of your respective companies and their ETH 2.0 efforts? We’ll then be off to the races with questions.

Cem Özer:

Thanks Spencer. Hey everyone! To give you a quick intro, I studied computer science at Northwestern University. After school, my first job was as a smart contract engineer at the AdChain team at ConsenSys. At AdChain I was lucky enough to work on building cool stuff like the first Double Linked List and the first Token Curated Registry on Ethereum. During my time as a smart contract engineer I noticed the scalability shortcomings, and got interested in scalability research. I joined PegaSys as soon as I noticed they were building a top-notch team for Eth 2.0 implementation.

So I work at PegaSys, which is a protocol engineering company that has its own Ethereum client, Pantheon. We provide services to enterprises that want to run their own Ethereum nodes. We’re fully committed to a production ready Eth2.0 client.

Preston Van Loon:

Hi friends. I'm Preston Van Loon from Prysmatic Labs. I've been a software engineer for many years and most recently at Google until I jumped ship to work full time on Prysmatic. We're building an Ethereum 2.0 client as free open source software. I first heard about Ethereum in 2017 before the big bull run. Started messing around to understand how the whole thing works then found out it is terribly slow relative to the performance required for global mass adoption. Raul Jordan and I started Prysmatic Labs to get involved on Ethereum core protocol scaling in Jan 2018. We've received funding and support from the Ethereum foundation and many others to put together a full team and eventually quit our jobs in Jan 2019 to work full time on ETH 2.

Moderator:

One intro left before we dive right in. @greg?

Moderator:

Looks like Greg’s AFK for a moment but will drop his intro when he’s back, so let’s move right to questions!

Participant:

Intro question to set the stage a bit, what does phase 0 offer, and what was excluded from phase 0 that you think is noteworthy?

Participant:

What does an engineer need to know to get involved in Phase 2?

Participant: 

@preston has any ever confused you with me? because several people have confused me with you

Preston Van Loon:

yep

Preston Van Loon:

Someone said "nice job on your talk" when I was at the eth research meet up in Toronto lol

Preston Van Loon:

> Thanks, but it wasn't me

Cem Özer:

Phase 0 offers most of the system architecture. A hub chain in the middle that will run Proof of Stake, skeleton that will later on allow communication between shards, and finalization of shards.

Participant:

swap talks next time?

Participant:

Tyvm. How far along is cross shard comms? Seems to be the holy grail for sharding.

Preston Van Loon:

This is a good question. Phase 2 is a different paradigm with concepts of shards having their own execution environments. I don't know enough about phase 2 to point you in the right direction. I'd say talk to Will Villanueva and Alex from eWASM.

Cem Özer:

So basically you can think of Phase 0 as the hardest most complex part of the system, and so building it is a big landmark.

Cem Özer:

Phase 0 (beacon chain) allows shards to be verified on the beacon chain, but the specifics of how that’s going to be done is still being researched.

Preston Van Loon:

Launching phase 0 without phase 1 offers the proof of stake mechanisms that we can potentially leverage to finalize the ETH 1 chain as well. The main benefit is that we can get early on proof of stake while we build phase 1 and 2 in parallel

Participant:

We hear a lot about Phase 0 & now are starting to hear about Phase 2. Can you give a TL;DR of what is to be expected in Phase 1?

Preston Van Loon:

Oh yeah, if we are both speaking at the same event. I wonder if anyone would notice 😂

Moderator:

Great question. To add to that— perhaps you guys could zoom out for a second and describe the different phases at a high level, their relative timeframes for completion, why ETH 2.0 was broken out into phases, and how your teams play a part in the process of delivering them.

Moderator:

We have a lot of folks in this room who are roughly familiar with the ETH 2.0 research/implementation process, but some who are not.

Cem Özer:

In Phase 1, we’re going to implement running actual shard chains that store data, and that can actually be very impactful for the community because Eth1 contracts can possibly leverage them to increase their scale.

Participant:

Does this imply I could potentially write a cryptokitties (i.e. ERC721 or ERC20) contract on Eth1 and store all of the holder informations on an Eth2 shard?

Preston Van Loon:

I think a great resource for this is on ethhub. https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth-2.0-phases/

I'll give a high level overview here.

phase 0 is the proof of stake beacon chain only. This layer of the application manages the validator set, rewards/penalties, casper finality. There isn't much functionality other than to be the foundation that we build upon.

phase 1 is when we introduce the shards as data layers. Here we expand the validator responsibilities to operate in shards to provide the data availability, block production, finality of shards. Some use cases here are that you can store arbitrary data in these shards, but there is no execution on chain yet.

phase 2 brings the actual execution environments. At this time you can run your contracts and other functionality that we'd expect Ethereum today. This phase is quite substantial as there are many new concepts that come with sharding: contract yanking (moving contracts across shards), sending transactions across shards, and more complexities. We're also targeting a new virtual machine based on web assembly.

Moderator:

Love it. Super helpful stuff Preston

Moderator:

@cem - can you explain why you think Phase 0 is the hardest and most complex part of the system?

Preston Van Loon:

If you were using some layer 2 solution to run your DApp then that is feasible. ETH1 doesn't have any knowledge of the data in ETH2 so you wouldn't be able to reference ETH2 data on chain within ETH1

Participant:

I have read that the max number of shards supported is 1024, is this accurate, and if so, why?

Participant:

most chains have very few implementations. Bitcoin seems to have the most, with 3 economically significant clients (although definitely 1 dominant). How many major ETH2 implementations do we expect in phase 0?

Participant:

Also super interested in reading up on how smart contracts could be moved across shards, is there a place where I can read up on this?

Greg:

Hi all! My name is Greg (@greg pretty much everywhere), I began programming roughly 7 years ago and took it seriously during my time at UofT. I got introduced to crypto during a French class in highschool when bitcoin went on a run, but totally ignored it until early 2017 when i bought some ETH. Now I'm a PArtner and VP of Engineering at ChainSafe Systems. I'm currently working as a Team Lead and Release Manager (bit early lol) on ETH2 for Lodestar  @ ChainSafe

Preston Van Loon:

The shard count will be fixed to a certain number, that number is currently targeting 1024 shards. This number is nice because its a power of 2 😊, but also seems realistic within some models that have been run to estimate overhead. The number of shards is not dynamic so when we launch with 1024 then there will always be 1024 unless we initiate some network upgrade to change it.

Moderator:

Thanks @greg! Welcome.

Participant:

Can you expand on this a bit? So to benefit from ETH2's initial larger throughput (assuming at phase 1 or 2) projects would have to "move over" to eth 2.0?

If not, is there an incentive to move if they can just use layer 2 solutions to increase scale?

Cem Özer:

Yes

Participant:

Got it.  So the shards will be up and running at the time of launch.  Thank you!

Preston Van Loon:

To clarify: at the time of phase 1 launch

Preston Van Loon:

That is correct. The ultimate goal is to migrate over to ETH2 once phase 2 can support applications like CryptoKitties. We also expect that there would be some clean migration path. I.e. you can bring your application and its data over to ETH2 in an execution environment that is compatible with ETH1

Preston Van Loon:

The layer 2 solutions could offer cheap scaling with the security of ETH2 at phase 1 if you want/need scaling faster for your application

Participant:

Tyvm

Cem Özer:

At the end of Phase 0, we’re going to build out the finality gadget, which provides finality to Eth1 chain. So, if I’m writing a dapp that communicates with Eth1chain, I have information about Eth2 chains. That means that I can query Eth 2 shard chains for data. For crypto kitties data, for profile data, and prove that it exists. All from an Eth1 dApp.

Preston Van Loon:

Can you do all of that on chain?

Participant:

@cem: Can I confirm that the Ethereum 2.0 client you are working on is Artemis? In your intro you wrote "We’re fully committed to a production ready Eth2.0 client." but I was told by various people (including Ben Edgington, just yesterday) that Artemis is very much an R&D project and may never be productionised. Could you clarify that? :)

Cem Özer:

No. I was describing dapp logic. But if we have the finality gadget, to have the same security guarantees, you don’t even need to be on chain.

Preston Van Loon:

Ah ok. That's what I thought as well, just waned to see if there was a new way to do it 😁

Cem Özer:

From Jonny Rhea (team lead): Pegasys is standing up a team to productionize Artemis (Phase 0); concurrently, some of the existing teams will start working on Phase 1 & 2.

Participant:

The work is amazing, but Phase 2 is still a long way to completion. How do you guys think about competition? I.e. if a competitor solves sharding (cross shard comms) while being decentralized does that drain the developer pool to that platform before ETH 2.0 has a chance to even host these use cases?

Moderator:

So in collating some of your answers @preston @cem, it seems like Phase 1 has *some* functionality—you mentioned L2 solutions and data storage. Can you guys summarize at a high-level what type of functionality Phase 1 will bring as well as what types of applications/use cases you think will be most prevalent with it?

Participant:

@cem Who is on the Artemis team?

Cem Özer:

Everyone borrows from everyone. If anyone solves the problems that we’re currently trying to solve, I can’t see us not taking what they’ve done. There is so much community momentum behind Ethereum, it’s a massive advantage that cannot be understated.

Participant:

How concerned are you about smart contract composability in ETH2? How can these concerns be assuaged? For example, on the current main chain, we can have several smart contracts calling one another in one atomic transaction (and many DeFi products have been built on this foundation). However my understanding is that if each of these contracts were deployed on different shards in ETH2, then this type of transaction would not be possible.

Participant:

Great point thanks. Leverage other tech with ETH's community. love it

Participant:

What are the biggest perceived risks of eth2 given everything that you know

Cem Özer:

Jonny Rhea, Steven Schroeder, Joseph Delong, and Dmitriy Ryajov just joined this week.

Participant:

Can you all pls speak to how well funded your respective teams are? How far, perhaps in terms of phases, does your team's runway extend to?

Cem Özer:

Ben Edgington is our mentor.

Preston Van Loon:

Phase 2 is in progress now so it shouldn't be too long relatively speaking. In terms of competition, if someone solves it before we do then that is great. I think it has been solved already anyway, at least conceptually. I can't speculate on how competitors plan to draw developers over, but Ethereum has more developer momentum than any other smart contract platform

Cem Özer:

Artemis is very important for Joe Lubin, so we aren’t limited by funding.

Participant:

@greg: I asked the following question to three Eth2.0 client teams. Curious what your answer would be: "What are your feelings on the Jan 3 suggestion for genesis? On a scale from 1 to 10, how likely do you think Lodestar will be production ready by then?"

Cem Özer:

That’s a great question. Composability in Eth2 is inherently going to be different than Eth1, and it’s an active area of research & discussion.

Greg:

I'm definitely a bit pessimistic on the date, but assuming January is still a go, I feel we're in the 6-8 range

Participant:

Will infrastructure providers (e.g. block explorers) need to run a node on each shard (i.e. 1024 full nodes)? Or will light clients be sufficient for certain use-cases?

Greg:

Our focus isn't just on the client itself but all other tooling. Tooling is a 10

Greg:

Light client should suffice depends on how much data is needed

Cem Özer:

We shouldn’t underestimate the transition period from Eth1 to Eth2.

Greg:

What do you mean by production ready ? It's a very vague question

Preston Van Loon:

We have over a year worth of runway at our current time size. We're hoping to scale the team from 5 full time eng to 8 to 10. Conservatively, we are OK to build through phase 0 and into phase 1 with confidence that EF will continue to generously support our team through phase 2 and beyond, such that we don't have to seek revenue opportunities which would distract from our primary goal of building our ETH2 client.

Participant:

What % of teams do you think will leave ETH for other platforms during this transition?

Greg:

We have 100k from the vitalik yolo fund, the rest is from ChainSafe self funding . We are in the process of securing other sources of funding

Cem Özer:

If we do our jobs right, there’s going to be no interruption. It’s just something we have to be very careful when designing the process.

Participant:

I'd say is capable of running without hickups (certainly, no consensus failures) in an adversarial cross-client testnet for at least 32 days. Has undergone thorough fuzzing and a security audit.

Greg:

The audit would be my only concern. Otherwise based on our experience building/maintaining clients, we will be ready

Greg:

My main concern is paying for the audit tbh. And whom the EF deems to be "good enough"

Moderator:

Taken from the EthHub docs: "There is currently no way to withdraw ETH2 from the beacon chain in Phase 0. Once deposited in the ETH1.x validator registration contract, the ETH1 is effectively burned." -- do you expect this to meaningfully detract people from becoming a validator? Do you expect workarounds to emerge (e.g. exchange markets) for ETH1 and ETH2?

Cem Özer:

First of all, with about 8 implementation teams, and the EF research team in the middle, its a very complex community effort. Also, since this is the first phase, we’re just getting adjusted to how we’re working together. I’m expecting us to become a well-oiled machine as time goes on. Secondly, PoS is a bit more complicated to implement than PoW (also because its new), and we’re one of the first projects to do it at this huge scale.

Preston Van Loon:

I also think this is mostly up to the clients too. For Prysm, we value runtime visibility, monitoring, alerting, data API protocols for extracting data to analyze the system. Production ready means a lot for us, probably more than is required for basic sanity of security auditing and fuzz testing

Cem Özer:

1

Participant:

Can you shed some more light on validator infrastructure? Are there any initial specs / requirements?

Preston Van Loon:

I think it's fair to say that some people will be discouraged by the minimum lock up period for participating in phase 0. The trade off here is that the rewards are higher as a result. I also imagine that someone will figure out arbitrage as they often do already.

Participant:

Last I heard was ~10 validators can run on a commercial laptop

Participant:

How close is the phase 1 spec to being frozen (I realize 0 was frozen yesterday) and when do the various teams expect to start implementation work on phase 1 (if you haven't already)?

Moderator:

Can you guys shed some light on your experience working with the EF Research team?

Cem Özer:

I know multiple clients implementing their validators in different forms, and they all seemed to have different processing/memory requirements. I don’t think we can have a good answer on this until we start thoroughly testing.

Preston Van Loon:

I can speak to Prysm's architecture. Other clients may also do this but it's not a spec requirement.

We have two components to operating a validator in ETH2. First, you'll want to run a beacon chain node. This node is akin to an Ethereum node as we know it today, specifically for ETH2 phase 0. This node provides an API for a separate validator client process to connect and fulfill its expected duties.

The validator process is run in isolation, maybe on a secure device that is air gapped from the external network and can only communicate with this running beacon chain node. The value add here is there is some added security given that the beacon chain node has no access to the underlying signing keys of the validator.

Greg:

Validators are pretty light, so that sounds reasonable

Greg:

Overall good experience

Greg:

Some researchers are very communicative with implementers and some are more heads down

Preston Van Loon:

I would expect that you can run many more. We typically run about 100 validators with 1 vCPU in our testnet. It's hard to say how much they actually use because they share resources with a beacon chain node. The validators are just requesting data and signing, this isn't very resource intensive.

Participant:

Is the VDF expected to be ready for the launch of the beacon chain? If not, the source of randomness will be via commit / reveal?

Cem Özer:

They’re brilliant people and its amazing working with them. They’re super passionate and dedicated, and they inspire us as implementers.

Participant:

Thanks for all the insight guys. I love having the beacon chain node run separately from the validators + consensus mechanism.

Cem Özer:

I agree. With our current design, our validator is extremely light and I’ve also seen 1 CPU run more than 100 validators.

Preston Van Loon:

Working with the research team has been great. Sometimes we suffer from lack of context in some design decisions, but we can usually resolve these issues quickly offline or through github. Everyone is doing their best work and  it's incredible to work with some of the best minds in the space.

Greg:

Eth1.x has like 6 or 7... Eth2 probably 6-8 on launch

Preston Van Loon:

2 or more, minimum. Ideally 4 or more. I think some clients have different goals in mind. So the diversity can users with specific needs

Participant:

Ethereum has 2 economically significant ones afaict

Cem Özer:

I’ve heard Justin say there needs to be 2, and Danny say there needs to be 3. I’d agree having 3 would be the best way to go, just because sometimes two clients can have the same exact error and stray from the protocol.

Preston Van Loon:

Phase 1 is the data layer. The most promising idea I've heard so far is to put the result of zero knowledge executions on the shards. This has gone as far as rolling the result of multiple zk executions in one. A step beyond that is to roll up multiple zero knowledge roll ups into one. This is the zk rollup rollup

Moderator:

Everyone, running up on the 15-minute warning 🕘 - get your questions in! 

* Question for the group: Do you hold ETH personally as an investment? If so, what is your investment case? I'm curious if you subscribe to any of the community-led narratives (e.g. programmable money/store of value, etc.) or at least find them compelling

Participant:

I guess my real question here is "how many have started, and how many do we expect to see go mainnet?"

Preston Van Loon:

Started building? Everyone has been building in some form. The frozen specification is only a few days old, so we're all working on that right now. I believe we would wait for 2 or more clients to be ready for any mainnet launch

Cem Özer:

I think each client should speak for themselves. We’ll be one of the clients on mainnet.

Preston Van Loon:

I have a small personal holding <200 ETH. I'll probably use this for running validators for myself. 😁 I believe ETH must be a store of value for proof of stake and therefore is also "programmable" money. Or at least enables programmable money like DAI

Moderator:

I concur. Thanks for sharing @preston

Cem Özer:

Justin drake is the guy to ask that as far as I know

Cem Özer:

My investments case is that Ether is programmable money, and it also secures the future Internet of Value. I 100% believe in the Internet of Value ethos and can’t see Ether losing value if Ethereum is the base layer of this system.

Participant:

What are your expectations for how much ETH will be staked to 2.0 at launch?

Greg:

Pretty small holdings I believe in it being a store of value

Greg:

Enough to trigger the genesis block 😅

Moderator:

Good stuff. Looks like we're running up on time. Everyone, please give a huge thanks to our participants for coming on today! @cem @preston and @greg - what's the best way for people in this chat to (1) stay up to date with your company's ETH 2.0 progress and (2) stay in touch?

Preston Van Loon:

Yeah, I don't recall the math or the parameters. But whatever the spec says and current price of ETH at that time :)

Greg:

Follow @chainsafeth on twitter or myself (@greg)

Participant:

Thanks for doing what you do guys!

Participant:

Thank you guys! Super pumped for 2.0 :)

Participant:

Thanks everyone!

Preston Van Loon:

Follow @prylabs for Prysmatic's twitter. I'm @preston_vanloon. This has been fun! Thanks for the questions and if there was something you want answered that wasn't answered here, send a DM or tweet and I'd be happy to continue the convo.

Cem Özer:

We share the most recent and exciting news on Twitter so I’d recommend you follow us there. Me and my teammates twitter handles: @cemozer_ @JonnyRhea @schroedingerdev @josephdelong @dryajov

Cem Özer:

Thanks for all the questions. Feel free to reach out to me on Telegram or on Twitter.

Moderator:

Awesome 👌

Moderator:

Crypto AMA crew: thanks for tuning in and asking great questions!

Moderator:

Stay tuned for our next AMA 🕛

Participant:

The VDF is a multi-year side project. VDF rigs are expected to be delivered in 2021, and unbiasable randomness may be bundled with phase 2.

Participant:

1

Participant:

""our experience building/maintaining clients" => Which clients have you previously built or maintained?

Greg:

GethClassic for ETC (prod), handfull of Geth and Parity Forks (heavily modified and 3 of which are prod), Ethermint (dev) & Polkadot Runtime environemnt (dev)

Greg:

We're 26 people so only a fraction are on ETH2 but almost everyone ahs touched Lodestar at one point 🙂

Participant:

Oh wow, you're massive. Who is actively working on Lodestar right now?

Participant:

Oh wow, you're massive. Who is actively working on Lodestar right now?

Greg:

Myself, Cayman (wemmetagain), Marin (mpetrunic) are the main leads and a few others from ChainSafe who come and go for specific tasks!

Participant:

Thanks so much for your hard work, and for answering our questions today!