I'm posting this in response to a bitcointalk suggestion by thelonecrouton:
https://bitcointalk.org/index.php?topic=421615.msg9233774#msg9233774
Anyway, fwiw, I have been trying to follow/understand the Automated Transactions thread at bitcointalk as it seems to address the kinds of issues discussed here.
https://bitcointalk.org/index.php?topic=822100.0
Does everyone (but me) already know all about AT stuff? Is it relevant or useful for DRK purposes? How does it relate (if at all) to tungfa's proposal? Thanks for any clarification you can offer.
Nemo, I didn't know about ATs and I'm very grateful you came here and told us about this exciting stuff. They indeed are an ingenious creation and do have innovative potential for the crypto world.
So the short answer to your question is: yes.
The slightly longer and more technical answer is: I advise against using them, because
1. they add an additional layer of complexity to the system,
2. would take up much more development time just to implement and test everything thoroughly to make them available for our use case in the first place,
3. they carry the potential danger of bloating the blockchain in the long run, and
4. they are not really necessary to build a decentralised exchange, because we have something much better: the masternodes. How is that? See my next post.
It's not too easy to wrap one's head around how Automated Transactions work but to quickly explain at least how I understood the concept and how they could be used, here's the gist:
ATs are "automated transactions", real executable computer programs, byte code, that are put into the blockchain as a special data transaction with OP_RETURN. Think of someone putting a computer program into the blockchain instead of the odd picture of Nelson Mandela, Valentine's day messages or their marriage contract, and then this code is actually executed by the decentralised crypto system.
If I understood the concept correctly the code should be executed by the miners mining the transaction with the AT and checking its state and then updating the latter. But I'm not totally sure how it should work exactly. What's funny and scary at the same time is that they're supposed to do actual currency transactions. Interesting. They have their own address scheme and funds can be sent to them and their code can distribute those funds. In the case of darkcoin their byte code interpreter could be hosted inside the masternodes for quicker and more stable execution. E.g. One chosen execution masternode, aka the executioner, would look up the blockchain for new AT transactions, and in case he found any execute their code. A system could be developed where this process could even be checked by a set of peer masternodes which supervise the execution of the executioner and vote if everything is green or something's fishy. In case the executioner messed up, at least the transactions should be made reversible and the execution masternode banned for life. Or executed.
Some checking mechanism like that would need to be in place, because the byte code interpreter, which executes the AT's instructions, could be changed by anybody messing around with the host masternode's code.
What could make them interesting for our use case of a distributed currency exchange: ATs can be used to implement what is called atomic cross chain trading.
https://en.bitcoin.it/wiki/Atomic_cross-chain_trading
Ian Knowles, the inventor of ATs, set up a bounty to do just that:
https://bitcointalk.org/index.php?topic=826263.0
A simplified version of the crowdfunding AT
http://ciyam.org/at/at_crowdfund.html would be a candidate to do such a atomic cross chain exchange using just ATs and TierNolans algo
https://bitcointalk.org/index.php?topic=193281.msg2224949#msg2224949.
Could be a fun thing to play around, but I think we really shouldn't take any risk with experimental stuff and because at this point who can really say what this would entail for the security and stability of the darkcoin network: they might be a Pandora's box. But definitely a cool idea.