The choice of optimal color kernel is still an open question, as there is no 'perfect' one at this point. I've narrowed it down to three designs, in order of preference:
1. CTDE: 'colorvalue transfer data encoding':
Information about transfer is encoded as data in OP_RETURN output, not as satoshi values.
Pros:
* departure from coupling colorvalues with satoshi values means high divisibility and no weird side-effects.
* compatible with 'partial transactions'
Cons:
* currently not all pools support OP_RETURN, so confirmations will be delayed
* there are people who dislike OP_RETURN and there is no guarantee that it will always be available
* it is departure from the original idea of coloring satoshis
* 80-byte limit means that we'll be limited to 4-5 colored outputs. It's OK for p2ptrade transactions, but is too little for mixing.
(There is a way to address this issue by making protocol a bit more complex.)
2. EPOBC: a variant of POBC with variable padding.
Transaction can be marked either via nSequence or OP_RETURN output.
Pros:
* fairly close to the original design, 1 satoshi is 1 atom of colorvalue, padding is accounted for separately
* relatively easy to explain, people can get intuitive understanding
* can be used right now, doesn't rely on OP_RETURN
* if nSequence becomes relevant again it will be usable
Cons:
* coupling satoshi values with colorvalues means that high divisibility costs a lot, some people believe it creates accounting problems
* not compatible with 'partial transactions' which are useful for offline trading
* is a bit complex
3. ITOG: information about transfer is encoded in nSequence, supports both padding and scaling.
(I already implemented it, by the way.)
Pros:
* high divisibility without use of OP_RETURN, usable right now
* compatible with 'partial transactions'
Cons:
* it is fairly hard to explain how it works
* in some cases one needs considerable amount of bitcoins to perform a transaction (temporarily)
* extra complexity associated with satoshi value accounting
To summarize, ITOG is probably no longer relevant.
Choice between CTDE and EPOBC is largely a choice between old a new model.
EPOBC has an additional advantage that it would work right now.
There is a risk that OP_RETURN will be banned in future releases, but in that case we can do a protocol update, it isn't particular painful within colored coins model.
Thoughts?