>> (p.1)
    Author Topic: order-based coin coloring  (Read 3178 times)
    killerstorm (OP)
    Legendary
    *
    Offline Offline

    Activity: 1022
    Merit: 1033



    View Profile
    October 01, 2012, 08:20:33 AM
    Last edit: October 13, 2012, 02:19:57 PM by killerstorm
     #1

    Previous discussion: https://bt.irlbtc.com/view/106449.0 got a bit cluttered, so I'm starting a new thread specifically about coloring algorithm.

    Introduction into coin coloring schemes: https://bt.irlbtc.com/view/106449.msg1169974#msg1169974
    A summary by Jutarul: https://bt.irlbtc.com/view/106449.msg1203918#msg1203918
    Atomic coin swapping - https://bt.irlbtc.com/view/112007.0

    A C++ implementation of order-based coloring algorithm: https://bt.irlbtc.com/view/106449.msg1230732#msg1230732

    It's important to make distinction between coloring algorithm and coloring validation.

    Coloring algorithm's output is colors for each transaction output in a transaction. (We assume that it's being fed with transactions which are already in blockchain so saying that they are "broken" is not an option.) It is not allowed to fail as long as its input is a valid transaction. If colors cannot be determined for some outputs (or for all outputs) it simply should say that they are uncolored. (I use separate COLOR_MIXED color, but it's semantically same as uncolored.)

    A good coloring algorithm should be "forgiving": if colors can be determined for some outputs but other outputs are not correctly organized, it should correctly color outputs which can be reliably identified.

    The reason for this is that we need to work in a situation with incomplete information. Particularly we should take into account situations where transaction receiver does not know about some colors transaction creator was aware of. Also it's possible that transaction creator does not know colors of some outputs he is using in his transaction, but transaction receiver has this knowledge.

    Examples are here: https://bt.irlbtc.com/view/106449.msg1170082#msg1170082

    A transaction coloring validator is a different thing. It will be ran when transaction is being made or signed. It might be used to check for defects in transaction-making algorithms. We can be much more strict in a transaction coloring validator.

    Chromia: a better dapp platform
Page 1
Viewing Page: 1