killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
March 09, 2013, 12:47:14 AM |
|
@killerstorm i've been working on bitcoinjs for a while now with the specific intention of making it compatible with colored coins. i'm actually heading up to ny this weekend to start testing with some buddies of mine to see how this will be applied in a real-world environment. Have you seen "the best way to implement coloring on a server" discussion on bitcoinX mailing list? It might be relevant to what you're doing. I've reposted it here: http://wiki.bitcoinx.org/index.php/ServerImplementationDiscussionAlso "development priorities" thread is kinda relevant too. the thing is that i'd really like to see a colored coin spec (not sample code) that "completely and clearly" explains how it all works. Coloring itself is described here: https://github.com/bitcoinx/colored-coin-tools/blob/master/colors.mdIt isn't a complete spec, but I think it's good enough for the start... It doesn't cover color definitions, but I'd say code which "does" color definition IS the spec for now: https://github.com/bitcoinx/colored-coin-tools/blob/master/colordefs.pyp2ptrade protocol isn't documented anywhere, but general overview was posted several times on bitcoinX mailing list, I can dig it up if you want. i'm working on completing my own spec at the moment and will be happy to share it with you when its done. however, it is specific to my purposes (which will be used mainly in a "controlled" environment) and i'd really like to make it 100% compatible with what may become the "official" colored coin standard. Well, you can either send me your spec for review, or outline parts which you think might be problematic and we will try to improve specs.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
March 09, 2013, 12:54:33 AM |
|
did you ever consider namecoin based colored coins? namecoin has it's issues but it might make an interesting combination. a connection to the real world. Yes, considered this combination, but I don't see where it can be really useful (i.e. interest in it), and I don't have resources to implement things at random. However, recently a different thing came to my mind: namecoin can be used simply to associate a public key with some name, while colored coins will exist on Bitcoin chain. In theory it is possible to verify this association without downloading whole namecoin blockchain. If this is true, namecoin can be used to register ticker, colordef and whatnot, but we'll still trade on bitcoin chain. I think that would be cool, but it's fairly complex software-wise.
|
|
|
|
nyusternie
Full Member
Offline
Activity: 211
Merit: 100
"Living the Kewl Life"
|
|
March 09, 2013, 03:00:03 AM |
|
awesome. thanks
|
|
|
|
jtimon
Legendary
Offline
Activity: 1372
Merit: 1002
|
|
March 10, 2013, 11:25:55 PM |
|
However, recently a different thing came to my mind: namecoin can be used simply to associate a public key with some name, while colored coins will exist on Bitcoin chain. In theory it is possible to verify this association without downloading whole namecoin blockchain.
If this is true, namecoin can be used to register ticker, colordef and whatnot, but we'll still trade on bitcoin chain.
I think that would be cool, but it's fairly complex software-wise.
Yes, namecoin can perfectly be used to "certify" color definitions. I fear you would need the whole chain after the output that gives the issuer the ownership of the name-key, to be sure it hasn't moved. But haven't really thought much about it from the requirements point of view.
|
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
March 11, 2013, 09:11:19 AM |
|
Crap. I really didn't anticipate that they can just change rules like that and nobody cares.
|
|
|
|
justusranvier
Legendary
Offline
Activity: 1400
Merit: 1013
|
|
March 11, 2013, 12:29:27 PM |
|
Crap. I really didn't anticipate that they can just change rules like that and nobody cares.
Lots of proposals floating around now; no guarantee that any of them will be implemented but it's probably best to speak up about it.
|
|
|
|
phelix
Legendary
Offline
Activity: 1708
Merit: 1020
|
|
March 11, 2013, 03:12:52 PM |
|
Crap. I really didn't anticipate that they can just change rules like that and nobody cares.
would it be possible to add an additional "fee" to the colored output?
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
March 11, 2013, 03:24:16 PM |
|
Crap. I really didn't anticipate that they can just change rules like that and nobody cares.
would it be possible to add an additional "fee" to the colored output? Well, one can simply use more satoshis per unit of his colored coin. Say, 50000 satoshi is likely safe (it is 0.0005 BTC, currently the minimal fee), 10000 satoshi might be enough (0.0001 BTC is min fee for relaying). But one needs to take divisibility in mind. Say, if 1 USD is represented with 10000 satoshi, you can send $1.23, that would be 12300 satoshi. But you cannot send $0.23... Well, you can, but it would take a long time to confirm. In any case, arbitrary rules like this are ugly. I believe it's would be better if Bitcoin will adopt a more scalable architecture (e.g. UTXO set tree linked from blocks) sooner rather than later.
|
|
|
|
markm
Legendary
Offline
Activity: 2968
Merit: 1102
|
|
March 11, 2013, 03:26:14 PM |
|
Could XRP somehow be coloured?
Oh wait, one could just use IOUs instead of colouring XRPs...
-MarkM-
|
|
|
|
jtimon
Legendary
Offline
Activity: 1372
Merit: 1002
|
|
March 11, 2013, 03:31:45 PM |
|
Well, one can simply use more satoshis per unit of his colored coin. Say, 50000 satoshi is likely safe (it is 0.0005 BTC, currently the minimal fee), 10000 satoshi might be enough (0.0001 BTC is min fee for relaying).
I think that proposal is just flawed. If I pay fees, why the network should care if I move 0.00000001 btc or 1 btc ? I'm paying for the costs the transaction has for the network. What they really need to worry about is old unspent outputs, whether they contain 0.00000001 btc or 1MM btc. I think "my" (I can't remember who said this first) proposal: after X blocks after the last movement, unspent outputs pay a fixed demurrage fee per block. This way people can just move their colored coins/bitcoins before X to "refresh them" and unspent abandoned small amounts will be destroyed soon.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
March 11, 2013, 03:36:57 PM |
|
What they really need to worry about is old unspent outputs, whether they contain 0.00000001 btc or 1MM btc. I think "my" (I can't remember who said this first) proposal: after X blocks after the last movement, unspent outputs pay a fixed demurrage fee per block. This way people can just move their colored coins/bitcoins before X to "refresh them" and unspent abandoned small amounts will be destroyed soon. I've heard it from Meni... Kinda makes sense: tx fee pays for inclusion into block and first M months, but after that storage fee is deducted from output value.
|
|
|
|
alberthendriks
Member
Offline
Activity: 86
Merit: 10
|
|
April 10, 2013, 11:50:35 PM |
|
Some things here. If it's really about transactions that don't make sense economically, they should adjust the patch. Colored satoshi ARE economically sensible. I didn't read that topic though. I've just read THIS topic.
Ok, so this is a brilliant topic, but let me first address some issues I see.
There are currently only 1100000000000000 satoshi available. That may sound like a lot, but it's really not (as SilverShire already pointed out). Every single share consumes a satoshi. I don't know how many shares there are worldwide, but I do know there are 1.1 bln MacDonalds shares. But stocks are still doable. How about $1 that says that Chelsea will beat Rubin Kazan tomorrow? There are about 30,000 of them. And believe me, that color is really cool to trade on an exchange. The ownership of the mox ruby magic the gathering card that once belonged to Bram Snepvangers? There goes another satoshi. You get the idea. There's too much to color. This thing will drown in its own success.
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
April 11, 2013, 07:31:19 AM |
|
Well, the long-term plan is to use a separate blockchain specifically designed with colored coins in mind.
Meanwhile, we could also use alt-chains... Say, Terracoin is interesting because it is small and fast (there is a problem with difficulty oscillations, though), and Devcoin has really abundant satoshis.
|
|
|
|
alberthendriks
Member
Offline
Activity: 86
Merit: 10
|
|
April 11, 2013, 07:50:44 AM |
|
Nice. I'm now starting to read the google mailing list and the docs.
|
|
|
|
greBit
|
|
April 11, 2013, 02:29:25 PM |
|
Just wondering why you would want to move to an alt-chain? Wasn't the whole point to have colored coins happen over the existing Bitcoin infrastructure?
Or do you just want a way for storing the genesis_output_address -> color relationship? i.e. As a secure p2p key value store?
(Where 'color' is the signed contract from the issuer.)
In any case I think your ideas here could be revolutionary!
cheers
|
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
April 11, 2013, 06:47:40 PM |
|
Just wondering why you would want to move to an alt-chain? Wasn't the whole point to have colored coins happen over the existing Bitcoin infrastructure? Sorry, I just meant that we'll have many options in future. Of course, it is up to users to decide what is better for them. Bitcoin clearly has advantages in terms of liquidity and security, but perhaps some uses value other qualities more. Or do you just want a way for storing the genesis_output_address -> color relationship? i.e. As a secure p2p key value store? That's an option too, Namecoin might be fit for that.
|
|
|
|
jl2012
Legendary
Offline
Activity: 1792
Merit: 1111
|
|
April 12, 2013, 06:09:47 PM |
|
With the recent never ending DDOS events, I think we need a decentralised exchange based on colored coin
The only centralized part is a colored coin issuer. It acts as fiat currency clearinghouse through wire transfer or with other electronic currency, and collect service charge during the process. Since it does not need to maintain a trading engine like mtgox, the running cost is minimal.
For users, transaction fee is only 0-0.5mBTC, no matter the size of the trade.
Most importantly, DDOS is impossible. People can trade as long as bitcoin is functional (and there is no point to trade bitcoin if the network is not functional)
But there is a big problem: the users have to sign the transaction manually. If fully automated trading is desired, users need to keep a daemon running and leave their BTC and colored coins in a hot wallet.
If this is workable, I may try to establish one.
Any idea?
|
Donation address: 374iXxS4BuqFHsEwwxUuH3nvJ69Y7Hqur3 (Bitcoin ONLY) LRDGENPLYrcTRssGoZrsCT1hngaH3BVkM4 (LTC) PGP: D3CC 1772 8600 5BB8 FF67 3294 C524 2A1A B393 6517
|
|
|
killerstorm (OP)
Legendary
Offline
Activity: 1022
Merit: 1033
|
|
April 12, 2013, 06:52:20 PM |
|
With the recent never ending DDOS events, I think we need a decentralised exchange based on colored coin
The only centralized part is a colored coin issuer. It acts as fiat currency clearinghouse through wire transfer or with other electronic currency, and collect service charge during the process. Since it does not need to maintain a trading engine like mtgox, the running cost is minimal.
For users, transaction fee is only 0-0.5mBTC, no matter the size of the trade.
...
If this is workable, I may try to establish one.
Any idea?
Well, if you can find somebody who can issue USDcoins and people who trust him, you can just use p2ptrade component of ArmoryX to do the trade... It even has nice, easy to use GUI But... there are issues... It's kinda proof-of-concept quality software. It is usable, but I recommend against using it. I'll group them by category. Software quality: - code is not reviewed, neither it is tested.
- it crashes from time to time, likely due to bugs in Armory itself. hodgepodge of C++ and Python isn't the best platform for reliable software, I think
- it is based on old version of Armory, which doesn't support bitcoind 0.8 file layout.
- Armory requires a running bitcoin-qt/bitcoind, eats a gigabyte or two of memory, takes 10 minutes to start. probably is already unusable on 32-bit systems
Conceptual: - state management used in p2ptrade is flawed, basically it allows attacker to buy/sell more coins than offered
- particularly, attacker can hold you a hostage, completing trade only when it is profitable to him. to cancel trade you need to pay a tx fee
- it is fairly trivial to do a DoS attack
- it uses HTTP for transport, central order-book server
So, you gotta fix this to get a usable p2p exchange. Particularly one either needs to fix ArmoryX, or write another client... Which we're trying to do now, by the way. As for conceptual problems, they are not as horrible as one might think... - DoS and opportunistic order execution can be fixed through a reputation system, centralized or decentralized. Note that only one of trading parties carries risk, so reputationless agents can trade too
- state management can be fixed
- HTTP transport sounds like "not p2p enough", but it can be federated, it's fairly easy to do that, and one can run HTTP orderbook servers on each trading node, making it more like a p2p system
As for things you mentioned: Most importantly, DDOS is impossible. People can trade as long as bitcoin is functional (and there is no point to trade bitcoin if the network is not functional)
I don't think you can do it this way (unless you go with MasterCoin design, which has problems on its own), but it might be hard to DDoS a large federation of orderbook servers. But there is a big problem: the users have to sign the transaction manually. If fully automated trading is desired, users need to keep a daemon running and leave their BTC and colored coins in a hot wallet. This is a non-issue, I think. If you just want to buy/sell coins, you just launch it, trade, shut down. If you're a market maker or pro trader, yes, you need a running system. But you don't need all your coins to be in a hot wallet. You can keep them in another wallet and add/withdraw as needed.
|
|
|
|
nyusternie
Full Member
Offline
Activity: 211
Merit: 100
"Living the Kewl Life"
|
|
April 13, 2013, 03:37:06 AM |
|
But there is a big problem: the users have to sign the transaction manually. If fully automated trading is desired, users need to keep a daemon running and leave their BTC and colored coins in a hot wallet. This is a non-issue, I think. If you just want to buy/sell coins, you just launch it, trade, shut down.If you're a market maker or pro trader, yes, you need a running system. But you don't need all your coins to be in a hot wallet. You can keep them in another wallet and add/withdraw as needed. i'm actually working on a solution for this now. there shouldn't be any issue with the buyers, but ANY sellers would in fact have to maintain some form of hot wallet in order to automate the process. an alternative is to use an escrow service or even m-of-n transactions (still kind of an escrow). but each of these have security risks that in my opinion are too risky (especially in this wild-wild-west economy where you really don't want to trust anyone) i've been racking my brain on this for weeks. any ideas would be very welcomed
|
|
|
|
|