Epicenter - Learn about Crypto, Blockchain, Ethereum, Bitcoin and Distributed Technologies - Adam Perlow & Asher Manning: Zen Protocol – A Decentralized Financial System

Episode Date: December 6, 2017

We were joined by Founder Adam Perlow and Developer Asher Manning of Zen, a public blockchain project focused on building a decentralized financial system. The core premise of Zen is that none of the ...public blockchain networks are focused on financial asset. Zen is aiming to fill that gap through a Bitcoin-like UTXO architecture that supports multiple asset and smart contracts to enforce complex ownership rules. We talked through their original design choices, their use of formal verification, connection to Bitcoin and vision for a fully decentralized financial system. Topics covered in this episode: Why existing public blockchains are ill-suited for financial instruments Why Zen chose to use a Bitcoin-like UTXO architecture How Zen uses formal verification to allow smart contracts without a virtual machine or needing gas How the Active Contract Set reduces the burden on the miners Walking through creating, trading and settling a call option on Zen How Zen allows payments to be settled in Bitcoin Getting data from the outside world with oracles Zen’s use of Proof-of-Work regulated by on-chain governance Episode links: Zen Protocol - A Financial Engine Zen Protocol - Whitepaper Zen Protocol - Deck Google Campus Presentation - YouTube Zen - Alpha Version Zen Protocol Founders Film - YouTube Oracles and Zen – Zen Protocol Zen’s contract lifecycle – Zen Protocol This episode is hosted by Brian Fabian Crain. Show notes and listening options: epicenter.tv/212

Transcript
Discussion (0)
Starting point is 00:00:00 This is Epicenter, Episode 212, with guests Adam Perlow and Asher Manning. This episode of Epicenter is brought you by Shapeshift.io, the easiest, fastest, and most secure way to swap your digital assets. Don't run a risk of leaving your funds on a centralized exchange. Visit Shapeshift.io to get started. Hello and welcome to Epicenter, the show which talks about the technologies, projects, and startups driving decentralization and the global blockchain revolution. My name is Brian Faruan Crane. I'm here all by myself today. It's been a long time that I've done an episode by myself.
Starting point is 00:01:09 I think it happened like once or twice before. But I'm here today with Adam Perlow and Ash of the Zen Protocol. And it's super interesting, crazy and lots, lots of new ideas, a project to build a decentralized financial system. So Adam and Ash, thanks so much for joining me today. Hi Brian, thanks for taking the time to meet us. Yeah, thanks. Yeah, so I spent quite a bit of time today, you know, kind of looking at what you guys are building and it's very interesting.
Starting point is 00:01:44 I think there are a lot of, a lot of sort of key things that we have, a lot of key components of blockchains, how they work today. You guys are doing kind of differently and it works out very interestingly. So there's going to be a lot of stuff to cover here and I'm sure we won't get to everything. thing, but I look forward to that. But maybe before we get into Zen, Adam, can you share with us? Like, how did you first get involved in Bitcoin and what has been kind of like your journey in this industry? So personally, I found out about Bitcoin in 2011. At the time, a friend just showed me about this website. And, you know, he said, oh, you know, there's Silk Road. And I essentially saw, oh, well, that's really cool that you have bitcoins there.
Starting point is 00:02:33 Didn't go much on the site after that point, but I was very fascinated with the fact that there's a technology that could survive in such an environment. And, you know, I researched it. I saw the economic aspects of it, and I dived into it. Then essentially, I first started with trying to, you know, help build communities. I was one of the found, like, first people in the Israeli Bitcoin community.
Starting point is 00:02:57 Then we essentially, maybe when I came up, there were about another five people in Israel that knew about Bitcoin. After that, I was developing internally a wallet for essentially me and Nathan were building a wallet and another individual called Ellie that essentially was some sort of combination between changed a bit and auger. Essentially, it was one-click, one-click social media tipping and essentially entering, let's say, contracts over Facebook, YouTube, and whatever, Twitter. then essentially after that we decided to move on to Zen and I can talk more about that later and what about you Ash?
Starting point is 00:03:37 So I first thought about Bitcoin also in 2011. I suppose I've always been very interested in technology. Bitcoin was new and exciting then. I didn't really touch Bitcoin for a long time, not until I met Adam actually. I was in Israel working with a cybersecurity. company and a mutual friend introduced me to Adam and Nathan and they told me about this idea they they had um for the Zen protocol we discussed this we decided to go and do it together cool interesting well Adam I'm curious to serve on a high level can you tell me how do you look at
Starting point is 00:04:14 blockchain like what what do you think is interesting about blockchain sure so um I think that what's interesting is it that it's for the first time where you're essentially people have a way to assert and transfer ownership of things without needing to rely on, you know, some trusted third party. I think that's really the heart of it. I think Bitcoin was like a goal and the blockchain was a mechanism to achieve that goal. And I think although this may sound very simplistic, I think that it's most obvious that, you know, the blockchain is going to excel at the goal that it was initially designed for.
Starting point is 00:04:52 Okay. And now, so you mentioned, In 2016, you guys started working on, or you started working on the Zen Protocol. What's kind of the origin story of that and the vision that you guys came up with then? So personally, I was kind of, it's very funny by serpentipity. I was somehow found myself, you know, behind them, whether it was, like somehow had a personal connection with colored coins or a master coin, you know, even Ethereum. And I saw how all these projects came and went or some of them are still ongoing. And essentially, you know, Color coins was motivated by this idea of let's move some asset around,
Starting point is 00:05:38 but we don't want it just to be Bitcoin's, right? Let's have more assets. And then you had Mastercoin that said, you know, the Bitcoin 2.0, the first go round of this, like, new blockchain projects. And Mastercoin said, let's have more complex conditions. So essentially, you know, we want to have, let's say, let's say there's 20,000. or 30 different types of transactions you can do on MasterCoy. And Vitalik was working on that at the time, and he said, well, I want to have more programmability.
Starting point is 00:06:05 I don't want to have this restriction of just, you know, let's say 20 or 30 functions that I can do. And I think that Ethereum went in that direction of enabling something very generalized and programmable. But essentially, what I think that still the focus is, is you want really two things that Bitcoin doesn't provide. I'm not talking about like adjectives, like more transactions. actions per second or something. I mean, two like core things, which essentially, you know,
Starting point is 00:06:28 support for multiple assets and ownership under complex conditions. And we felt that none of these platforms are doing it correctly. And if you want to essentially facilitate a financial system, not just, you know, digital money, but actually have a bank in your pocket. You need to build something that, you know, is custom designed to do that. And that was essentially the motivation that we saw, you know, we saw in 2016, after the Dow hack happened, we had this feeling that there was something like that could be done better for a while looking at Ethereum grow. But then actually the Dow hack happened, it was like confirmed. He said, okay, for sure we can do something better. It's not better with Ethereum. Like each project has its own things that it's good at. But for this specific
Starting point is 00:07:14 use case of, let's say, owning your assets and transferring them under conditions, we felt that we could do something better. And that's how essentially Zen came about. Okay, this is good. I like this definition, right? So you say, okay, decentralized financial system, you need basically, well, Bitcoin has, right, the money transfer, but then you need to be able to do it with multiple assets. And you need to have, like, complex conditions.
Starting point is 00:07:38 And of course, if you talk about complex conditions, you start talking about loans or derivatives and options, et cetera, et cetera, right? Yeah. Sure. many people would say, but you can do that on Ethereum, right? You can have multiple assets. You can write smart contracts to mirror basically any kind of derivative. So what makes Ethereum ill-suited for this? So I don't want to attack Ethereum in any way because I think that the design decision there is to enable a platform which is programmable and that allows people to try to innovate.
Starting point is 00:08:14 And in order to be able to do that, you have to kind of say, you know, we're not going to specialize, we're not going to do any one thing good in order to leave, you know, room, air in the room for the other kind of like use cases, let's say. Um, now if you look at it how Ethereum came about, by the way, excuse me for my cold, um, but yeah, so if you look at how Ethereum came about, um, it was like, first it was going to be, you know, more complex scripts on Primecoin. Um, and then it moved into its own thing. And currently the architecture is such where you have like these, these accounts and you, you, You have these externally owned accounts and internally owned accounts, and that's how the whole thing works.
Starting point is 00:08:55 But what people essentially really want to do is they don't want to have these daps. They don't want to have a DAP that's acting like a token or a doubt that's acting like a contract and just like this sort of programmability in there. What I think they really want is, again, they want to own assets under some conditions. And they want to reason about these assets in that way. And that's where, let's say, with us, you know, we don't have any ERC20. we actually have tokens. It's a distinct object. Even in Bitcoin, actually, it's like,
Starting point is 00:09:22 it's just presumed because there's only one coin, right? That the input and output is always Bitcoin's. But with us, we actually, you know, each token has like an identifier. And we have tokens as first class citizens, as we call them. And then we have contracts. And contracts you can think of very similar to like a pay to script hash in Bitcoin. Except with us, the pay to script hash, rather than being like a one-time use transaction,
Starting point is 00:09:46 that pay-to-script hash is essentially held in the active contract set. So if you want to spend something locked to pay-to-script hash, you have to be able to validate it against a contract. And the contract is a logic that will say, okay, you're allowed to release this under if these conditions are fulfilled. Okay, so let's take a step back from here to provide some context for this. So I think we, you know, you kind of described, I think, quite well, right? this general idea of Zen as his decentralized financial system and, you know, define kind of what
Starting point is 00:10:21 those additional pieces are that are needed. So multiple tokens and the complex conditions, there are anything else? Is that, that's in view of you. That's kind of the full thing. Those are like, let's say the, I'd say the components of it, but there's a lot of prerequisites, I'd say, in there as well. So no one's going to be using. this if there's unnecessary exposure to risk. So you don't want to replace your banker with a contract that could essentially, you know, lose your money by mistake. And you don't want to replace your banker with, let's say, being exposed to assets, which are very volatile as a cryptocurrency. Maybe I'm just a normal individual, you know, I just want to do my banking without a bank, essentially. But I don't,
Starting point is 00:11:03 I'm not even interested in, you know, Bitcoin or ether, any sort of crypto token. So this necessary exposure to, let's say, a native token is something that, that, that, that, you know, that, you know, I think is going to hold, you know, the current crypto system is back. So one prerequisite is, you know, essentially security, predictability of the outcome. And then another one, I'd say, is actually being useful, doing something that actually makes a difference in people's lives. That's essentially the whole motivation for us building an Oracle mechanism because, you know, it's nice to have some more contracts and everything, but what are they worth if they can't,
Starting point is 00:11:39 you know, operate on, let's say, interesting events. And the final one I'd say is scalability. And I hate to say that because it's kind of like become like a meme already, blockchain scalability. But you do, we have seen with Bitcoin where it's at the point where if you don't take that in mind when designing the system initially, then it may make something bad may happen that may permanently change the course of, you know, the outcome of that protocol. Okay, very good.
Starting point is 00:12:11 So we have this additional kind of design requirements, the security thing. And of course you mentioned the DARA incident before, and I think we see that continuously in the theorem, the challenges of that. Then the usefulness. And of course, I think everybody or almost most people listening will understand the significance of oracles in that context that you can basically have outside information so that some of these contracts or instruments can actually. respond to events in the world and scalability. Of course, that's also a perennial topic. Great. Okay, I think that gives a good context. Now, it seems you guys are very inspired by Bitcoin and you built this in this kind of UTXO approach. Now, actually, maybe, I think a lot of people will not be familiar with UTXO versus Ethereum's model. Can you explain?
Starting point is 00:13:11 Just very briefly, kind of like, what is this UTXO approach? What is Ethereum's model? And like, why did you guys choose the Bitcoin way? Well, actually since I think this is a great question to also have Ash come on and comment about that. Right. So I suppose I said the UTXO approach is much more simple, actually, than to have an account space system.
Starting point is 00:13:38 You're envisioning tokens. as something that can be spent and split into more tokens. And they are just representative of some kind of value. You can split them, you can consume them to make new ones at the same amount. Every transaction outputs the same amount that it was input. That's pretty much it really. There's nothing more than that. You don't need to keep track of any kind of account balance. You don't need to exchange anything through any kind of smart contract.
Starting point is 00:14:11 you're just locking something to a public key saying, okay, this isn't mine anymore, now it's on an analysis. The accounts-based system in Ethereum is far more complex. Probably the reason Ethereum ended up with an account system is because they decided they wanted to be able to do general-purpose computation. So they designed Ethereum not to be a network
Starting point is 00:14:30 that can send around assets, but to actually function as a computer. So once you're functioning as a computer and you have the ability to stall state, you might as well represent assets as just part of this state as entries in some database. So the accounts base system in Ethereum is probably not nearly as simple as a Bitcoin-style system. It's just that once you already have all of the complexity of maintaining some kind of decentralized computer, you might as well go the extra mile into accounts as well.
Starting point is 00:15:05 Okay, maybe I can just sort of like paraphrase that. And let me see if I get this right. Because you guys say as a sort of primitive unit in the system, right, is assets, right? So different types of assets. And then the other thing, right, the computation is kind of like associated with particular asset. And it manages like ownership of that asset, right? So kind of the asset stays as this like fundamental unit and like it is in Bitcoin, right? Or the Bitcoin is the fundamental unit.
Starting point is 00:15:35 So it's kind of natural to just extend that a bit. Whereas in Ethereum, right, because you general computation, you can do anything and contracts calling each other, there's no assets aren't a fundamental unit, right? So you get rid of assets and you kind of build it later in and of course you end up with a completely different architecture. Yeah, I think that's very accurate. I'd also say that one of the things that you could get around, maybe quantum is trying to do it right now. but essentially using a gas system not knowing what the transaction fee is ahead of time kind of would require an accounts approach. I find it very hard to, how would you do UTXOs if you don't know what the transaction fee
Starting point is 00:16:22 you're offering is ahead of time? So I think that's kind of like a design requirement on Ethereum set. Okay, okay. So this is now, again, you kind of rephrases. So of course in Ethereum, right, we have this system like, okay, people sending computation, I mean, the network doesn't necessarily know how long it's going to take, right? So they have to send along with it basically money and then that gets paid to minus depending on how much computational steps it takes.
Starting point is 00:16:53 And of course, in Bitcoin, it's just paid based on the size of the transaction. And then I guess in the theorem, right, the size of the transaction doesn't really tell you anything about the computational complexity. And so with you guys, I guess you have a similar thing, right, where the size of a transaction isn't a good indicator of how much work it is going to be to execute that transaction. Is that correct, right? So with us, actually, that's our, I'd say, main scientific contribution that Ash has done,
Starting point is 00:17:26 which changes that up. I want to, yeah. Yeah, so in a theory, because you want to be able to do any kind of computation, they designed Ethereum to be able to support this by having this gas system where you tell the Ethereum virtual machine to do all of these instructions and each time it looks at the instruction,
Starting point is 00:17:53 it looks up the gas price for that instruction. It looks up how much gas you've paid for. If you have enough gas to cover that instruction, then it subtracts, It subtracts the gas from the gas you paid for, and then executes the instruction, and it proceeds in this loop. Now, this model of giving the virtual machine
Starting point is 00:18:14 a load of instructions is part of Ethereum's architecture of being a computer. They wanted to make it operate at the lowest level possible to give it the greatest possible generality. We saw with incidents like the Dow and the Parity Multisig, or what hacks, having a very low-level system doesn't necessarily make your system very secure. And if you want to be doing any kind of decentralized finance,
Starting point is 00:18:42 you need to be able to inspire a large, a high degree of trust within smart contracts. So we looked at what we could be doing to give greater security guarantees in smart contracts. We're interested in language-based security. So instead of going with the absolute lowest level language, because it's the simplest, we decided actually, we're going to go with something extremely high level.
Starting point is 00:19:06 And it turns out when you have extremely high level languages, you can actually use them to express things like their own resource costs, which is very unusual. Probably very few people outside of academia would ever have seen this done. But we've kind of brought this into the real world somewhat. So we're having smart contracts that must express their own resource cost, which can then be quickly verified.
Starting point is 00:19:40 So because we know the resource cost of any contract, which can be parameterized by inputs or whatever you want, it doesn't have to be fixed, but there has to be some expression that you can give for it. Since you know how long a contract is going to take to run before you run it, you don't have to do all that keeping track of gas. Essentially, let me just add the way I see it is that, you know, yeah, in order to enable, like, loops and recursion, the only way to do it is by implementing this, putting everything under this, like, virtual machine umbrella and having this counter in there. And I think that we're probably the only system that both allows you to do recursion on arbitrary inputs, while at the same time not requiring this sort of counter or virtual machine to do that.
Starting point is 00:20:29 And that's all this F-star formal verification stuff, Ashthas has been talking. that sounds cool right so I get that in Ethereum it's kind of complex because you send your contract in there or your transaction in there is going to result in some computation you have to send money along with it so it has enough for that computation you don't know exactly how much or maybe or the network at least doesn't know when that transaction comes how much it's going to be and and of course if you can if I can prove okay this is going to be this many steps, I can send exactly that amount, pay for exactly the transaction, so I don't have, we don't have gas anymore. That sounds good. Is that such a huge deal? Like, why is it so great
Starting point is 00:21:16 to get rid of gas? So it's not that, I mean, beyond, I think Ash previously pointed out, let's say those four times as much steps just to like kind of monitor the gas. It's beyond that. It's like, I think the gas is pushing the requirement for this virtual machine rather than the other way around. Once you can get rid of gas, then you can start treat, you can treat a contract as its own independent object. You don't need to look at a contract as part of the greater thing. Because think of it, if you have no way of determining the price of executing the contract, then the only way that you can be able to deal with it as a miner is by using this virtual machine. But with us, since you don't need the gas and you don't need the virtual machine,
Starting point is 00:22:00 you can evaluate each of these contracts on its own. Not to confuse the viewers, but that's like essentially what our analogy for, let's say, maybe a virtual machine, although very different is our active contract set. So this set of contracts that can currently operate. But you can view each of these contracts as its own independent computer. Now, and the benefit of this is essentially a few things. Not only do we have language-based security, which is the whole form of verification, and that kind of stuff.
Starting point is 00:22:32 It's also, I don't even know how to call it, architecture-based security. So let's take the recent bug that you had where someone essentially deleted, committed suicide on an ether account. And that ether account was used to validate a multi-sid contract. Now, because of this paradigm where you have a virtual machine and one thing calls the other to get things,
Starting point is 00:22:53 rather than these independent components, not even like each independent contract, you didn't have built in, let's say, good mechanism by which you could like reactivate that contract, revive that contract, and a lot of money was lost. So this idea of having this isolation and this idea of this isolation and independent evaluation enables you to essentially enables a lot more scalability because it's not a single threaded process anymore. It's like a multi-threaded process. It's like running a GPU rather than a CPU. You can think of it that way. Each of our contract can run in parallel and they can
Starting point is 00:23:29 run in compiled version because they can run compiled, that's also a lot faster. So we don't interpret things with us essentially. Once you've activated a contract, miners take its code. They extract the S-star into essentially native machine code. They compile it to that. And then whenever you're doing an operation that depends on one of these contracts, it just runs super quick at the machine code level essentially. Okay, I think I sort of get it. Given that you don't know the cost, you must have gas. And given that you have gas, you can't essentially compile the code in the contracts, natively. You're forced to interpret it, if you don't know the gas cost. You're forced to go along one
Starting point is 00:24:12 instruction at a time, keeping track of the gas cost for every instruction. Every instruction you're looking up its gas price. You're saying if the user has enough gas, you're subtracting it and going on to the next instruction. Why can you compile it and have gas? Because you have to be doing this interpretation one by one of these instructions. You're not necessarily going through these instructions. You want to be able to stop when you run out of gas. Right, right.
Starting point is 00:24:41 I mean, I guess I could imagine, let's say I have to run the contract before. Then maybe you can compile it in some of the sense that you, you already know how much gas it costs. Well, no, you only know how much gas it's going to use if it's given the exact same. it's given the exact same input and the exact same state. Yeah, okay. You're not invoking it every time with the exact same input on the exact same state. So you have no way of knowing. Yeah, okay. No, I mean, that sounds, uh, it sounds great.
Starting point is 00:25:08 And of course, the whole formal verification thing, right, is also something that has been, uh, much talked about. I think mainly in the context of security, right? Uh, but that's also very interesting. I think these kind of other simplifications. that come along with it. I want to note that this isn't theoretical also. I encourage to your viewers to go right now to alpha.zmproticle.com. It's not a concept.
Starting point is 00:25:35 It's like we actually have something working. So yeah, let's see. Let's see if we're right. Let's see if it breaks. Yeah. So what I found interesting reading through you guys' material is this, this UTXO approach. And of course, what actually it reminded me of a lot
Starting point is 00:25:53 was Corder by R3, right, which is also very, very Bitcoin inspired. And it also has this kind of like modular thing where things are kind of their own entities and get like executed and they can have their own like kind of verifiers or little consensus processes as opposed to having like one big global system. Do you also see a lot of parallels to Cora? Personally, I got to say, although we just talked about it right before the show, the last I remember looking at Korda was a few years. It's been a while until I really took an in-depth look at it.
Starting point is 00:26:30 And essentially, you know, my current went, right? And I think he had maybe a lot of input on the design. So maybe that's why they went with Bitcoin. I'd say it is probably a lot, a lot very similar because they're a blockchain built for finance and we're a blockchain built for finance. The difference is just that, you know, one of them is for selling it to banks and we're, you know, for giving people more freedom. So, yeah, they may very well have a lot of similarity there, I'd say.
Starting point is 00:26:58 Yeah, yeah, of course, that is the big difference, right? Is that this is meant to be a public network, or this is a public network and Corda's permission network, I think. But, yeah, I mean, I mean, I'm not, I don't understand Corda that well. You know, we did, I guess, a podcast about it with Mike and Richard once upon a time and kind of read about it and stuff, but, um, but it sounds very similar. I think a lot of things are similar and I haven't seen that elsewhere. I don't think I've ever seen another project that kind of went a similar direction. The UTXOs you mean? Yeah, this yeah, this kind of UTXO smart
Starting point is 00:27:39 contract mix. I think it's a lot, you know, simpler for a developer to reason maybe about accounts initially, right? Maybe you want to abstract that stuff away. Maybe you want to have the tools like SDK where the developer is sinking in terms of a wallet rather than in terms of which, you know, UTXO is you going to spend right now. That I'm very empathetic to. I guess the thing is, like, imagine that for a second that you were as a node or as a user, you were like partitioned from the Bitcoin network. So, like the UTXO isn't itself like a cryptographic thing of, it's like a cryptographic object of importance. And you know it's yours. You don't know if it's been spent or not, but you still have something. Whereas with the account system, it's like,
Starting point is 00:28:25 you kind of need everything or you have nothing. So it's like, it's a very, it's a minute difference, but yet it can be important. So yeah, I think, I think that in general, it enables a lot of things at a technical level, but at a usability level, you know, people should be thinking about UTXOs, maybe. This episode is brought to you by ShapeShift, the world's leading trustless digital asset exchange quickly swap between doesn't. dozens of leading cryptocurrencies including Bitcoin, Ether, Zcash, Gnosis, Monero, Golem, Auger, and so many more. When you go to Shapeshift.io, you simply select your currency pair, give them your receiving
Starting point is 00:29:06 address, send the coins, and boom. Shapeshift is not your traditional cryptocurrency exchange. You don't need to create an account. You don't need to give them your personal information and they don't hold your coins, so you are never at risk from a hacker or other malicious actor. ShapeShift has competitive rates and has even integrated in some of your favorite wallet apps like Jacks. So you can swap your digital assets directly within your wallet just as easily as putting on your slippers. Whenever you see that good-looking fox, you know that's where Shapeshift is.
Starting point is 00:29:38 So to get started, visit Shapeshift.io and start trading. And we'd like to thank Shapeshift for their supportive app center. Well, let's speak about this active contract set. Can you explain how that works? So the idea is you see this huge growth in state space in Ethereum. And that makes sense. It's not a criticism, like legitimate, but essentially the idea is to say, well, why do we need these contracts? I just sit around there.
Starting point is 00:30:08 And actually, maybe Ethereum, more this is the kind of thinking, like, let's have them commit suicide, right? We have two types of contracts. We have active contracts and inactive contracts. Now, an inactive contract can only receive funds. And the identifier of the inactive contract is the hash of its code. So it doesn't have, that contract doesn't have state directly. It just has code that stays fixed. You take a hash of that code, and that's your contract identifier.
Starting point is 00:30:35 And you can always send tokens to contract. However, releasing tokens from that contract, sending funds from a contract, or using a contract to issue new tokens, that's a step that requires activation. because, say for example, I lock up funds in a contract. Well, now we need the minor and then I say, okay, I want to unlock the funds. How does a minor know whether he should listen to me or not? The only way the minor knows is by storing that contract code. And essentially, the active contract set is the area,
Starting point is 00:31:07 it's the group of contracts, which right now people are paying the miners to store. So essentially, if a contract is active, you can spend funds locked it, And miners have to store active contracts. And they get rid of the contract once it runs out of the activation fee. Okay, so I think on a high level, right, that kind of makes sense, right? So I'm putting in this contract, right? Of course, it creates a burden on the miners and on the network, right? So I pay for the time that it lives there, right?
Starting point is 00:31:40 Not like an Ethereum where I put it in this contract, I pay once, it's there forever. So that I understand. But then let's say there's a bunch of assets in there and this runs out, right, out of money. And you said, okay, but somebody can reactivate it. But then how can you reactivate it if the minor kind of like throws away, it doesn't have it anymore? Like how does that work? Sure. So let's say, and maybe we'll use this example again.
Starting point is 00:32:09 Let's say we're talking about I'm writing a call option. So a call option essentially says, you're going to pay me money today for the event that, let's say, in a month from now, if the price goes above what we call a strike price. So if the price of the asset of the stock goes above a strike price, then I owe you the difference between the strike and the appreciation of that asset. People essentially use call options when they're bullish in the short term, when they think an asset is going to go up in the short term and they want to essentially, you know, capture their gains and they don't want to be exposed to any downside. It's also a hedging tool. So essentially, let's say I'm going to write you a call option on Apple. We're going to look at it again in 30 days. So I'm going to create that contract. I'm going to, step A is going to be writing the contract code, creating the contract, you know, identifier, which is done automatically. And, man, that's step one, right?
Starting point is 00:33:01 You read that contract and you make sure that it's a legitimate contract that's not trying to steal any funds from you. You know that, you know, if the price of Apple goes above, let's say, $200, dollars within the next 30 days, then you're going to be able to essentially take the funds back. So after I wrote the contract, I'm going to then activate it. Now, once I activate it, I essentially, what I'm going to do is I'm going to attach an activation fee. Let's just call it what we call the contract sacrifice. And let's say I'm going to provide a contract sacrifice for two blocks. And by the way, I should note that while we have different sorts of fees, so we have a different
Starting point is 00:33:38 sorts of fees. So we have computation fees, which is like for the cost of time. And we have the active contracts at fees, which are just like storage fees. So let's say I'm going to pay whatever, what it costs to activate for two blocks. Within that two blocks, you know, we're going to activate the contract. And then I'm sorry, and then I'm going to send collateral to it. And then that contract will issue me, like the, it'll issue me the writer's token. So I'm going to hold a token now of the person who just wrote a call option. then you're going to come in. You're going to pay the premium, right?
Starting point is 00:34:11 Let's say it's five bucks. You're going to pay that premium, and then that contract will issue you a token saying, you know, if Apple goes up and you have this token, then you can get the spread out. And after that operation has been done, after we each have the tokens that entitled us to our rights, that contract goes inactive.
Starting point is 00:34:33 Now, both of us have a vested interest to keep this contract in our local computer, in our local memory, right? In the event, you know, whoever like wins, they need to get their money out. Now, let's say for all intents and purposes for the next 29 days, nothing interesting has happened. The price of Apple hasn't risen above 200. That contract just sits there inactive. But in the meantime, me and you can trade these tokens, right? So we can trade these tokens irregardless of the contract and irregardless of the collateral that that contract holds. So we're just moving these tokens around at free will
Starting point is 00:35:08 and no one cares about what's going on in the contract. It's only at the end, like, at the end of the position in our example where all of a sudden Apple jumps above 200 then you say, okay, I'm going to activate this contract and remove my collateral. And then essentially what you're going to do is you're going to
Starting point is 00:35:23 retake the code, you're going to, you know, put it back in the active set. It'll activate for a couple blocks. You'll take out your money and that's going to be it. Yeah, this is amazing. Yeah, I understood that, but maybe we just maybe just walk through it again because I think this is
Starting point is 00:35:39 like a really key thing here but it's okay so we have the the call option first right which I guess the exact substance doesn't matter so much but it's basically like a contract that you know means that I pay
Starting point is 00:35:55 something for a right and then if the share price is at a certain point I can make money and if it isn't there then it's just worthless to me So you create this option, right? So creating this option means you basically create a bunch of smart contract code. You deploy it on a network and you pay for it to live there for some time, right?
Starting point is 00:36:21 This is a storage fee. Now, in this case, even though this option would only become its due date. Expirate. Yeah, it's expiry date. It's like a month later, you're actually only paying for. storage for like, I don't know, an hour or something like that, right? Because that is the window of time that then I can come in and say, I'm going to take the other side of this. I'm going to also, you know, put in some collateral. So we both have some collateral in there. You get a token. I also get a token, right? So we both have a token that basically represents the opposite side of this trade. Then this contract goes like, dormant. So the miners throw it away. But we keep it locally, right? We keep that contract code. Now, we can trade the token. I presume if you trade the token, right, you'd also, like, let's say
Starting point is 00:37:19 we sold it to a third party, you'd have to send them along with it, the contract code. But, you know, let's say we can trade this token, Apple shares change in price, so the tokens change in value. and then after a month, you know, let's say I was right, the Apple Chair went away. I fought, so my options now worth a whole bunch of money. So I can basically say, I'm going to pay or I'm going to send back this code on the chain. I'm going to pay this activation fee again, and I pay to execute it and to basically get my money. there. So the contract only really is there exactly when it needs to be there and is paid for exactly then. But at the same time, you can still trade that value the entire time.
Starting point is 00:38:14 Yeah. Yeah, that's exactly what's going on. And I guess, let me, I guess the implication of that too, I remember reading that somewhere, but I didn't fully understand it, but I think now I understand it. I guess this also means that now, let's say you, like my, my own, option is worth, you know, I'd get from you $100 at this point. So I can go on the chain, right, pay for that activation fee, pay for the computation fee, and then I get my money, but of course I pay those fees. Whereas could you also do it that basically you pay me out of band and now I don't, like maybe now it's not possible for me to claim anything anymore? Yeah. Does that work as well so that you don't actually have to.
Starting point is 00:39:01 execute it on chain? Yeah, that's that's great intuition. So that's exactly, that's exactly, something that I find to be very attractive, essentially saying, you know, we're going to, we're going to view these contracts as like an enforcement mechanism more than the actual payment. And maybe I have these like outstanding debts and I'm entering all these sort of deals. And the reason that, you know, maybe I'm doing 100 deals a day, but I'll only have like a contract with collateral for let's say 10 of those deals. And I can, be proving, you know, that I, you know, someone entered a position. I paid them when I needed to pay, and I can prove that, you know, I've made these transactions. Um, yeah, that I've essentially
Starting point is 00:39:41 made these transactions and pay you, like you said, out of band. So you bought the, you bought the option, right? And then, you know, you won. And you, you, you sent this request. You send this token to me. And then after you sent me the token back, I'm going to, you know, send you money. Um, now what, what you could do essentially is you could come to the contract and say, hey, you know, I can show that I sent added the token, but he didn't send me the money, right? Now I need to get my money plus a penalty, for example. Yeah, yeah. No, this is very interesting.
Starting point is 00:40:13 I think very just unusual. I really like how it's different from other blockchain architectures that I've kind of seen. And yeah, so I guess with this multi-token approach, there's no, assets just get basically, you know, treated the same way. It makes sense. So there is, of course, this native token, Zen. And now that doesn't get treated exactly the same way, right? Because that is what you use to pay for. Is it the storage fee is just paid in Zen? Was that right? you know in general right the way i view it is that why why have another token the token essentially does two things um obviously first is it's it acts as you know an economic subsidy both for development
Starting point is 00:41:09 today and you know mine is in the future um so so and or other people in the future um essentially so it acts as an economic subsidy and the second thing is it acts as a focal point so coming in and saying okay, we're all going to accept, you know, this one thing and agreed that, you know, this should be used for certain operations. So some operations could be, for example, voting saying, you know, we want to, you want to vote on what happens. And the other operation, for example, could be when you have a sensitive, when you have a sensitive scenario, like the contract sacrifice. So when I'm inserting a contract in the active contract set, any minor can decide to activate that contract. But that contract is going to be sitting there, you know, active maybe for another 100 blocks. and he's not the one bearing of that externality.
Starting point is 00:41:52 He's not the one bearing of that cost of storage. So when I make the contract sacrifice, that contract sacrifice is essentially split up among all the miners. And we need to make sure that they're paid the contract sacrifice and a invaluable token. Because, for example, compare this with a transaction fee. Well, in a transaction fee, if a miner wants to waste his time by, you know, mining a worthless transaction,
Starting point is 00:42:14 well, then that's, you know, whatever, his prerogative, right? He's found the proof of work and he can waste he can take transactions fees, which are essentially useless. But when he's creating essentially bloat on the system, we need to ensure that the thing that's being made a payment and will have some value. So that's the only difference between the other tokens. But there's no real difference, just to make my phone.
Starting point is 00:42:37 Sorry. Right, right. Because if a minor executes the computation, then it's just them and others don't have to actually execute it. So right. Everyone has to do validation, but essentially, yeah, people, people go ahead and they do validation, but they're not like, it's easier to, let's say, place a limit on validation, just like in Bitcoin. You have, you know, size limit, like one megabyte, but there's also like some sync hash, you know,
Starting point is 00:43:10 limits on certain operations. And the same thing going to happen here. We're going to say, okay, you know, there's limitations on the amount of computation of mine I can do, but the amount of time you can activate a contract for, you know, that's justifiably limitless. I mean, I guess maybe I would phrase it like that is that if you have a minor, right, so then they have an incentive to optimize what they actually execute, right, because they keep those fees, right? So they want to choose something valuable. They don't want to choose something useless.
Starting point is 00:43:51 But if it's the activation, right, where maybe it's for many, many periods going to be used and socialized, I guess, then it doesn't, it creates this kind of tragedy of the commons problem, maybe. Yeah, tragedy of the commons and also the ability to just easily attack the system. Because let's say we're counting, you know, just points.
Starting point is 00:44:15 And one point has, you know, the value of a thousand x and the other point has a value of one x um if we're just counting it on a on a purely like absolute mechanism without taking into account like um you know the rates that these things are going for then it would be very easy for someone to pay um in the cheap points and in the expensive ones right okay yeah well let's let's move to the next thing let's speak a little bit about uh bitcoin integration because you guys have some interesting and weird kind of connection to the Bitcoin system. Can you explain how that works?
Starting point is 00:44:52 Sure. So the idea here is, you know, the Sun was always wanting to come in as like sort of a side chain, not exactly a side chain, but essentially as providing help to Bitcoin in some manner. So saying we're, you know, we're essentially, we're not trying to compete with Bitcoin, we're providing complimentary, complimentary services to it. you know, having other tokens and that kind of stuff is actually something useful, sometimes. And the way that, you know, we're doing Bitcoin integration is essentially
Starting point is 00:45:25 the Zen miners, they're running a, they're mining, you know, Zen blocks, but they're running a Bitcoin node. And while they're running this Bitcoin node, what they're being forced to do is they're forced to take the state of the Bitcoin network, essentially, and commit it in the Zen block. So when a Zen miner finds a Zen block, not only is he ordering all the transactions in the block. He's also taking the data that he's like reporting to what he thinks happened in the Bitcoin network. And other Myers will reject his block if they think that, you know, he lied about what happened in Bitcoin. This property essentially allows you to, um, it allows other people to essentially use Bitcoin transactions as an argument for smart contracts. So I can,
Starting point is 00:46:08 for example, in our call option, like example, I can write a smart contract that says, um, you can pay me the premium to my Bitcoin address, for example. Yeah, so the Bitcoin integration, it essentially enables, you know, the interaction. For example, you could also even imagine back in the day, like you had Satoshi Dice. So you can imagine that people, you know, since it's a very quick transaction, you send, they send back, that Satoshi Dice would have like a small basket of collateral sitting there, making sure that, you know, everyone can trust them while all these transactions are going on. So let's just do this thing of, okay, so we have this call option on Zen and now we want to have, you know, we have this financial instrument on Zen, but now we want to have a Bitcoin payment on the Bitcoin chain that, let's say, you know, for payment that I owe or something like that.
Starting point is 00:47:08 And okay, I get that basically the headers of the Bitcoin chain are kind of written into the Zen chain. So I guess that means you can, so would it work like this? You send me some Bitcoins. Because the Bitcoin headers are in the Zen chain, you can basically kind of provide like an SPV proof on the Zen chain, the proof that you actually paid that Bitcoin and then the Zen protocol on the Zen chain. understands that? Is that how it works? Exactly. Yeah. Thank you. Okay. Okay. Amazing.
Starting point is 00:47:45 Pretty late, but let's briefly speak about oracles at least. Yeah, what's the role of oracles? So essentially the oracles, you know, are like not built into the protocol, but they're still a very necessary component to have. And, you know, we provided the first ones. But essentially the way that we're doing it is we're saying, listen, many of the assumptions made in previous Oracle mechanisms were saying maybe someone wants to ask any question. But essentially, it's like a pull mechanism in other Oracle. So essentially, you know, the Smart Contract and Ethereum Smart Contract would ask the Oracle for some data and then the Oracle would go and provide that data.
Starting point is 00:48:28 With us, it's more of a push mechanism. So kind of what happens here is the Oracle is taking the state of all the datasets and it believes that. someone may be interested in. So stock prices, you know, weather info, whatever, flight cancellations, all this kind of stuff. And he's sorting that into a merkle tree. And he's committing to this Merkel tree every block. Now, what that enables is then, right, it's very cheap to make the commitment. And he can also charge for payment. So when he's writing, when he's doing this marble tree, he's like salting these leaves. So he's creating the sort of secret that you need to have in order to be able to prove of what the price was.
Starting point is 00:49:09 And so then what the Oracle does is, you know, he just, he goes about his daily business. He doesn't, there's no like complexity really here. He's just, you know, gathering data from any APIs and doing this like continuous process, very methodological. And in the event that is needed, in the event that, let's say, I default on a contract, how do you prove what the price of Apple was, right? So what you're going to do is you're going to go, you're going to pay that Oracle, you're going to say, listen, please provide me with the path in the secret.
Starting point is 00:49:35 that essentially will enable me to prove to the smart contract what the price of Apple is at the time. So me and you are going to agree when you write the contract who the single oracle or a set of oracles will be. In the event one of them is down or one of them is malicious or whatever. But we're going to agree on, let's say, a set of five oracles, right? And essentially, you know, most of the time we're going to settle without the Oracle. But in the event that we need to settle, it's not even the contract talking to the Oracle. You'll just go, you'll ping the Oracle, you'll say, hey, man, I need to have this proof.
Starting point is 00:50:09 He'll provide you the proof, and then you can use that proof in the contract. And that's how the contract works. The oracles work, I mean. One of the things I found interesting about this, I think you mentioned that somewhere in the paper or something, is the regulatory aspect of that, right? Because an Oracle, of course, can be, like, let's say an Oracle writes to a contract on Ethereum,
Starting point is 00:50:30 and that contract is then some financial instrument. Well, that can be kind of tricky, right? because all of a sudden it's like a K-based, is regulated activity, et cetera. Whereas here, basically, it's almost like the Oracle is just a cryptographic data feed. It's kind of like writing that into the chain and then it has to be queried and it just provides his answer.
Starting point is 00:50:53 That can then be used to execute whatever contract on Zen without the Oracle actually being involved there. Exactly, exactly. So for example, let's say maybe, um, uh, One thing that may be totally legitimate in a country, maybe, you know, a normal stock, right? Or a normal C of D, let's say. But then that same country may have a ban on, you know, highly leveraged binary options. But the Oracle, as far as the Oracle's concerned, he doesn't know.
Starting point is 00:51:23 He's just reporting the price of Apple. Okay. Well, let's speak now about another complex topic. So the consensus algorithm, so you guys have this also, again, like unusual things. that I haven't seen anywhere else, which is basically that you have these hashing algorithms, like in Bitcoin, but except that there are several different ones, and then one uses the tokens to basically vote on the difficulty for the different algorithms. So basically saying, okay, I mean, so you have some, almost like a consensus process to manage,
Starting point is 00:52:05 match the proof of work algorithm. Like, why? It seems a very, like, strange... Why would you do that? Yeah, why would you do that? So the motivation, actually, this was first published to the Bitcoin mailing list. I think it was like in March
Starting point is 00:52:25 before the whole fork thing happened. And essentially, we recognize that there's this issue of contention here. You know, let's say maybe users aren't satisfied that, you know, miners are acting in certain ways, and not only in the ways that have been recently, you know, on social media all over, maybe, you know, it's not okay to SPV minor,
Starting point is 00:52:46 maybe even pools aren't okay with users. It doesn't matter what the case is, but essentially users have no credible threat against these miners so they can say, we don't like it, we don't like it, we don't like it, but there's not a very high chance that users are going to, let's say, hard for it and change a proof of work, because, you know, obviously those coin holders would be hurting themselves very much in the process of doing this. So this creates this kind of like Cold War dynamic where no one can make the first move.
Starting point is 00:53:15 Also, on kind of a separate side note, but it mixes into this, is the fact that, you know, when Bitcoin started, right, the idea was that Hashpower would be the votes, one CPU, one vote. And then I guess everyone kind of agrees that maybe Hashpower wasn't, isn't like dispersed, in a way that it's the optimal way to make decisions in Bitcoin. So we're not saying, okay, we'll just let HashPriber decide, but there is no good governance mechanism. If HashPraversen deciding what is people who yell the loudest on social media, that's not necessarily a good idea. And because it wasn't substantiated at the first point,
Starting point is 00:53:51 even when they hold coin votes, which I think they did, I don't want to get into the whole argument, but I think they did on, you know, Bitcoin.com's website. They had a coin voting, right? People didn't accept that because they said, well, you know, that's not the way the system was, It wasn't designed for coin voting. So this whole mechanism is both the way to essentially say, number one, like coin voting is going to be like the,
Starting point is 00:54:12 essentially the way to make decisions going forward. And number two, we're going to also use coin voting as a way to enforce and incentivize actions on behalf of the people who are servicing the network. So we view kind of like minors as people who need to service the network. And, you know, they need to be paid for it. And if they don't listen, essentially, they can lose the, it's, you know, they can lose the, it's not like a, it's not a God-given privilege to be a minor in Zen, right? That can be taken away from you if you don't behave correctly, or at least taken away from everyone who owns your sort of hardware.
Starting point is 00:54:47 And so this provides this sort of incentive to behave correctly because you know that it's a credible threat that the users may, may kind of, you know, provide you with less of the mining reward, with less of the blocks. And they'll do that by increasing the difficulty for you relative to all the other miners out there, the different hashing algorithms. Okay. I mean, I actually, I can sort of understand if one comes from the like proof of work,
Starting point is 00:55:14 like paradigm to say, okay, this is an improvement, right? It's like potentially, right, it potentially addresses some of the issues you've seen in Bitcoin. But it feels to me, I mean, you know, from sort of coming a little bit from the cosmos, tenderman, proof of stake, inspired thinking. It feels to me it's going like halfway or partially because, okay, sure, coin voting governance makes sense, but then Wynol also use basically the coin weight for validation and Rino have like security deposits
Starting point is 00:55:50 because there's so much, I mean, of course, a variety of benefits, right, like this speed, scalability, all of that works better. But maybe one of the biggest one, right, this with the tenement style thing, is that blocks a final. And that seems to be a huge issue here. If you have forks, you know, if you have forks and then you have to roll back these options or complex financial contracts, I mean, nobody's going to be able to deal with this. Yeah. I hear your point. I think it's kind of funny that we don't see many reorgs happening. in Bitcoin, like not, yeah, not, let's say normal, oh, it was in an accident kind of reorg.
Starting point is 00:56:35 That doesn't happen very often, not for more than like a block or two, right? It's very rare to have like, you know, a reorg after 10 blocks. So I think it's relatively safe to, I don't see this as a biggest problem. And I also agree that, you know, maybe a lot of people are asking, you know, why, why, like, why, why minors, right? And we, I kind of touched on this earlier, personally. So the way I see it is that there's been a huge divergence of what miners are supposed to be doing and maybe what they're currently doing. I don't think that they're just supposed to be saying they're maybe wasting hash power.
Starting point is 00:57:10 They should be, you know, being a node and essentially servicing the network, you know, taking transactions, propagating them out, etc., etc. The predominance of pools has essentially hurt that. And that's something that, you know, we may look at essentially fixing, saying that, you know, we're still considering it. I think we have a very good method of doing it, but essentially saying, you know, we're going to remove the ability to use a pool. We're still going to make it competitive, so we're going to provide the sort of smart contract that enables you to mine even if you're not like a huge miner. So it's still competitive for the little guy. But essentially, you know, remove the ability to use pools of thus forcing everyone to run a node. And I think that when you look at it this way, and you're saying, okay, I understand, you know, that hash,
Starting point is 00:57:59 power is a good proxy for essentially the computer existing. The guy's running a node. Okay, I want to compensate him for running that node. And when you look at it from that aspect, I view then the coin creation as a subsidy for being a network service provider rather than like, rather than, I don't know what coin holders at the networking level, at the hardware level, let's say, are really doing for the network topography, essentially. Does that make some sense?
Starting point is 00:58:27 well yeah but i mean the coin holders they could basically stake coins and then validate right and and and then let's say they get returned but also if they you know if they don't do things right to get punished it seems to be it seems uh i don't think it fully makes sense to me sure no i'm i'm happy to explain so so essentially um think of it i'm not sure of all the different ones no offense intended at all. I think that essentially, you know, I looked at one of them, like with the delegated proof of stake, so one of the big things that makes it scalable is that people know which which node is going to like find the next block, which person is going to find the next block. But because you know this, it means that there's not a very high incentive to
Starting point is 00:59:17 propagate things very quickly and be highly connected to the network. With proof of work, there's a big incentive because the lower your latehors, is the more bandwidth you have, the faster you validate, the quicker you process, the higher the probability of finding another block is. And I think that this is very important when you're looking at like what is the function you want miners to be doing beyond, you know, just securing the network with hash power. We also want them to be acting as nodes. And that's why I think proof of work is part of the reason.
Starting point is 00:59:50 Now if we're looking at like the economics of it, right, that's a different discussion. So we have two discussions going on. I think about put the stake. One is like the economic aspect and the other is the technical aspects. Now in the economic aspect, I think that, you know, it can be done that the more coins you have, the higher probability it is to find another block. The question is, you know, do we want to do that? Like, do people want to do that?
Starting point is 01:00:13 I think that we should let people decide. But essentially it may create a situation where people say, ah, this was a pre-mine and, you know, I'm going to go fork my own version. So, yeah, so I think that there's like that that's a different conversation. the economics of it, like, you know, should be mining or should be be chlorine holding, but from the technical perspective, I think that, you know, that essentially there's some benefit of proof of work, and I'm not sure about the case of proof of stake. I don't know, do you have any thoughts on that?
Starting point is 01:00:40 Yeah, that's exactly pretty much thought. Okay, great. Well, guys, thanks much. It was super fascinating. Now, of course, well, not of course, but so you guys also have a token sale now. We're kind of at the end. much time to speak about it but I'm sure some people will be interested and they want to like learn about it and read about it and economics of it in terms and when it's happening etc etc can you share like where should people go what are the dates when it's happening and how can people learn more about it sure so um yeah please go to www. zanportcol.com um all the information is there um yeah that's pretty much it go please try to use our software at alpha.
Starting point is 01:01:25 And so many much for your time, Brian. Yeah, no, thanks so much, guys. And just briefly, so when is the, when is this token sale starting and when is the ending so people know? Sure. It's starting on November 30th, ending December 30th and in the year. Okay, great. So people know that.
Starting point is 01:01:45 Okay, well, thanks so much. It was really, really fascinating. Of course, we'll have links in the show notes to write you for blog posts, light paper, and there's a nice, indeed, that kind of alpha demo that you guys have, it's very impressive. So I highly encourage people to check it out. And yeah, thanks so much guys for coming on. Thank you, man. And of course, thanks so much for a listener for once again, tuning in.
Starting point is 01:02:14 So if you want to support the show, you can do so by leaving us an iTunes review. Not a lot of people do it, but it helps new people find the show. So we do appreciate that. and yeah we look forward to being back next week so much

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.