zkApe&Brandon Kase – Interview

0 Shares
0
0
0

zkApe: Thank you so much Brandon for accepting this interview! Want to tell your zkApe followers about yourself? What were you doing before working on zk area and what got you excited about this space?

Brandon: Hi everyone! My background: I was lucky enough to be exposed to computers and the internet growing up, and I taught myself programming at an early age and more generally an assortment of computer science topics especially as I got older.

From an academic standpoint, I ended up attending Carnegie Mellon University where I graduated with a Computer Science degree with a focus in Programming Language Theory. This led me to an obsession with applying this work to industry through making heavy use of functional programming. I worked for a while in the social space doing frontend and infrastructure work on Web, Android, and iOS through internships at Facebook and Mozilla, and full-time at a startup (acquired by Pinterest) and Pinterest – throughout my work I always tried to bring my programming theory background into my work and in the broader community via speaking at conferences on the topic.

From a crypto standpoint, I first learned about Bitcoin in 2009 after a Slashdot post–I messed around with the Bitcoin node software a little at that point, but not too seriously until 2011 where I started mining Bitcoin for a year or two. Unfortunately, I lost all the Bitcoin I mined early on, but I always kept an eye on the crypto space.

Initially what got me most excited about this space was getting to build with this challenging technology – towards the end of 2017, I had the opportunity to join Evan and Izaak on a project that led to the company, O(1) Labs, and the blockchain protocol, Mina, and I found this was a nice way to combine my interest in crypto with this academic approach to building software. In particular, initially, I was attracted to this project because of the engineering challenges it would entail especially with Mina’s application of recursive zkSNARKs. For Mina, we had to develop an embedded programming language for reasoning about SNARKs and we shipped a series of zk circuits that fully implemented a secure proof of stake consensus protocol for Mina’s mainnet, which launched over a year ago – this is what powers Mina’s “22kb blockchain”.

These days I’m also very excited for the potential applications of zk technology in this space and building tools to make it easier for more developers to take advantage of the zk tech – and I’ll share more about this later in our interview.

You focused on developer tooling for zkApps for nearly 6-8 month. What would you like to say about the potential of zkapp?

I’m really excited about the potential for zkApps! Building zero knowledge proof applications is hard and we’re building SnarkyJS, our framework for building zkApps, to make it easier for developers: SnarkyJS is a library in TypeScript – users don’t have to learn a new programming language. Using TypeScript enables developers to use JavaScript and TypeScript, a language and toolset ecosystem that 12million+ developers are already familiar with, to write smart contracts.

zkApps on Mina execute off-chain, privately in a user’s web browser, and generate a zero-knowledge proof that stands in for the computation, in the same way that Mina has a proof that stands in for the blockchain consensus computation.

Because execution occurs on a user’s machine, users have real privacy – their data never leaves their custody. Because execution occurs on a user’s machine, gas cost is predictable because on-chain nodes just verify a proof. Because execution occurs on a user’s machine, and because of the power of recursive proofs, the computation can scale without sacrificing privacy nor gas costs!

With zkOracles, which O(1) Labs is working on (work in progress), we can bridge web2 data into web3 without the web2 entity having to change anything about their APIs. We can build proofs like: “My real world fiat bank account has more than $5,000 in it,” without revealing any personal information, or “My twitter account has more than 10,000 followers,” without revealing your exact twitter account, and we can bring that data on-chain to be used in web3 applications.

With the underlying proof system’s (Kimchi) infinite recursion feature and SnarkyJS, users can build application-specific-zk-rollups for high-performance use-cases. And when combined with privacy, things like multiplayer games with private state like Poker become easy to build.

With Mina’s zkBridge, which Nil Foundation is working on (work in progress), proofs created via zkApps on Mina can augment existing web3 applications. For example, we can create a zkApp that attests to KYC verification for a user without revealing any sensitive information about them, and then bridge that to an EVM chain as a non-transferrable (soulbound) NFT; then Solidity DeFi applications can build on top of this primitive without even needing to use zkApps directly. We can also use some zk-rollup application on Mina as a pluggable L2 that can deeply connect into any chain with a Mina bridge on it.

With the browser-based Mina node implementation, which Chainsafe is working on (work in progress), users interacting with zkApps will be able to do so with a fully decentralized and fully secure Mina node that runs entirely on their web browser – this is in contrast to interactions with web3 applications that typically rely on a default public RPC endpoint behind their MetaMask integrations. Using the browser node, users can actually participate in web3 in a fully decentralized manner.

More developers and crypto users are now paying attention to zk proof from a building point of view than ever before. What is the main advantage of zk proof?

The main advantage of zk proofs is that they enable us to build the applications that I described above – and more than that, applications that I and others already in this space haven’t thought of yet! Almost anything with privacy or off-chain execution is now possible. And we hope that SnarkyJS and zkApps can fulfill whatever you dream up (and if doesn’t, please give us some feedback so we can fix it).

We tend to focus on the blockchain applications of zero knowledge. It’s always in that intersection but i only have like one or two examples. How about are you looking towards or working towards non-blockchain, zero knowledge?

At O(1) Labs, we are thinking about zero knowledge a bit outside of the blockchain context. We believe that a lot of the initial applications people will build do make more sense in the context of a zero-knowledge-state-layer (which Mina’s blockchain is very well-suited for), but we also intend to make Kimchi+SnarkyJS be a best-in-class tool for zero knowledge applications outside of blockchain too, just in case that makes more sense for your products. We have some ideas about applying but we’re still early here. Keep an eye out for our announcements!

Okay Brandon we got very good answers! Here is the last question; what would you recommend to people who want to improve in zk area? What can they do to make better progress?

To improve in the zk area you first need to decide which part of zk you want to focus on: deep cryptography, designing products,or developing applications. The deep cryptography focus area requires a strong understanding of advanced mathematics to wrap your head around. This is the area that I am not as strong in, but I do have a basic understanding. The best resource that I found for wrapping my head around an older construction of SNARKs is Vitalik’s zkSNARK series Beyond that, to learn more about Mina’s proof system in particular, you can read the Mina book. There are more and more reasonably accessible resources coming out as folks become more interested in zero knowledge, but I’m not too familiar with them. Finally, when you’re more ramped up with the basics, the best way to keep up with what is happening is to follow research papers in this space. I want to stress that it’s not important to understand the deep cryptography details to build interesting products and infrastructure in the zk space.

To design products it is important to have a really good understanding of the capabilities of this technology — the best way to do this is to follow folks building the tools (like O(1) Labs, for example, among others!), keep up to date with presentations from relevant conferences, and talk to other builders.

For developing applications, practice, practice, practice. Start building. We hope you try SnarkyJS and zkApps because we believe these are the best choice for most kinds of zk applications, and these tools try to really make it easy for you to get started, but you can also try other tools as well — the most important thing is to start building. If you don’t know what to build, try to remake examples without looking at the code, or talk to the folks interested in designing products! Good luck everyone!

For Turkish:

Source: https://zkape.substack.com/p/zk-talks-with-brandon-kase

Follow zkApe and Brandon:
zkApe’s Twitter: @0xzkApe
zkApe’s Substack: https://zkape.substack.com
Brandon’s Twitter: @bkase_
Brandon’s Github: https://github.com/bkase

0 Shares
Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir