
Federico Tenga of Bitfinex joins me to chat about RGB, what it is and what it enables using bitcoin:
- What is RGB?
- Enabling stablecoins, collectibles and other assets
- How does it work?
- Issuing new assets, transferring and deletion
- Does it create an MEV situation for Bitcoin?
- Iris Wallet
Links:
- Twitter: @FedericoTenga
- Iris Wallet Github: @iris_wallet
- RGB FAQ: rgbfaq.com
- Article: RGB Magic: Client-Side Contracts on Bitcoin
Sponsors:
- BTCPrague.com (code LIVERA)
- Swan Bitcoin
- Mempool.space
- Unchained Capital (code LIVERA)
- CoinKite.com(code LIVERA)
- Blockstream.com
Podcast Transcript:
Stephan Livera – 00:00:08:
Hi, and welcome to Stephan Livera podcast, a show about bitcoin and Austrian economics brought to you by Swan Bitcoin. For this episode, Federico Tenga of Bitfinex joins me to chat about RGB, what he’s working on, and Iris wallet. Now, for those of you who don’t know, RGB is a scalable and confidential smart contract system for bitcoin and potentially the Lightning Network. Also, we talk a little bit about what it could enable in terms of stable coins, collectibles or other assets, how it works, issuing new assets, transferring and deletion, as well as some of the criticisms, one of which is around whether it creates an MEV situation for bitcoin. So we answer that question in this episode and we also talk about what he and the team are building, which is Iris wallet. As mentioned, this show is brought to you by Swan Bitcoin. Swan has a program called Bitcoin Benefit Plan. This is something that you would be interested in if you are an entrepreneur. You have employees and you want to give them the gift of bitcoin, along with Swan’s world class education and customer service. So, Bitcoin Benefit Plan makes it easy for you to recruit, reward and retain top talent with bitcoin. Swan is handling all the heavy lifting, like creating wallets, converting currency routing payments, and like magic, your employees receive bitcoin and world class financial education monthly as a benefit from you. So this is a great way to help teach your employees and onboard them to bitcoin in a smooth fashion. So if you’re interested in Bitcoin Benefit Plan, go to Swan.com/business. Are you ready for something huge? BTC Prague is coming. It’s going to be the biggest bitcoin event in Europe. I’m happy to be one of the hosts. I’ll be one of the MCs for the event. It’s going to be June 8 to 10th, 2023 in Prague in the Czech Republic. Now, for those of you who haven’t been to Prague, it’s a beautiful city. I’ve been twice. I really enjoyed it. It’s also a great opportunity for a small trip, so you might be interested to come along. And while you’re there, build in some tourism. But this is going to be a fantastic event. It’s a three day event where we’re going to have perhaps 10,000 people coming, whether they are fresh, newbies, whether they are bitcoin developers or business insiders and get connected. There will be more than 60 world class speakers and 100 companies to assure both education and fun in this bitcoin only feast. So this will be a fantastic relaxed summer atmosphere. You can drink some famous Czech beer and it has affordable prices too. So go to Btcprague.com, use the code Livera to get your discounted ticket. I’m looking forward to seeing you there. Are you looking for a software wallet? Blockstream Green is an industry leading bitcoin and Liquid wallet. It has all kinds of features such as multisignature security. You can connect it to your own full node Electrum server and it also has Tor support. So with Blockstream Green you can use multisignature shield where you hold one key on your device. One key is held by Blockstream protecting you with two factor authentication and you have a time lock or a third backup key to ensure you always retain full ownership of your funds. Blockstream Green also has integration with hardware wallets like Blockstream Jade and I spoke about this recently with my recent episode with Larry Nahum from the team. And there’s a range of platforms available, so you can use this on iOS, Android or desktop. So to get Blockstream Green, go to blockstream.com/green. And now onto the show with Federico. Federico, welcome to the show.
Federico Tenga – 00:03:23:
Hello, thank you for the invitation.
Stephan Livera – 00:03:24:
Yeah, great. So happy to chat today about RGB and what you’re working on with Iris as well. Just for anyone who doesn’t know you, give us a little bit of a background for the people who don’t know you.
Federico Tenga – 00:03:36:
Yeah, sure. So I’ve been involved in Bitcoin for quite a long time. For about five years I’ve been working on a startup project about payment processing for matches. So I was working to provide infrastructure to help merchants to accept Bitcoin payments. It was on the Italian market, so very focused on one specific region. But yeah, over the years I’ve also been following I’ve been interested like in anything happening around Bitcoin. I’ve been following all the new stuff that was coming up and one of the things was like HB, which surprised me that it’s actually quite cold. I mean, it’s in many terrestrial. So the very first thing called RGB Came was an idea that came out in 2017 from Jack Mazuka. But it was very different. It was still after them become very different from what RGB is now. And then RGBC saw a few interaction and I was at a period of just following actually like a following network just as a hobby. It was just interesting to see the evolution of the project. And actually I was also contributing a little bit when there were community feedback that were needed. I mean, I was contributing to the project in my free time whenever I could. Then starting earlier, at the beginning of this year in 2022, I joined with the goal of creating a team instead of Bitfinex to work on RGB. So we created a team and the goal of the team is basically just to promote RGB development and it should be ecosystem. There are other companies, other team work in RGB, but with our internal team we try to develop tools to contribute to the protocol, start with PRS and contribute to develop tools for developers and to build user interface application. Like there is wallet to help people play with attributes.
Stephan Livera – 00:05:36:
Sure, yeah. So give us a little bit of the background then. So as I understand RGB, there are multiple people working on this idea but if you could just add a high level step back and tell us what is RGB?
Federico Tenga – 00:05:50:
So RGB is a protocol built on top of bitcoin. You can see it like a second layer on top of bitcoin that aims at enabling the issuance and transfer of assets on top of bitcoin. Actually the protocol is a bit more generalized. So there are ideas to use the protocol to build all the stuff that is not physically asset of tokens like for example the centralized identity or stuff like that. But again, the core use case in the present and near future is mostly issuance and transfer of assets on top of bitcoin. Actually the idea by itself is nothing new. I mean it’s the same idea of color coin. Back in the days in 2013 you already had these first protocols to build topics on top of bitcoin such as counterparts and domain layers. And I mean, at the time it was called master coin, but what then became omni layer and then you have also the other alternative blockchain that did the same thing to enable the issuance of top of the blockchain, also likely.
Stephan Livera – 00:06:56:
So you mentioned some of the earlier ideas that let’s say came before. So as you mentioned, colored coins and counterparty are probably some of the well known examples where people were creating a token and it was like a colored coin or some kind of way of representing equity or some other token. Now how would you differentiate RGB from some of those earlier iterations or attempts?
Federico Tenga – 00:07:18:
Yeah, basically the problem with those first iteration is they were designed in a period where also there was different attention to various problem that you have when you use the coin. So first of all, there was little attention to privacy and little attention to scalability. So the word they were designed is that basically all the data regarded related to the token transaction is put on the blockchain, usually in an operator field. So in the operator field you can see something like token A is moving from A from A to B or something. So what does it mean is that privacy wise everybody can see everything. So it’s not ideal and scalability wise is very bad because basically to understand which stock and transaction is valid you need to scan the wall blockchain, read all these messages written on the blockchain and create your own state of the counterparty network or the omni layered network. And it’s like quite expensive. If you ever try to run a counterparty node for example, it’s quite resource intensive to say it’s not really scalable and also it’s not scalable in the sense that they were designed to be compatible with stuff like the Latin network because of course the time the Latin network didn’t exist. So RGB was started as a project that was trying to improve on these limitations and the way he achieved this is that basically the blockchain is used only for double spending protection, not to push data. So in RGB, the information, the red token is moving from A to B, is not written on the blockchain, is written on a separate layer. And on the blockchain we just put a commitment of this information to leverage the double spending protection that Bitcoin can offer. So in this way we have more privacy because on the blockchain we don’t put all this data. So there are other features that improve privacy even further that we can discuss later on. And we have better scalability, because medically, yes, again, we put less data on the blockchain, so we pay less fees. And moreover, it’s easier to build compatibility with the Latin network. At least there was not even intention to do with previous proposals.
Stephan Livera – 00:09:44:
So let me summarize a few points there, because there’s a lot here. So let’s think of it like in the earlier days of Bitcoin and in the days of counterparty Colored Coin, and Omni and things like this, that was pre block size wars or scaling wars. And so in those days people just thought of it as like, oh, we could just put lots of things on the blockchain. Whereas now there’s obviously more of a focus around this idea of there’s a block size limit and we are trying to look at ways to do things in a scalable way. And so that’s where this idea of taking things off the chain per se has come into the focus. And so that’s where this idea of only putting in certain updates, not everything onto the chain per se, is what we’re doing, I presume, in a high level way. That’s one way to explain a little bit about what’s going on with RGB. And I’m sure maybe listeners may have heard our friends Jacobazuka or people like Peter Todd out there talking a bit about RGB, but if we can go maybe to one more step of detail, if you could just explain a little bit. One other question, if you could explain what is an operator and how is that used as part of this? Just for people who don’t know.
Federico Tenga – 00:10:50:
So basically, since the early days of Bitcoin, people saw this like immutable ledger, which is a blockchain, and they were saying, oh yeah, maybe I could use it also to put my own data there so it stays there forever and it’s immoral status for eternity. And yes, it’s quite an idea. People were putting all kinds of messages or even images, stuff like this. But this is a problem. Like you force all the nodes in the network to actually store those data for you, which increase the cost of running an auto, which is bad for the decentralization of the network in general. So since you cannot really forbid this kind of behavior, because if I send some satoshi to a Bitcoin address, it is not really a Bitcoin address, it’s just a string that encodes some data. I mean, there is no way to forbid it because there is not even not way to detect it. So what does some point bitcoin developers did to mitigate these issues of people putting random data on the blockchain is that we created this new kind of way of constructing outputs of a bitcoin transactions that you can send. You can create a bitcoin transaction where one of the outputs is an output that is probably unspendable, means that there is the script of the output saying it is impossible to spend this output. Whatever you put here, it’s not going to be impossible to spend it. Which means that the nodes running the bitcoin blockchain, they can see this and say okay, this is never going to be spent. So I can prune it out of my it’s not going to be part of the altitude I keep track of. So like it reduced the need for information, it doesn’t need to store this information because that is not relevant for the nod to store it. So in a way it reduces the burden on the node. And so yeah, it’s this special kind of bitcoin output that now like people use to put that on the block and it’s limited size, only around $80 can be of data can be added to a bitcoin transaction using this special operative output. But it’s very good if it’s more than enough to for stuff like putting commitment to data, like the edge of data and then you leverage and you correctly prove that since they become blockchain as all these immortality properties. Also the data that you put there as some guarantees that it cannot be edited or deleted in the future. So it’s still good for a lot of use cases. And yes, actually RGB also has a feature that lets you achieve this without using a Pratoon, with using more advanced debt. But most of these protocols in the past they were basically just pushing data on the platoon. In this case, not even the actual data, they’re all data and so people can read it and interpret those data.
Stephan Livera – 00:13:45:
Yeah. And so before we go further into the detail of how RGB works, let’s talk a little bit about what I think users or listeners might be thinking well, hang on, what’s the point of all this? Like I just want to use bitcoin, I don’t care about other assets, what’s the point of this stuff? As I understand, and you tell me how you see it as well. But the way I’m understanding it is this might be useful in the case of issuing stable coins and maybe for some people now I don’t care about NFTs at all, but for some people who care about NFTs, maybe that’s useful for them and other kinds of assets. So can you just explain from your point of view, what are the main uses, what’s the point of using all this RGB stuff?
Federico Tenga – 00:14:21:
Well, I mean, we can say what are the main use cases for tokens in the general like already existing market. So people, I mean there are tokens for promoting Ponzi scheme which is one thing, but there are also like use cases that may or may not be more valuable. So one of the instable countries for sure the most popular use case for tokens on top of Bitcoin and other blockchains. And yet the stablecoin is actually like a key element to enable the centralized trading. Because right now, people that want to trade, they either go to centralized exchanges like FTX or others that are managed better than FTX. Or to automated market makers on Ethereum, which I in a way, they use stablecoin, but also they have other problems that maybe we can discuss later on. But it is that like we need stablecoin to enable the centralized trading. If we have a stablecoin on top of Bitcoin we can have negative atomic swaps on the same chain between Bitcoin and a stable coin. And in this way it is possible to create the centralized market with Bitcoin against USD or whatever. So I mean you can shove the US dollar Bitcoin stuff like this and also like current, I mean we love the idea that everybody in the world will use Bitcoin for payment, but the reality is that most people don’t want to bother with the volatility of Bitcoin. So currently stable coins are playing a real role in the emerging markets where they have a weak local currency that is subject to accurate, I mean real apprehension of the one we complained in developed economies. And the US stablecoin is something that helps them right now to solve their problem. They have exposure to the US dollar, which we don’t like, but for them is orders of banking to bankers of what they have right now of their local currency and they can use it freely without having to rely on a banking infrastructure that doesn’t even exist in their countries. So right now if we can enable people to pay with stable coins, it already makes a huge difference. We may say that stablecoin may not last forever, just fair enough, it’s the reason why we need Bitcoin. But right now it’s a use case that people need whether we act or not. And yet to let people do some on top of the coin instead of other blockchains that can have security thread offsets for sure something desirable then other destabilized coin. Even myself, I never bought an NFT mail after that, I don’t feel the need to do so, but there is people that are interested, there is obviously a market for it. Actually it was one of the first use cases built on top of bitcoin were like this rare papers in 2013 that were basically NFTs but with another name. And there is an interest for that. For collectible tokens. NFTs is very specific with term. I like to use more of the collectible tokens which is a bit more broad. There is an interest for collectible tokens. I think there is also connected to the gaming industry. I hear a lot of people working in the gaming industry that are interested in it. Not everybody needs to be interested in it. Even myself, I don’t have a huge interest in collectible tokens. But it’s still a use case that is there in the market and if people can do it on top of Bitcoin, they will prefer it rather than do it other things. Now, I’d like the third use case that I see that is not currently really working right now, but in a future where security tokens there is some jurisdiction with good regulation for security token also those they may start playing a role in this ecosystem.
Stephan Livera – 00:18:27:
I see. So let me summarize then. So stable coins are pretty obvious. I think most people understand that, that maybe there are people in the developing world who of course understand there’s a risk with the likes of stable coins, but they may prefer that to or they may not have an option where they can have USD with their local bank in their local country. And so from their point of view, maybe they prefer to use tether. And so hypothetically in the future and obviously you work for Bitfenx and Bit for next has commonality with tether that in the future we could have tether that’s issued on top of RGB presumably and using your RGB wallet. Then the idea is that the customers or the users can have tether as part of an RGB asset that they can trade back and forth. That’s kind of one of the ideas like in the future that would happen, right?
Federico Tenga – 00:19:12:
Yeah, everything works well. Yeah, that there would be a nice achievement. Yes.
Stephan Livera – 00:19:16:
Yeah. And so that’s one idea. And then, as we mentioned, the collectibles or the NFT aspect. And then the third aspect is in the future, if it’s actually an explicit security, right, it’s not like this kind of nonsense FTT token and stuff like this. But if it’s like, actually the regulatory environment of this particular country, I mean, who knows, maybe even El Salvador with their digital security law, maybe they would people could actually trade, actually registered securities inside an app using this kind of technology. Is that kind of high level I’m getting? Is that the right idea or how would you explain it?
Federico Tenga – 00:19:49:
Yeah, I think this is the main idea. Also maybe there are other kind of use cases that people can work on like gift card or like a generic kind of credit stuff like this. But yeah, maybe I would like also to address a common critic of it is like why do we need the centralized blockchain like Bitcoin for assets that are inexorably centralized? Which is like a fair point. But the thing is, first of all, a centralized issue is one thing, but having a centralized maintainer of a centralized ledger is an extra counterparty risk that you may be able to avoid and also issuers themselves. They may not want to. Like in most cases they don’t have the capabilities to manage their own infrastructure to move the asset that they are issuing. So they will have to delegate to a third party. So you have another party that you need to trust. Well, if you use something that decentralized, you avoided this extra risk. Maybe in the future bitcoin fees may be very high. So a lot of people may prefer to use centralized layers to do this kind of trade. I mean, like for a lot of stuff, maybe you can use second layers on top of bitcoin like the network, but it may not work for illegal assets. But yeah, if people prefer to for low price transaction, people may say, okay, why do I need to deal with all this centralized stuff? I can just use a centralized layer and it was better. But if you are something that has a lot of value, say you are holding like 10 million, substantial 10 million of security or whatever, you still want the most secure layer that is out there. So you are willing to pay the price in terms of fee and complexity that bitcoins that is necessary to use bitcoin because you have such a high quantity of value at stake that you prefer to have it on the secure blockchain, the most secure centralized ledger rather than something else. So I think that there will always be some people that even with assets issued by a centralized issuer, they would still prefer to order them and move them on a decentralized more secure ledger. Like the big induction.
Stephan Livera – 00:22:09:
Yeah. Okay, so let’s actually get into some of the technicals now and talk a little bit about how it works. Now, as I understand currently today with RGB we’re acting mostly on chain and in the future there’s this idea that we can do it in a more like Lightning, let’s say. But let’s just start with the basics of how would you create a new RGB asset and how do we send those assets to each other.
Federico Tenga – 00:22:32:
Yeah, so basically when I create a RGB asset, what I’m doing is I’m creating kind of like a contract, let’s say, where I say I am creating 1000 units of asset A and I assign it to the UTXO for this quantity. So basically it’s just a control that created the concept of a new asset and assign it to an existing bitcoin UTXO. So it doesn’t even require an on chain event, the Issuance, you just say I, I assign this new asset to this existing bitcoin UTXO or to a list of bitcoin UTXOs. So you can say I issue 1000 units and I assign like 100 to at least 100 to Bob and so on and so forth. This is basically the issues. Then of course, you cannot extract metadata, extract parameters, you cannot extract complexity. But the very simple basic case is simply assets. I keep the asset, asset red token, assigning maximum supply, 1000 unit assigned to Alice and maybe other people in a fractional way. Then when I want to transfer these assets, the asset has been allocated to, in this case, the UTXO of Alice. So the only way to move the asset is to prove that you’re the owner of the UTXO of Alice. And the way you can prove it is by creating a frequent transaction that has the input, the Alice UTXO. So as you create this transaction, among the inputs, he has the UTXO where the assets were allocated. And then it creates a body of the RGB transfer which says, okay, these 100 coins before were allocated to the UTXO of Alice, now they will be transferred to the UTXO of Bob or Dave, whoever she wants this UTXO where the assets are being sent to their already existing UTXO on the bitcoin blockchain. So she could actually send the disaster to the UTXO of Satoshi from 2009. It doesn’t need to be a new UTXO that you create with the transaction. It can be an already existing one. Once you created this body of the RGB transfer where you say this stuff in a move, from UTXO values to UTXO of Satoshi, then you basically, to simplify, you create the edge of this transfer and you committed in the bitcoin transaction that is pending the UTXO of that added the assets before. So this way you are proving that you are the owner and you’re committing to the destination of where the assets are going, but without revealing it to blockchain of servers. Blockchain servers. Just saying, okay, there is some stratosphere that are moving from UTXO to a new bitcoin address. The new bitcoin address will not be a change address of Alice of the sender. So the blockchain server doesn’t see anything, but the receiver of the transaction, Bob is the receiver of the transaction, will receive from Alice the body of the FTP transfer and he will be able to verify that this FTP transfer was committed inside the bitcoin transaction that was spent in the town of the assets. In this way, only the party involved in the transfer are aware that the transfer even existed. Because only the receiver basically is the one that needs to validate this transfer is valued. Everyone else is not his business, is not interested in it. So in this way, the blockchain server doesn’t see anything. It just sees a normal Bitcoin transaction. One input, one output, nothing. Maybe he may use some heuristics to suspect that an RGB transaction may be involved, but yes, no way to prove it. And the receiver of the transaction can validate. The RGB transfer is valid according to RGB validation rules, and it has been committed to the right different transaction. And once you’ve done this validation, you can be sure that you actually receive the asset and will be able to spend it in the future. And they are the only one aware of that. This actually transfer actually happened.
Stephan Livera – 00:26:56:
I see. So just summarizing, let’s say you can create an asset. Like, let’s say you create Federico coin, you make 100 Federico coins and as we said, you don’t have to do a new transaction to issue the asset. But when you spend some of those Federico coin, let’s say you send some Federico coin to me as an example, I use my, in this example, Iris or whatever RGB wallet I create is it like a blinded kind of like an address sort of thing and then you can send some 50 Federico coin to me. And at that point there is an on chain transaction in Bitcoin blockchain, but there’s not like an operator or something there. It’s just as part of that transaction, my wallet, let’s say, is able to read that and say federica has sent me 50 Federico coin. Is that sort of roughly what’s happening there?
Federico Tenga – 00:27:44:
Wallet is able to understand this because it’s the only one that received from me the information. To understand it, I sent directly from my wallet. Wallet direct communication, I send you this information.
Stephan Livera – 00:27:56:
Yeah, I see. And as we’re saying right now, today it’s all on chain. So that means every time there’s an RGB asset transfer, it’s all happening on chain. Which means obviously that won’t scale longer term, but for now that’s kind of where it’s at before we move to the next level, right?
Federico Tenga – 00:28:09:
Yes. But also actually already today we have some unchanged capability that we can already deleverage in the form of badge. So when I send you this transfer, I could also send with the same transfer pay other 100 or 1000 people. I can send some topics to your pixel, but also to the pixel of Eddie’s, Bob, Carol, Dave and so on. And this doesn’t increase the size of the Bitcoin transaction. So the Bitcoin transaction containing the commitment is still like in the best case, one input, one output, and that is commitment to committing to a transfer that is paying like an arbitrarily large amount of people. So maybe for normal people it’s not so common, it’s not so common for like a regular user to pay a lot of people, but for service providers it’s very common. So if I’m an exchange of directing withdrawal to a lot of people instead of like right now with any other talking protocol or any other crypto payments in general, I basically need either to create one transaction for every receiver or one transaction with a lot of outputs. That means that it becomes like a very large transaction that takes a lot of bytes on the blockchain. With RGB you get a simple transaction that is the normal size, like 200, 300 bytes, and you pay as many people as you want. So basically the. Marginal cost of operating withdraw to your users can go like closer to zero if you’re paying a lot of people together.
Stephan Livera – 00:29:51:
Back to the show in a moment. My favorite Bitcoin hardware wallet and signing device manufacturer is Coinkite.com. They have a range of products, notably the Cold Card, which is their top of the line Bitcoin hardware signing device. It’s a very reliable performer. I’ve found it very useful in various setups. Whether you want to use it as part of single signature or multisignature, it has all kinds of other features like BIP 85, which allows you to have child seeds. So for example, you can have one seed that you retain and you can have child seeds that you give either for other wallets or let’s say, if you’re helping your family or friends so that you still have the backup. There’s all kinds of features available. You can learn more over at coinkite.com and get a discount on your Cold Card with the code Livera. Now, when it comes to partaking in the Bitcoin space, you need to be able to search your Bitcoin transactions. And my favorite Block Explorer is Mempool.space. Bitcoin is a multilayer ecosystem and Mempool.space is helping you by showing you the various aspects of this ecosystem, whether you are seeing the Mempool, whether you are seeing the Blockchain, whether you are seeing second layer networks like the Lightning Network. You can use the Lightning Explorer to search other Lightning nodes. You can even see Lightning channels and you can even see the Outpoint, which is the actual UTXO that represents that Lightning channel. So I think it’s a phenomenal bitcoin. And Blockchain Explorer, you can use it to search your transactions and you can even self host this so you can run it yourself. Now, if you are with an enterprise, Memple Space offers custom Mempool instances so you can have your company’s branding, increased API limits and more. Over at Mempool.space/enterprise. And finally, Unchained Capital are helping you with multi signature security for your Bitcoin. If you need to remove single points of failure, Unchained Capital can help. They have a concierge onboarding program where you can pay upfront, you can have hardware sent to you if you need it, they can do a call with you and teach you, even if you’ve never held your Bitcoin private keys before. So this can really help you have that safety and security feeling at night when you know that even if you made one mistake, that doesn’t mean you necessarily lose all your coins because you have removed single points of failure. And Unchained really go that extra mile to make sure that you are not being reliant on them, because you can transact in a self sovereign way. And if you’re interested to learn more about how it all works, you can find out more at unchained.com/concierge. Use the code Livera for a discount there. And now back to the show. I see. Yeah. So that’s an interesting on chain scalability approach and so then you can issue this coin and presumably then every time it transfers again from that person. So let’s say you send me 50 Federico coin. I can then send that on and it’s the same kind of process that it’s just like one input, one output, same aspect. And then whoever I’m sending to, they do that same validation on their side. Okay, Stephan has sent me 50 Federico coin. Okay, and so then is there a possibility of like conflicts and then you need to sort of check against the ledger or how does that work? Like how do you stop there being any conflicts of, let’s say, who is the true owner of these coins?
Federico Tenga – 00:33:03:
Well, basically the way we have to resolve conflicts is to leverage the Bitcoin blockchain. So if somebody tries to create a fake attribute transaction, if I tried to do a double spend, I’m trying to pay you and then I tried to pay some weapons, how would that work? So I create an attribute. Okay, I have my tokens on my UTXO. First I try to pay you, I create an attribute transfer that is paying you and then another retransfer that is paying someone else. The thing is that the Bitcoin transaction that is pending might take so can only contain one commitment. So the way that the commitment scheme is designed, like if you put more than one commitment, only the first one is the one and we will all look at so it can only contain one commitment. So it either contains the commitment of the transfer sent to you or it contains the commitment with transfers sent to someone else. So when you validate the transfer that is sent to you, you would check, okay, is my transfer committed inside the Bitcoin transaction spend in the Otik? So that the token? If yes, then you’re sure that you are the only person receiving the token. If not, you know that I’m trying to scalp you basically to double spend something that I already spent. And of course you can have records on the blockchain, but then yeah, you manage them. Are you managing Bitcoin the same way.
Stephan Livera – 00:34:32:
Normal records are done? Yeah. And in terms of validation, what kind of things do I need to run on my side? Like, do I need to run an Electrum Server or like, how does the, you know, if I want to validate that transaction that you send me, how do I do that?
Federico Tenga – 00:34:47:
Yeah, so basically, first of all, you need to run this attribute on which validates all the attributes specific rules and then you need to check that those Bitcoin transactions that I say, where I claim there is a commitment of the actual transfer of they actually exist on the Bitcoin blockchain. So currently, like Iris and also the other wallets that other people are working on, they use an Electrum Server to do so. But in general you just need to check that those transactions exist on the blockchain so you can use any indexed blockchain to do so but currently everybody is using an Electrum Server to do so.
Stephan Livera – 00:35:29:
I see. Got you. And so what about if there’s changes down the line? So let’s say at the start you issue 100 Federico coin but now you want to issue another 100 or can you create new coins or how do you stop that or control that?
Federico Tenga – 00:35:47:
Basically there are two ways of doing it. The simple way is to say when I issue coin, I just issued to the maximum number possible and I located to one and it’s going to be like the total supply and then I move to another UTXO or what I want to be the secretive supply so people can as long as people see that the UTXO containing all the token has not been spent and they can verify that, what is the secretive supply against the total? Supply. And then when I spend it again, I can disclose a match of those token I put in circulation and people again can verify what is the secretary supply against the total supply. And another way of doing it. There is a feature that is being built in RGB is that to have basically the right for secondary issuances which actually will work in a very similar way. I assign the right to issue more stock into analytics. That usually will be minute, so it can be another person who takes off when you spend it. The right to issue your tokens. So in general, it’s similar to how it works in many token protocols, like another change that is basically when you have the right to issue again, there is one usually in those case, one kid, but in the case of RGB, one UTXO that has the right to either issue your quantity of token or to put in circulation your quantity of token.
Stephan Livera – 00:37:20:
Yeah, so that would be like thinking of the stablecoin use case. In this example, let’s say you’re creating a stablecoin and people have sent you 1000 USD in fiat and now you have to create 1000 stable coins and then now they’ve done more deposit so you have to create more stablecoin. It’s the same kind of idea. So you might have that. Or let’s say in the future, Tether might do an RGB tether and do this kind of process. And then on that basis, all the RGB wallets out there can be transacting tether with each other. But there’s only one issuer of that. Tele, I guess. In that case, how do you make sure there’s only, like, one true issuer? Or is it like a whitelisting process? Or how do you make sure that you have the real stablecoin asset?
Federico Tenga – 00:38:06:
Well yeah, that’s the last common problem with all the digital assets like how we are sure is the real one. So yeah, basically the issue will have to disclose.
Stephan Livera – 00:38:17:
When I issue an asset.
Federico Tenga – 00:38:18:
I can give it any name, I can call it Apple shares, I can call it debt, or I can call it anything. So there is no guarantee that the asset name is true reflection of what the asset is. So the only thing that makes the asset unique is the asset ID, which is like a unique identifier that basically use all the parameters, that everything that contributes to the issuance goes into this asset ID, which makes it unique. If Apple stock on HB, Apple will have to disclose what is the HB ID of the two Apple stocks. So either user, every time they check it manually, every time they receive mapperstock, or more realistically the wallet will be able to list the popular assets that they are aware of and they will mark them as verified or something. But yeah, this is wallet level.
Stephan Livera – 00:39:19:
One other question now going the other way. So instead of issuing but what about deletion? Or let’s say in this example, let’s say the RGB Tether or Tether RGB user wants to redeem some back into fiat into USD cache. So let’s say he sends you 1000 Tether RGB and now you need to lower the supply. Is that the same similar kind of process, only this one key can do it?
Federico Tenga – 00:39:42:
No, actually in this case anybody to lower the supply you need to basically burn talking and anybody can burn tokens. So yeah, probably something like a stablecoin moralistically. You send it back to the issuer because the issue then gives you back so the gas and the issue will operate the proof of burn. So it will burn the token and create a public proof that quantity of tokens have been burned. So Wallace can keep track of the wallace or anybody that is interested can keep track of the circuit supply of the token. But yeah, potentially anybody can burn it just that in RGB you can burn silently, so there is not visible to a blockchain of servers how much stuff has been burned. So you will have to disclose it. So in this case the person, the entity that would be interested to make sure everybody is aware of the burn will be the issuer to go for transparency of the circulator’s blood. Got you.
Stephan Livera – 00:40:42:
So I guess the short answer is the stablecoin issuer in that example would do a public proof of burn basically and then give back the dollars or whatever other asset. And so the other question I guess is to get into sort of the tap route and Lightning aspects of it. So currently is RGB and Iris in this example, a specific example, is it using Tap route now or is the idea to use that in the future?
Federico Tenga – 00:41:08:
RGB supports Tap root now, but Iris is not using right now. So there are two ways to commit it to an RGB transfer in RGB. One is by putting like the edge of the RB transfer. You just create top edge of American tree with a lot of data. But to simplify the edge of the RGB transfer in an operator, which is not so elegant, but it’s very simple to implement. And the other way is to put it inside a leaf of the Taproot trick. So you create a tablet output, which is also going to be the output where you send your changes satoshis back to and in the tablet output of the table tree that can potentially contain all the scripts or just the internal key for the simple case. Then you put the commitment to the RGB transfer in this way. There is you save about like 40 bytes of unchained data and you take away one Henry stick that people can use to suspect that that one is an argument transfer even with the operator naturally, I mean, you just see an operator with an edge that could be like open stamp or anything else. So you don’t have a proof that is an energy transfer, but still is an array everything that people could use. So, yeah, there’s these two ways. Currently Iris is using the operator one because it’s just simpler to implement. So we start with a simple one. But yeah, in the future we will probably eventually migrate to the tab commitment.
Stephan Livera – 00:42:38:
Okay, and then what does it look like? If you’re going to Lightning and you’re trying to do something like Lightning, what would that look like?
Federico Tenga – 00:42:46:
Yeah, basically like GP transfer commit to bitcoin transactions. Those bitcoin transactions can be broadcasted on the blockchain immediately or they can be Lightning channel updates that may or may not be settled on the blockchain right away. So what you will do, what we plan to do is not some work has already been done, but the implementation of the Latin part still needs to be done. What we will do is basically to get adjusted transfers of which the commitment is inside the channel update network, channel updated. And so as I can replace the Latin network channel update for bitcoin transfers, I can do the same with attribute transfers. So I create an RGB transfer. We have a laptop channel between each other. Then I create an attribute transfer that moves like 100 tokens to you. I committed to our channel update transaction. And then we don’t forecast it to the blockchain because then you will send me back like 20 documents and we will do an update where that we will update with a new agile transfer that only move 80 documents to you because actually it was 100 to you and 20 back to me or something like this. And then here with the same mechanism, you can also do routing through a series of RGB aware channels.
Stephan Livera – 00:44:12:
I see.
Federico Tenga – 00:44:13:
Yeah.
Stephan Livera – 00:44:13:
So it would take a specific RGB Lightning format and there may be kind of like it’s not exactly the same as the Lightning Network today, but it’s similar conceptually in certain aspects, but has other aspects that are different, I suppose.
Federico Tenga – 00:44:30:
But still leverage the same code, the same technology of the Latin network here.
Stephan Livera – 00:44:36:
I see. Yeah. Okay, got you. So huawei here. Could you give us some of the similarities and differences with Taro then? Because I’m sure that a lot of listeners will be curious about that. So how is this different from, say, Taro?
Federico Tenga – 00:44:48:
Yeah, first of all, I’m not a huge expert of Taro, so I may do some little mistakes in explaining Taro. But from my understanding, first of all, RGB and Taro are quite similar in design, which actually is good because the client side validating model is being validated design. So it’s not only HP doing it, but also someone else. So it’s good that we validated. The design is actually good. Taro works in a very similar way to everything that we just described. Of course, the implementation can be significantly different because they use another language that you mostly written in Rust. Taro is mostly written in Go. And also, when you implement stuff, there can be a lot of differences in the implementation. But on the protocol side, the main difference I am aware of is the way transfer stepped. So, as I was saying before, in RGB, I have tokens to one UTXO. I can move it to any UTXO on the blockchain. Also, like already existing ones. Well, in Taro, the way they are doing it is that you can normally transfer token to output of the same Bitcoin transaction. That is pending the oxygen that contains the commitment to the title transaction. Which basically the consequence of it is that, first of all, like, you create a link on the blockchain between sender and receiver. Still, it may not be apparent that is a thorough transaction, but if you do, you have a clear link. Who is the sender, who is the receiver, what would actually be? You don’t. Even if you understand that that one is in RGB transaction, you have no idea who received the tokens. Actually, I forgot to mention before, but even me, when I send you the token, I don’t know where I’m sending them to because you don’t show me your UTXO, you show me like a blindson, so I’m not able to monitor when you will spend them again. So you have also privacy from the people that send you the topic, which normally when I send you bitcoin, even if you create a new order for it and I don’t see anything of your current balance, I can still see, oh, yeah, look, Stephan, spend a bitcoin that I sent him, like you like your financial privacy. Quality national business possible in Taro. Yeah. Basically, you can only move Taro tokens to the outputs of the same business transaction, which means that both me as a sender and any blockchain observers can see where the tokens are and when they will be spending in the future. Any blockchain observer that is aware that is a thorough transaction. This also has another consequence that basically you need to add one output for every receiver of the third transaction, which means that the case of a service provider is paying like hundreds of people together. It can still be one single bitcoin transaction, but will be a single bitcoin transaction with a lot of outputs which will cost more infused so you miss on the batching capabilities that HP has. And also like the other consequence of that is that basically I need to create an optic software view to have the Taro asset. So I create a bitcoin transaction and I need to create outputs where I can send the tokens to. And those outputs also need to have a bitcoin balance. So it will be weird for me to also spend some of my Bitcoin to give them to you because I will price it in transaction. It will be complicated. So what will realistically happen is that you as a receiver need to add an input to the transaction so that you can contribute for the satoshi needed to create the new ticks over you, which adds a bit of complexity, but that is fine, that can be handled by good implementation. But also, again, it increased the size of the transaction because we need to add an input which actually is also much larger than an output. So it increased significantly the size of the bitcoin transaction and consequently the cost. So yeah, those are the main differences I’m aware of for everything I’d say for there are small differences here and there, but I would say nothing that significantly change trade offs. Also, another thing is that this is more like an implementation thing. Taro team seems to be more focused on one use case. This like stable coins, while RGB has been developed in a more generalized way that can more easily accommodate also other use cases. So yeah, this is maybe why Taro can move a bit faster with implementation, because they’re targeting just one use case, while I should be trying to build something more generalized, more future proof of it.
Stephan Livera – 00:49:38:
Okay. And probably, I guess fair to say Taro is maybe a little more like they’re starting with Lightning, I suppose. Actually, I think even they might be starting with on chain, but maybe they’re going to kind of shift into the Lightning aspect of it sooner because they are a Lightning team, right?
Federico Tenga – 00:49:53:
You need On Chain to have Lightning because the Lightning itself is built on top of on chain. But implementation wise, they may have an advantage because they have the light. No, they will have to do significantly changes to the Lightning node. So it’s still not going to be a working part. But yes, for sure they can have an advantage in building the Latin network compatibility because of the net. For sure.
Stephan Livera – 00:50:18:
Okay, so let’s talk a little bit about Iris wallet right, so we’ve been talking I guess in a little bit about both things we’ve been talking about RGB the broader idea and then Iris. So do you want to tell us specifically about Iris and what you guys are doing? I’ve had a chance to play around with Iris wallet on my phone as well. So what can you tell us about Iris?
Federico Tenga – 00:50:37:
Yeah, so basically Iris is an android wallet for RGB compatible android wallet that we developed with our team in Bitfinex. We developed mostly with the goal to have something that the end user can play with, to have a feeling of what RGB is like and to start maybe to build the first best use case, we need to have a reference wallet that people can use. Yes, but we also build it in scalable way in the sense that to build artists, we first build a library that an open source rust library that any wallet developers can use to build their own wallet without having to fully understand all the technicalities of RGB. RGB is actually a quite complex protocol. So if every wallet developers needs to fully understand RGB, we are not going to be a large amount of RGB compatible wallets and like existing bitcoin wallet, they wouldn’t bother to integrate RGB. So we build this library called RGB label with abstract most of the complexity of RGB and provide a simple interface that is very makes it much easier to build a wallet. So with the trust library we made also the binding for coupling. So then your mobile device actually run the full HB node and it doesn’t rely on external services if not an Electrum Server to validate HB transactions actually also realized. So for the Electrum server it connects to an Electrum Server by default it will be the Electrum Server that we provide, but you can change it to your own Electrum Server so you have better privacy and everything in that way. And also another service that you use is currently use what we call proxy server to exchange data between sender and receiver. And there is this remote server that makes sure that transactions can happen even if the two proxies are not online at the same time. So I say I’m sending you an energy transfer, but you are not online right now. I send it to this proxy server and then when you are online, you ask the proxy server for the data, you can validate it and move forward with the finalization of the transaction. But also this proxy server can be like by default it’s our proxy server but you can set up your own proxy server and use any proxy server you want.
Stephan Livera – 00:53:03:
Got you. So for people who want to play around, they can download Iris wallet and it’s currently testnet so you need to get some testnet sats, I think it’s over 10,000 sats to be able to issue an asset and then you can.
Federico Tenga – 00:53:14:
Play around yeah, I know. You can perform the Play store, you can download the test network, so you don’t need to even need to put three or Bitcoins to try it. And you can issue assets. There are like two kind of assets. You can have fungible which are normal assets, collectible which are asset with a mini fight, like for NFT, let’s say. So yeah, you can issue us that. You can move them around, you can play around. And then there is also a faucet service that lets you ask for free token that you can receive just to have if you don’t have anyone else that you can play with, you can just receive the topic from the force service. So yeah, right now it’s more like a playground for end users to try to have a feeling of what RGB is like and to also see how it was behind the scene. But then of course I think I will evolve enough power user product and then there will be other a wallet that will be maybe more like if we want to have when there will be a stablecoin, maybe there will be a wall of attorneys like Bitcoin and stable coin to keep it simple. You cannot issue your own stuff in the world. There will be more user friendly wallets that are I expect it will be the one that will actually get the true adoption while Iris will remain more like a power user too.
Stephan Livera – 00:54:30:
Got you. Yeah. And also now might be a good time if you could help explain some of the ecosystem a little bit around RGB just quickly, like who are some of the different entities? Because I know there’s obviously there’s Bitfinex there’s this LNP association. If you could just quickly explain some of the different entities there.
Federico Tenga – 00:54:46:
Yeah, actually one of the cool things that he’s not like one company like developing a platform for his own business called but it’s an ecosystem of company and independent contributors like working together for a common goal. So it’s more like an industry ecosystem effort rather than just like one company. So, yeah, basically there are currently companies working on RGB, it’s Bitfinex with our team. Then there is the LNPBP Association which is a Swiss association that is being used to finance the work of Maxim Orozky, which is the developer that is most of the protocol work so far. Then Maxim also has his own for profit company called Pandora where they are working also on a wallet implementation. Then there is another company, American company called the DBA, which stands for Digital Bitcoin Art, where they plan to do collectible NFTs. And they have their own wallet called the bitmask, which is a processor extension similar to MetaMask in a way. And they’re working to integrate RGB into this wallet that they already have. And then there is another not really company, more like nonprofit association in Japan called diamond, which also is working on their own wallet and they’re using RGB lift. So there will be some synergies with Harris and then there are a lot of independent contributors that work on their own.
Stephan Livera – 00:56:19:
Got you. And one other area that we should address as well, we’ve seen discussion in the community. Now, people have seen this idea of MEV, so it stands for miner extractable value. Now, one of the criticisms that people put up against some of these ideas is that if you create alternative assets that are using bitcoin, and especially in the case where the asset value of that other asset goes higher, than what bitcoin’s value is, or at least in a bitcoin block sense. Does that create some kind of incentive for miners where they try to game the system to their own benefit? If, let’s say, a bitcoin miner can try to put things to their advantage by either delaying or advancing forward a particular transaction, So, I’m curious your thoughts on this kind of criticism and whether it applies to RGB or not.
Federico Tenga – 00:57:09:
Well, there are two things to be saying. Yeah. So first of all, compared to what happens in Ethereum with RGB, like miners do not have visibility on what’s happening, so it’s not likely they can delay a transaction to gain an advantage because they don’t even see it. First of all, we don’t see that that one is an attribute transaction. Even if they suspected, they have no idea of what this RGB transaction is moving. So there is really no way for a miner to gain an advantage with attribute. But still, like people say oh, but me as a big stock and holder or a big stock insurer, I could bribe the miners to do a reorg or whatever with the chain to change something with the chain for my advantage, which is something that absolutely may happen in the future. But it’s also something that can already happen without talking on top of bitcoin. Because if I am like a sender of a big transaction and say I’m sending like alphabet of bitcoins and so on, then I have a very high economic incentive to bribe the miner to do array of the transaction. Also like a deep ray of the potentially. So there is already incentives in place to bribe miners. So I don’t think like HB or any other talking protocol on top of bitcoin will significantly change the incentives. What’s the difference to have a bitcoin transaction sending like 100 million or a bitcoin transaction committing to moving 100 million of stable conserve tokens? I mean, there is still the same kind of economic incentive that could make the miners they want to be brought. So I don’t see like our tokens at an extra risk if not for the fact that we are moving more value. But it’s the same risk of people actually starting using bitcoin much more.
Stephan Livera – 00:59:11:
So summarizing the point then is it’s no different to bitcoin today. Basically, it’s not creating. An additional incentive other than what already exists. If we were transacting a large value in Bitcoin today, that hypothetically if somebody were to try to do a deep reorganization, et cetera. Right?
Federico Tenga – 00:59:31:
Yes. Because it goes down to the fact that the fee that miner has not to do not to do sensor transaction or whatever is the fee that you’re paying, but the fee is not proportional to the amount you’re moving. So this is true for Bitcoin transaction. This is true for stocking transactions. So this is why miners can have incentives to be priced higher than the fee that they are receiving. Not to be high.
Stephan Livera – 00:59:57:
Okay, I think that’s probably a good spot to wrap up. But because we spoke about a lot of stuff today, let me try to give the poor man summary, like the 1 minute or two minute summary. So RGB we can think of it like this asset issuance protocol that works with Bitcoin. And what we can do is issue new assets, transfer those assets around to each other with privacy and scalability in mind. There are different wallets and different businesses in this ecosystem and a foundation. And so we can use RGB to do things like stable coins or potentially collectibles or potentially equity even like securities. And the idea is that we’re starting mostly on chain, but there is some on chain scalability in terms of one Bitcoin transaction on chain can represent many, many actual RGB asset transfers in that sense. And the idea is that eventually this could move into Lightning or something like Lightning as well with the aim to provide that additional functionality for users out there who want, let’s say, stable coins or other things. Would you say that’s a pretty good two minute summary or how else would you change it?
Federico Tenga – 01:01:05:
Yeah, absolutely. Maybe something that I want to specify about Lightning is that to work algae Lightning, you need to have asset specific channels between people. You cannot just have generic channel or like any Lightning channel. And so the consequence of this is that it will likely work only for liquid or very popular assets. There is this limitation. I mean, don’t expect the asset that only like 50 people are using to be viable to move on. Latino, you can still create kind of a Latino, which is an open spot model. But yeah, there are three of latin is a technology that is based on liquidity and fungibility. And so you need that asset to be Liquid and fungible. Sorry. Stable coin may achieve that. Other very popular asset may achieve that. But for example, NFTs will never achieve it because they just don’t have the fungibility. And like small niche asset, we never actually so this is a trade off that we need to be aware of us. This is probably for RTB as for Start or for anyone else with the ordinance.
Stephan Livera – 01:02:12:
Okay, great. So final question then. What do you want people to do. What are you looking for in terms of people playing around? Developer contribution, what are you mainly looking for and just your final comment for listeners.
Federico Tenga – 01:02:22:
Yeah, so all kinds of stuff. So if you are interested in RGB, if you are not a technical person, first of all you can download artists, play with it and provide us some feedback. There is a telegram chat that is linked in the app itself where you can send your feedback. Those are already very useful. You can learn more about RGB to get more knowledge for that. There is a list of resources I’m creating and you can find it under the website RGB info. There is a list of articles and resources with different level of technical competence required to understand them that you can have a look at. Then if you are a developer, like if you want to maybe build an application of the core of RGB, you can evaluate RGB live which is elaborated, lets you start working ongoing without having to fully understand all the technical details. Well, if you want to more interested to contribute at the protocol level or to understand the protocol level better, there is the GitHub of RGB nodes and in the A B info website you also find everything linked. But yeah, you can go to Everloop more how they know the limitation and the protocol for luxury world.
Stephan Livera – 01:03:43:
Fantastic. Well listeners, I’ll put all the links in the show notes and Federico, thank you for joining me.
Federico Tenga – 01:03:48:
Thank you for the invitation.
Stephan Livera – 01:03:49:
So I hope you enjoyed the show. Let me know what you think about some of these smart contracting protocols such as RGB and Assets on Bitcoin. Is that a good thing or is it a bad thing? Let me know your thoughts and of course if you’re enjoying the show, share it with your family and friends. Get the show notes at stephanlivera.com/439, I’ll see you in the Citadels.