|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
November 15, 2012, 02:56:48 PM |
|
Updates: - fees paid with uncolored coins
- auto-trade
Before this fees were paid with colored coins, which is a major problem for coins which are significantly more valuable than BTC/which are represented with few satoshis. After a patch fees can be paid with uncolored coins only. Perhaps it makes sense to allow paying fees with colored ones too, but there is no option for it in GUI yet. Second update is auto-trade script. Basically you can use it to sell colored coins automatically: whenever script detects uncolored coins being sent to your address, it will send back colored coins according to exchange rate you set up. It works like Satoshi Dice, colored coins are sent to address which sent uncolored coins. (This script is just a proof-of-concept, not an end-user material.) Both features definitely require more testing. Particularly "uncolored fee" turned out to be rather hairy. It would be cool if somebody would do code review since testing this stuff is kinda hard. I'm actually willing to pay a bounty for somebody to proof-read my code. Prerequisites are: - good understanding of Python
- willingness to work with code you aren't familiar with
- code review skills, i.e. finding bugs simply by reading code attentively
Familiarity of Armory code base is not required as I'm ready to explain whatever is needed to understand code. Base bounty is 1 BTC. It can be considerably higher if you do a great job, say, rewrite it in such a way that it sucks less. PM me for details.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
November 15, 2012, 03:09:01 PM |
|
Next goals: - ZC transaction support (yeah, it doesn't quite work now)
- user interface adaptations for colored coins (e.g. displaying correct units)
- standardization of color definition format, automatic download from bitcoinX server
- p2p exchange
- a tool for making color definitions
My general plan is to implement features first, deal with quirks either. I'll try to finish most of this stuff this week.
|
|
|
|
jtimon
Legendary
Offline
Activity: 1372
Merit: 1002
|
|
November 15, 2012, 03:52:19 PM |
|
Thank you for working on this. ... After a patch fees can be paid with uncolored coins only. Perhaps it makes sense to allow paying fees with colored ones too, but there is no option for it in GUI yet. ...
Mhmm. I don't think it makes much sense. Miners could get the colored fee and uncolor it without noticing. Those fees may be more attractive for miners that consider colored coins, but I don't see much value in this feature. If it's to be done, it can wait for everything else.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
November 15, 2012, 04:12:48 PM |
|
If txn fee is paid with colored coins those colored coins are lost. It might make sense if value per satoshi is ~1 satoshi. I agree it isn't a very useful feature, that's why I haven't implemented it. There is, however, a better way to pay the fee with colored coins, it is based on same mechanism as p2p exchange. Say, you have only GOLDcoins and what to send them to somebody. To pay a fee you need to find somebody who wants to buy GOLDcoins, then you send them a small amount of GOLDcoins and he sends a fee. All in same transaction. Essentially it is a slightly more elaborate p2p exchange mechanism. And while we are here, we can probably implement ripple-style circular exchanges through same p2p exchange mechanism, it just needs to be even more elaborate. I'll start with simplest one, of course, but maybe I can make some room for more advanced features.
|
|
|
|
jtimon
Legendary
Offline
Activity: 1372
Merit: 1002
|
|
November 15, 2012, 05:01:07 PM |
|
I thought the miner was going to receive the fee colored. Anyway, someone else involved in the transaction can pay the fee with uncolored coins as you suggest.
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). Of course, uncolored coins for colored coins is the base use case and I think you're doing the right thing implementing it first.
|
|
|
|
chrisrico
|
|
November 15, 2012, 09:12:14 PM |
|
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.
|
|
|
|
Red Emerald
|
|
November 16, 2012, 02:34:29 AM |
|
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.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
November 16, 2012, 09:47:24 AM |
|
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.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
November 16, 2012, 09:58:45 AM |
|
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. 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.
|
|
|
|
jtimon
Legendary
Offline
Activity: 1372
Merit: 1002
|
|
November 16, 2012, 10:26:35 AM |
|
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.
|
|
|
|
chrisrico
|
|
November 16, 2012, 05:03:54 PM |
|
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?
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
November 16, 2012, 05:46:35 PM |
|
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.
|
|
|
|
ShireSilver
|
|
November 17, 2012, 05:05:26 PM |
|
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.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
November 17, 2012, 05:33:00 PM |
|
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_affairsBut 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.
|
|
|
|
Jutarul
Donator
Legendary
Offline
Activity: 994
Merit: 1000
|
|
November 17, 2012, 05:39:47 PM |
|
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.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
November 17, 2012, 05:54:57 PM |
|
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...
|
|
|
|
ShireSilver
|
|
November 17, 2012, 06:04:46 PM |
|
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! 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.
|
|
|
|
Red Emerald
|
|
November 17, 2012, 08:44:29 PM |
|
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!
|
|
|
|
jtimon
Legendary
Offline
Activity: 1372
Merit: 1002
|
|
November 20, 2012, 04:13:03 PM Last edit: December 04, 2012, 12:44:04 PM by jtimon |
|
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.
|
|
|
|
|