Bitcoin is often called a currency, but eyes are opening to its may uses: moving assets around, notarization, storing data. “Bitcoin 2.0” is all the rage. CoinSpark, backed by venture capitalists, is one of these forward-looking projects.
In a nutshell, the platform allows users to create and send assets on the blockchain. But it's a little different than some of the projects we've been hearing about. The platform hopes to make these exciting projects more accessible to the average user.
We caught up with CoinSpark developer Gideon Greenspan. He has developed many successful projects, such as Copyscape, a search engine that detects plagiarism. WebSudoku is the world's most popular sudoku site. He also currently teaches a computer science course at the Academic College of Tel Aviv-Yaffo.
Greenspan described how the protocol differs from popular 2.0 projects, like Counterparty and MasterCoin, and summarized some of the main technical challenges.
Cointelegraph: What's your vision for CoinSpark?
Gideon Greenspan: What always troubled me was that as a currency, Bitcoin is very difficult for a standard commercial entity to work with because it’s value is changing all the time and difficult to account for in terms of accounting and taxation and all that kind of stuff. I was always interested in how you could use Bitcoin to transact in regular money. How can you use Bitcoin the technology to send dollars. I came up with a solution and found that I was far from the only person who had an idea of how to do it–there were other Bitcoin 2.0 protocols, like MasterCoin and ChromaWallet. But I felt like none of the existing solutions were built in a way that works for end-users.
CT: How do you make Bitcoin 2.0 easier for the average person? What are some of the requirements for a consumer-oriented protocol?
GG: I think an end-user should have a wallet that runs on their own device which they control, whether a mobile device or their own computer. But I don’t think that they should have to store the whole blockchain on their own computer. On the other hand, I do think end-users should be in control of their own funds.
What that leads us to is something called a lightweight wallet, which exists now for bitcoin, which is a wallet which controls the private keys on my device that controls access to my funds, but it doesn’t store the whole history of all the transactions on my own computer.
So I thought it was necessary to build a Bitcoin 2.0 protocol suitable for lightweight wallets. That’s kind of what got me into the project. So just one example is if I send some dollars from my wallet to your wallet, your wallet should be able to know that there are dollars there without monitoring the entire blockchain.
Another important property of our protocol was that you could have a single address that you use for your wallet that you could give to people, and that address would enable you to receive any kind of asset, not just one particular type of asset. Another of the problems with Bitcoin 2.0 protocols, some of them, is that if I send say, my dollars, from my wallet to your wallet—just a regular Bitcoin wallet—you can end up spending those dollars without being aware of it. I wanted to make sure that wasn’t a possibility—that I could only send assets to people whose wallets actually understood and could protect those assets. That’s another problem that we solved.
The third problem that we solved was the relationship between the issuer and the holder of an asset. It should be a bilateral relationship and there should be no other centralized entity, which is required for that relationship to work. Everything that we’ve done, for example, is such that if we fail or we disappear, the whole system will continue to work.
CT: Are there any other problems that you’re working out right now?
GG: Yeah, so the other thing we’re working on is—if you look at the way people send money to each other in the regular world, there’s always a way to attach some information to a transaction.
For example, if I send you money through a wire transfer, a SWIFT transaction, I have some fields I can fill out to add additional information about that transfer. For example I could say, “this is payment for a particular contract” or “this is an investment in a company.” Similarly if I send you money through PayPal, I can also explain for what purpose the transaction is.
In Bitcoin right now, that’s not possible. I can send you a Bitcoin transaction, but there’s no way for me to attach any information which explains what the meaning of that transaction is. So what we’re building now is a way to attach information to a transaction. Because it’s running over the Internet, it doesn’t have to be just a few lines of information, it can be a document or an image or quite a large file. This is the thing we’re going to release in the next few months.
CT: In a recent presentation you compared Bitcoin to TCP/IP. What's behind the comparison?
GG: So the basic idea behind the comparison is that TCP/IP is a very very powerful, low-level protocol for moving pieces of information from one point to another on the Internet. But until applications were built on top of it, it wasn't useful for the mainstream. So some really powerful mainstream applications were built on top of TCP/IP, like e-mail for example. Another example would be the Web. It made all the difference because it was an application that people could use and understand. It was very simple and there were many real world uses—from exchanging photos to Facebook to getting information.
“[J]ust like TCP/IP is used for moving bits of information on the Internet, Bitcoin enables some kind of scarce asset to be moved from one entity to another across the Internet.”
When you use the Web today you’re not even really aware that TCP/IP is going on behind the scenes. You have no idea what’s happening.
I think Bitcoin needs to go through the same maturation process. It is a very powerful protocol for enabling bits of value to be transferred between entities on the Internet—just like TCP/IP is used for moving bits of information on the Internet, Bitcoin enables some kind of scarce asset to be moved from one entity to another across the Internet.
For most people, Bitcoin doesn’t do anything for them that they understand. Most people don’t know that Bitcoin is an asset, they don’t have anyone to send it to, they don’t have any way to get a hold of it. So I think if Bitcoin is going to succeed, layers have to be built on top of it, which make it simple to use.
The other part of the comparison is Bitcoin 0.9, which came out at the start of this year, added an official way to attach metadata to a Bitcoin transaction, limited to 40 bytes, which is a small amount of information. But to my mind that opens the way to building stuff on top of Bitcoin and that’s really what we’re trying to do with CoinSpark.
CT: What do you think is the future of Bitcoin as a currency?
GG: My view is this: Gold for example—one of the reasons it succeeds as a reserve currency, is it has some sort of intrinsic value. Even if we stop believing that gold is something we can use as money, it’s something we can use for another purpose. You can use it to make jewelry or gold fillings in teeth, and all of these are kind of trivial applications, but psychologically it means there’s value in gold and it’s never going to hit zero, and therefore, it can become a currency because people always know it’s going to be worth something, even if it might be worth a lot less than it’s worth today.
So I think for Bitcoin, the question we have to ask is: What is the intrinsic value of Bitcoin? To my mind the intrinsic value of Bitcoin is the ability to embed a piece of information on the blockchain – to have some information in this replicated database that will probably last forever in a few hundred or a few thousand copies—that’s a very powerful ability.
In order to have that ability, you need to hold some bitcoin, because you can’t get a transaction onto the blockchain if you don’t have some bitcoin that you’re sending in that transaction and also some bitcoin that you’re paying to a miner who’s going to confirm that transaction. Today you don’t need to pay miner’s fees because the network is running at about a third or a quarter of its capacity, so there’s actually no competition between transactions and even if you submit a transaction with no fees to miners it will end up on the blockchain.
“[T]he blockchain is like a public good and it shouldn’t be free to use a public good because that way it ends up being abused. It’s the tragedy of the commons basically.”
I don’t see that continuing, because we’re going to get to the point where there are more transactions that people want to transmit than there is capacity to put their transactions in the blockchain. Transactions are going to have to compete with each other for which one gets put in the blockchain. That’s a good thing because the blockchain is like a public good and it shouldn’t be free to use a public good because that way it ends up being abused. It’s the tragedy of the commons basically.
When that happens, the way you’ll get your transaction on the blockchain will be by bidding how much you’re willing to pay miners. So Bitcoin actually, in the long run, is bidding power. The more bitcoin you have, the more power you have to incentivize miners to put your transactions in the blockchain. And therefore the more bitcoin you have, the more ability you have to put information on the blockchain, rather than someone else.
I think, in the long run, that’s the value of bitcoin as a currency. That’s something of intrinsic value to people because it’s useful for all sorts of genuinely valuable things. You can use it to notarize a contract, to prove that a contract exists at a time in history. That is something which right now you have to pay a few hundred dollars to do through a notary. You can now do that very cheaply yourself, embedding a hash of that document in a bitcoin transaction.
CT: Like Proof of Existence?
GG: One of the sites that we run is called Coin Secrets. What that does is it shows you all of the metadata that's been embedded in the blockchain. So we actually monitor all of the things that are going on. Proof of Existence is, right now, the most popular use of that metadata field.
Our messaging protocol is going to do something similar, but with more narrow applications. So I mentioned before that we're going to enable you to attach metadata to a transaction, or a document to a transaction, explaining the transaction to the other side. One of the powerful aspects of that feature is the content that you add to a transaction will also be hashed into that transaction. That gives us two things. First of all, it enables the recipient of that document to authenticate that that document came from you. They can check the hash of the document against the hash placed in that transaction. The second thing that it does is it provides a mechanism for notarization.
CT: What's in the future for CoinSpark?
GG: Apart from specific features, we've also developed a wrapper, which enables anybody who wants to define a type of metadata to attach to a transaction to use CoinSpark as a wrapper for that metadata and combine it with other types of metadata designed by other people, including ones that we design. So it's like a standard way to provide multiple types of metadata together in a single transaction, and so those metadata do not interfere with each other. So if a wallet only understands two or three types, but not other types, it can still read those two or three types even if they're combined with other types that it can't read.
That's really where we want to take CoinSpark eventually, to a platform that lots of other people can build on. For any way in which they want to enhance transactions, they'll be able to do it within the CoinSpark wrapper.
CT: What's the biggest challenge to all this?
GG: The limit on the size of that metadata. The OP_RETURN is the way in which this metadata is represented in a Bitcoin transaction. So originally when it was coming out, the plan was to allow 80 bytes of information, effectively 80 characters. Then at the last minute before the release of Bitcoin 0.9, it was reduced to 40 bytes through a decision process that isn't entirely clear to me.
“[P]erhaps another blockchain will become popular for all these kinds of rich applications rather than the Bitcoin blockchain, which I think would be a missed opportunity.”
There's a political or philosophical question here, as to whether Bitcoin is a platform for other applications, or to whether Bitcoin is actually just merely a mechanism for transferring bitcoin from one to another. And there are people who have very strong views on this question in both directions. The tension between those two opinions is expressed quantitatively in this byte limit.
At CoinSpark, a lot of the technical work we've done is finding clever ways to encode a lot of information in as compact a way as possible, in order to squeeze into this 40 bytes.
My hope would be that they grow this field, allowing it to be very large, and then there will be all sorts of stuff which can be built on top of Bitcoin, just like there's all sorts of stuff that's built on top of TCP/IP. If that doesn't happen then perhaps another blockchain will become popular for all these kinds of rich applications rather than the Bitcoin blockchain, which I think would be a missed opportunity.
CT: Why not make the metadata field larger?
GG: If they enable this metadata field to grow, to be larger and larger, it means there are going to be transactions that contain an awful lot of information in them. That's kind of the primary scalability problem that Bitcoin has to deal with. How do you deal with the fact that, ad infinitum, this data storage repository is going to grow and grow? Right now there's a hundred thousand transactions a day being done approximately in Bitcoin—which is nothing compared to real world transaction networks like SWIFT or Visa—if you multiply that by a thousand times we're going to have a blockchain, if the network supports it, that's growing by a terabyte a month. That's a full hard disk every month being filled with transaction information.
Who's going to be able to run nodes on the network? It's not going to be anybody small, it's going to be only big guys with big computers and big servers—and that's not the direction they want to go in.
CT: What else are you working on?
GG: There's been a lot of talk about how the blockchain can be applied to the financial world. A lot of big names in banking are talking about it—how it could make systems more efficient, simpler, faster, etc. A product that we're spec-ing out right now is called MultiChain. It's a way for a set of institutions or for one institution to create a private blockchain between them that serves multiple purposes.
This could have applications in the financial world, it could have applications for accounting, it could have applications for people who just want a very smooth and easy way to have a database that's replicated in multiple places so that if there's some sort of a disaster they can recover their data. That's something that we're working on. The interesting thing about what we're doing is we're going to create a blockchain that's “natively multicurrency.” By that I mean a blockchain where every transaction can move multiple types of assets around rather than just a single asset type. The network itself will verify these transactions.
“We're going to develop a blockchain, which monitors and controls all assets that are represented by transactions.”
Right now there are whole bunch of protocols, including our own, which piggyback on top of Bitcoin in order to enable other types of assets to be moved around. And you can do it. But the problem is that Bitcoin the network is blind to all this extra information. It's never verifying anything which represents the movement of another asset that isn’t Bitcoin.
We're going to develop a blockchain, which monitors and controls all assets that are represented by transactions. So if I show you a transaction that says there are US$100 dollars in this output, you can trust that the network has verified that quantity, without having to jump through all these hoops for Bitcoin 2.0 protocols. We're going to solve that problem by having that network verify quantities of all of the assets so that end-users can trust that information without having to deal with external, separate processes to verify it. Maybe Bitcoin will end up doing that as well.