I think what’s needed for having this kind of price and buy everything with every kind of token is a decentralized exchange. Something like an append only MD perhaps where people would append their buy and sell orders. If had some whatever tokens in my wallet and I went to some app I could then choose to show the pricing of the thing I wanted to buy in the token in my wallet, the browser/wallet could calculate the price based on the exchange rate from the current buy and sell orders, maybe I have token A and the seller wants token C, then the decentralized exchange would try to find a path from A to C, perhaps that would include first selling A for B, then B for D and finally D for C, but from my perspective it would just seem like I paid with A.
The actual exchange I guess would be something like I say I want to buy 1 safecoin for 10 fishtokens, then sellers of safecoin for fishtoken would get a push (I think this is what mpid messaging is for) then if someones sell order matched they would send me a message or something and I’d verify that they were the closest order in time to my order so that they’re not trying to cheat other users who also has some order in the order book.
Once we both have agreed that we want to do the trade, I want to give my 10 fishtokens to user B and user B wants to give 1 safecoin to me in return, we need some way to do the exchange without any of us being able to cheat.
The problem though is that the transfer has to be atomic. My fishtokens has to change owner from me to user B at exactly the same moment as user B’s safecoin changes owner to me.
I would add user B as an owner to my 10 fishtokens and user B would add me as an owner to his 1 safecoin. Now both are owners of both.
What would be needed is some multisig mechanism where user B would sign that he would release the safecoin once he has the signature that I will release the 10 fishtokens. I suppose these kinds of transfer could perhaps be built into the multisig feature somehow to make it possible to do these kind of things before computed is implemented. Not sure if this is too much of an edge case perhaps though and that it would be better done with compute.
Basically I would sign an ownership transfer for my fishtoken to user B, but with a multisig that would also require user B’s signature, in this case though, user B’s signature should not be on my fishtoken it should be on his safecoin and only when both users have signed both MDs should the signatures be valid.
Normal multisig is that an MD needs the signature of several parties for example to change the owner of the MD, in this case what would be needed is that several different MDs are signed by multiple parties before the signatures are valid. If there are two MDs 1 and 2 who both has owners Alice and Bob, the signatures of Alice and Bob on MD1 should not be valid until both Alice and Bob has also both signed MD2, so it’s basically multisig on multiple MDs instead of just multisig on a single MD I guess, where two MDs has to kinda work as if it was a single MD. The two MDs would not have the same close group though so for this to work I guess the two close groups would have to connect to each other to become like one close group for the larger MD consisting of two MDs and all, or the majority, of nodes in both groups would have to agree on all the signatures before the ownership transfers took place. I suppose if this worked it could also be extended to any number of MDs so that, say, five people all would have to sign six different MDs before the signatures of any MD would be valid. So it’s not M of N signatures, but M of N signatures on MD 1 AND M of N signatures on MD2 at the same time.