Pages:
Author

Topic: ChromaWallet (colored coins): issue and trade private currencies/stocks/bonds/.. - page 21. (Read 97112 times)

legendary
Activity: 1022
Merit: 1033
p2p exchange is almost complete: we now have all components in place so now we can try to run it and fix problems until it works.

Here's exchange peer agent code for the curious: https://github.com/killerstorm/BitcoinArmory/blob/color/p2ptrade.py

And web chat used for message exchange: https://github.com/killerstorm/BitcoinArmory/blob/color/app.py

I also made a more flexible version of autotrade, it probably even works.

Code: https://github.com/killerstorm/BitcoinArmory/blob/color/autotrade.py

https://github.com/killerstorm/BitcoinArmory/blob/color/extras/autotrade-test.py

But I think now that we can complete p2p exchange we don't really need autotrade much.
legendary
Activity: 1022
Merit: 1033
I've implemented coloring for zero-confirmations transactions in
 Armory, so now effect is seen immediately, and there are no weird
 problems with disappearing coins which Ron reported.
 At the same time I've fixed a bug with lack of coloring of
 double-spend transaction after blockchain reorg.

Also there are some minor improvements in GUI:
  • uncolored is now default
  • you cannot send coins in 'all colors' mode
  • sum in 'select wallet' dialog is now in units

New build: http://killerstorm.xen.prgmr.com/alex/ArmoryX-0.2.4.zip

Is there a need for Linux builds? I guess that Debian/Ubuntu users
 should have no problems building it themselves because it is easy to
 install all dependencies.
 So I think there is no need.
legendary
Activity: 1372
Merit: 1002
I think implementing a colored definition registry to automate things from the beginning was a good choice.

Thank you for your efforts!
legendary
Activity: 1022
Merit: 1033
Windows binaries available: http://killerstorm.xen.prgmr.com/alex/ArmoryCC-0.2.3.zip

The purpose of this release is to allow people to play with colored coins and identify possible problems. However, it's nearly fully functional. But I recommend to be cautious. (See below.)

To run it you need to be running Bitcoin-Qt or bitcoind. You need to complete synchronization before you launch Armory.

Simply unpack it and launch. It requires about 1 GB of RAM in addition to what you need to run Bitcoin-Qt. Also it takes ~10 minutes to launch since it performs full blockchain scan. (Twice!)

There are two differences from normal Armory client: drop down which lets you to choose color and 'Hallucinate' menu section. Also some functions were disabled.

It comes with color definition TESTcc. But obviously you have no coins.

You can issue your own: send some coins to wallet you've created in armory, then go to menu Hallucinate -> Issue colored coins. Enter name, change parameters if you want and it will create coins for you.

Before you send those coins to other you need them to install this color definition (and obviously they should be using color-aware client), otherwise coins will be lost.

Simplest way to install color definition is to fetch it by ColorID from a color definition registry. So you can simply note ColorID of your freshly issued coins, then post it to forum/blog/IRC channel, like

Quote
Hi, I've issued FooCoins, color ID c03e572bc2c8520112194a95a29b24c7e99fc87e. I'm going to sell each on for 0.1 BTC and buy them back month later for 0.11 BTC per pieces
.

Then people who are interested in these bonds can download color definition (Hallucinate -> Download color definition -> enter color ID) and accept them from you.

Alternatively you can get color definition file (~/.armory/colordefs/c03e572bc2c8520112194a95a29b24c7e99fc87e.colordef) and host in on your server. Then people can download it via URL, say http://example.com/c03e572bc2c8520112194a95a29b24c7e99fc87e.colordef

In that case you do not depend on color definition registry server availability. (For the record, I manage color definition registry which is used by this build of client, code is available here: https://github.com/killerstorm/colored-coin-tools/tree/master/web )

Currently you can trade colored coins OTC, e.g. #colored-coins-otc channel on freenode.

 But auto-trade (which would allow to buy/sell coins automatically) is almost ready, and we are making progress on p2p exchange.

Warning:

  • All colors mode is dangerous, you will lose your precious colored coins if you send coins from it. I'll likely disable it in next release
  • Only functionality which is tested is plain and simple sending/accepting coins. Fancy stuff like offline transactions and payment URIs is not tested and might not work
  • Be careful with units, check twice
  • Global ledger is somewhat broken, but it gives you a general idea
  • You need 1 confirmation to see colored coins, so coins can 'disappear' when you've made a transaction, that's OK
legendary
Activity: 1022
Merit: 1033
New version correctly displays units in most places. E.g. when you issue a coin where one unit is 10 satoshi, 123 satoshi will be displayed as 12.3, not as 0.00000123.

There are many places where currency amounts are displayed and I was not able to convert all of them. However, all places which actually matter likely display units correctly.

  • when you change color via dropdown it changes units being used
  • if it says 'units', it is in units (likely)
  • if it says 'BTC', it is in BTC (likely), no matter what is selected in dropdown
  • if it doesn't say anything, it is likely in units, particularly:
  • global ledger table and wallet balance is in units
  • but if you view a concrete transaction it is in BTC (because there are both colored and uncolored inputs we cannot display everything with units)

Also global ledger table often displays bullshit transaction value, do not trust values it shows.
legendary
Activity: 1022
Merit: 1033
New version of client includes these things:

  • manage color definitions
  • issue new colored coins
  • import color definitions via colorid

It's currently available via github, but you need to build if yourself. If you want Windows build please PM me.

New feature use examples:

There is new "Hallucinate" menu item.

1. Download color definition:
You can enter color id, for example

c03e572bc2c8520112194a95a29b24c7e99fc87e

and it will download and install color definition from server.
Presumably these ids can be posted on forum etc.
E.g. if you want my FooCoins you install my definition with id above.
After installing definition you need to restart client.

2. Manage color definitions:
Allows you to check colorid for definitions you have (e.g. you can get
it there and share it), see balance (it is displayed correctly here,
in units), publish definitions on server, delete them. (Restart is
required.)

3. Issue colored coins:
Enter name and modify parameters as you need. It can be automatically
published on server.
Color id will be displayed so you can use it to refer to others to your coins.

(Obviously you need enough uncolored coins in this wallet.)
legendary
Activity: 1372
Merit: 1002
It is possible to link satoshis which "vanished" in a txn fee to satoshis which "appear" in coinbase.

This was what I was thinking.

While this is theoretically sound, I don't think it's a good idea because it is rather complicated, but it doesn't solve any real problem:

It may have some value, just enabling payment of chain fees with assets that are not bitcoin. Maybe a colored satoshi can be more attractive than a full btc for a color aware miner. Other miners may take the satoshi without knowing anything else.
In any case, I don't think this is very useful. We just considered it as the only way to finance ripplecoin hashing. We then thought that a cash hostcoin would be better.
As you say it adds too much complexity to the system and probably it isn't worth it. Surely not at this stage. Miners will be just fine with uncolored fees.
hero member
Activity: 742
Merit: 500
Yep, I'm working on multi-party transactions now. That was one of reasons for choosing Armory.

Auto-trade's role is to allow to trade with clients which do not implement p2p trading protocol: any client capable of sending/receiving coins can trade them this way.
Awesome.  It sounds like you've really thought this through.  I'm excited to try it out!
sr. member
Activity: 382
Merit: 253
I think I've already addressed your concerns.
Yeah, probably mostly. Good to have them collected together though.

4. Colored coin protocol can work on any Bitcoin-like blockchain, so it's likely that if it will be heavily used then there will be specialized a blockchain just for colored coins. (E.g. ripplecoin.) But at start we want to use Bitcoin as a host for a number of reasons (e.g. ease of payment). No heavy use is expected at start, so don't worry about blockchain bloat and satoshis being out of circulation.
That's a good point. The first issuers can use the BTC blockchain, and when it is tested and working well, newer issuers can put theirs on another blockchain. I think that might work, and does address a lot of my concerns.

Or perhaps the BTC blockchain can be where shares migrate to when an issuer becomes big and legitimate enough (i.e. the BTC blockchain can host shares of white market issuers, NMC blockchain can host shares of pink market, and DVC blockchain can be where most issuers start as black market).

6. If some kind of danger for network & security will be discovered (which is highly unlikely, but still...) you should be grateful that we've discovered it sooner rather than later.
Good point!

7. If you have many shares you won't need stock split. But if it is necessary, it can be done approximately same was as it was done by Berkshire Hathaway: company can issue a different kind of shares. See here: http://en.wikipedia.org/wiki/Berkshire_Hathaway#Corporate_affairs
I can see how that should work in theory. We should have some time before we need to know exactly how to do it in practice.

Anyway, I am wanting to raise capital and am keenly interested in this idea of a decentralized share exchange capability. In addition to the ability to issue shares I'd also like the ability for my shareholders to be totally anonymous yet still be able to communicate back and forth including voting on proposals.
legendary
Activity: 1022
Merit: 1033
Quote
If you feel like we need more digits NOW, you may want to start an alternate blockchain which supports maybe 4 times as many digits.

Devcoin generates 50,000 coins per block. So three billion devcoins already exist, and award per block won't be reduced.

That's probably enough satoshis for everything in solar system...
donator
Activity: 994
Merit: 1000
I still have some concerns about this whole colored coin concept. Hopefully by bringing them up, they can either be addressed or another solution can be worked on.

Yesterday I did a quick count and calculated that if one satoshi were used to represent an individual share, the Dow 30 stocks would account for almost 1,000 bitcoins - General Electric by itself would consume 106 bitcoins. A rough guestimate based on that of the S&P 500 stocks means a similar amount of shares would consume about 15,000 bitcoins. That's still a negligible fraction of the total 21 million bitcoins, but imagine if not only were all shares in all current companies converted to satoshis but the explosion of newer shares caused by the more freed economy allowing more companies to exist - how many bitcoins would eventually be consumed? Add in shares of bonds, and how much now? Additionally, if we're going to use the BTC blockchain for share listings, why not use it for real estate? How many properties are there in the world? In the solar system? And why stop there? Why not use the BTC blockchain to register ownership of vehicles (using VINs perhaps)? How many vehicles are there and how many bitcoins would that remove from circulation as plain bitcoins? Of course, we can always add more significant digits, making units smaller than satoshis so using the 21 million we would never run out, but then we'd need to make that transition long before it would naturally occur.

Another concern is that adding new functionality to software always creates additional risks. Perhaps new security holes will be opened. Maybe it'll make the wallets more fragile. The user interfaces would probably have to be more complicated in many cases.

How would stock splits be handled under colored coins?

The reduction in total available plain bitcoins would cause deflation, which would be good for current holders of bitcoins, but is an unnecessary deflation fair?

IMHO, using something like namecoin's blockchain instead of the BTC blockchain would be a better route to go. You don't endanger the bitcoin network & currency, while allowing for unlimited ownership tokens. I've also heard that NMC is underutilized and in danger of being unmined, so expanding its purpose to cover property in general might give it the needed kick back into usefulness.

But as the discussion on the FB thread in the Free State Bitcoin group has pointed out, people are going to do what they want, so if the colored coins on the BTC blockchain is what works, so be it. The concept is pretty cool from a technical standpoint; I just don't want it's technical coolness to cause potential non-technical issues to be overlooked.

Your concern is similar to the idea of using cold coins as proof of ownership in shares. My short answer to that is that you're right. Using a valuable asset to reflect something of potentially lower value is not a good idea. However, you have to stay real. 1 satoshi represents 0.000000001 USD. Thus 1 BTC needs to be worth >10,000,000 USD before this starts to become a problem.
Also, don't forget that bitcoin will probably not be the only cryptocurrency in the future. If you feel like we need more digits NOW, you may want to start an alternate blockchain which supports maybe 4 times as many digits.
legendary
Activity: 1022
Merit: 1033
I think I've already addressed your concerns.

1. You shouldn't ever worry that Bitcoin is being misused or abused, because being a crypto-based protocol it is DESIGNED to withstand misuse and abuse. If it cannot withstand abuse then it is a problem which needs to be addressed on protocol level.

2. What people do with Bitcoins is none of your business. If somebody wants to destroy them by sending them to non-existent address, it's his right.

3. Each satoshi costs money, so there is an incentive to not use it for something small and insignificant. Each transaction carries transaction fee, so again there is an incentive to not use it for something insignificant.

4. Colored coin protocol can work on any Bitcoin-like blockchain, so it's likely that if it will be heavily used then there will be specialized a blockchain just for colored coins. (E.g. ripplecoin.) But at start we want to use Bitcoin as a host for a number of reasons (e.g. ease of payment). No heavy use is expected at start, so don't worry about blockchain bloat and satoshis being out of circulation.

5. Bitcoin protocol doesn't need to be modified to support colored coins. Only people interested in colored coins need to run color-aware client software, and it's their own decision.

6. If some kind of danger for network & security will be discovered (which is highly unlikely, but still...) you should be grateful that we've discovered it sooner rather than later.

7. If you have many shares you won't need stock split. But if it is necessary, it can be done approximately same was as it was done by Berkshire Hathaway: company can issue a different kind of shares. See here: http://en.wikipedia.org/wiki/Berkshire_Hathaway#Corporate_affairs

Quote
But as the discussion on the FB thread in the Free State Bitcoin group has pointed out, people are going to do what they want, so if the colored coins on the BTC blockchain is what works, so be it. The concept is pretty cool from a technical standpoint; I just don't want it's technical coolness to cause potential non-technical issues to be overlooked.

As with any experiment, you never know until you actually try it. But luckily in case with Bitcoin risk is minimal because Bitcoin is designed to be robust BOTH technically and economically.

There are problems which colored coin users will face, but they won't affect Bitcoin users.
sr. member
Activity: 382
Merit: 253
I still have some concerns about this whole colored coin concept. Hopefully by bringing them up, they can either be addressed or another solution can be worked on.

Yesterday I did a quick count and calculated that if one satoshi were used to represent an individual share, the Dow 30 stocks would account for almost 1,000 bitcoins - General Electric by itself would consume 106 bitcoins. A rough guestimate based on that of the S&P 500 stocks means a similar amount of shares would consume about 15,000 bitcoins. That's still a negligible fraction of the total 21 million bitcoins, but imagine if not only were all shares in all current companies converted to satoshis but the explosion of newer shares caused by the more freed economy allowing more companies to exist - how many bitcoins would eventually be consumed? Add in shares of bonds, and how much now? Additionally, if we're going to use the BTC blockchain for share listings, why not use it for real estate? How many properties are there in the world? In the solar system? And why stop there? Why not use the BTC blockchain to register ownership of vehicles (using VINs perhaps)? How many vehicles are there and how many bitcoins would that remove from circulation as plain bitcoins? Of course, we can always add more significant digits, making units smaller than satoshis so using the 21 million we would never run out, but then we'd need to make that transition long before it would naturally occur.

Another concern is that adding new functionality to software always creates additional risks. Perhaps new security holes will be opened. Maybe it'll make the wallets more fragile. The user interfaces would probably have to be more complicated in many cases.

How would stock splits be handled under colored coins?

The reduction in total available plain bitcoins would cause deflation, which would be good for current holders of bitcoins, but is an unnecessary deflation fair?

IMHO, using something like namecoin's blockchain instead of the BTC blockchain would be a better route to go. You don't endanger the bitcoin network & currency, while allowing for unlimited ownership tokens. I've also heard that NMC is underutilized and in danger of being unmined, so expanding its purpose to cover property in general might give it the needed kick back into usefulness.

But as the discussion on the FB thread in the Free State Bitcoin group has pointed out, people are going to do what they want, so if the colored coins on the BTC blockchain is what works, so be it. The concept is pretty cool from a technical standpoint; I just don't want it's technical coolness to cause potential non-technical issues to be overlooked.
legendary
Activity: 1022
Merit: 1033
However, with a coinbase transaction there's just a single output with a value of 50 + sum(fees). How would you determine the color of that output?

There was a proposal to assign an unique id to each satoshi in such a way that it can be traced through blockchain according to a set of deterministic rules.

It is possible to link satoshis which "vanished" in a txn fee to satoshis which "appear" in coinbase.

While this is theoretically sound, I don't think it's a good idea because it is rather complicated, but it doesn't solve any real problem:

With a simple order-based coloring colored coins are effectively lost when they are mixed or sent as a fee.

But with satoshi-level coloring they might be sent to random people. I don't think it's better.
hero member
Activity: 496
Merit: 500
I thought he wanted to keep them colored after passing through the coinbase. Is not impossible, but not particularly interesting.

I don't think this would be possible. Coloring can work with multiple inputs and outputs because you create a standard method of assigning them, order based coloring. You can then map colored inputs and outputs 1:1. However, with a coinbase transaction there's just a single output with a value of 50 + sum(fees). How would you determine the color of that output?
legendary
Activity: 1372
Merit: 1002
I thought the miner was going to receive the fee colored.

No, because fees don't connect from one transaction to the coinbase of their including block (they don't even have to be included, really), like normal amounts do from one output to another input.

I thought he wanted to keep them colored after passing through the coinbase. Is not impossible, but not particularly interesting.
legendary
Activity: 1022
Merit: 1033
The example of ripple transactions I mentioned in other thread were circular only when the trade involved bitcoins. There was also a non circular example of the typical example of Ripple transaction (A -> B -> C).

OK, I meant transactions which involve more than 2 parties.

Quote
Of course, uncolored coins for colored coins is the base use case and I think you're doing the right thing implementing it first.

Uncolored coins are not particularly special, the only difference is that we can pay fees with them.
legendary
Activity: 1022
Merit: 1033
Yep, I'm working on multi-party transactions now. That was one of reasons for choosing Armory.

Auto-trade's role is to allow to trade with clients which do not implement p2p trading protocol: any client capable of sending/receiving coins can trade them this way.
hero member
Activity: 742
Merit: 500
I like the idea of autotrade, but your implementation requires trust.

I think some sort of multi-party transaction would be a better route. Armory's support for offline transactions will probably make this easier since you can build partial transactions to be signed later.
hero member
Activity: 496
Merit: 500
I thought the miner was going to receive the fee colored.

No, because fees don't connect from one transaction to the coinbase of their including block (they don't even have to be included, really), like normal amounts do from one output to another input.
Pages:
Jump to: