This was one of the first things I looked into when getting acquainted with SAFENetwork.
The problem is mostly the lack of multisig and/or network computing.
Multisig is needed to actually persist any results in SAFENetwork (the fact that a buy and sell order has been matched, the transfer of token ownerships, etc).
Computing and consensus could be an alternative, but you still need the persistence of the facts - and preferrably in SAFENetwork, otherwise you’d be implementing SAFENetwork all over again just to store that info in a DHT with your overlay instead. You’d still need to implement a large part of what SAFENetwork already does, as to get any security in the groups that are supposed to reach consensus. So, that’s not so good. I mean, we would need to implement secure groups for every new decentralized application, immense duplication of code and logic and lots of overhead, when MaidSafe may be implementing computing after release, making all that code and logic redundant.
If trading is to happen near real-time, regardless of whether client placing a specific order is online, then we need the computing. And for it to be anonymous, apparently it is something like, for example homomorphic encryption, that is needed. I have not delved into homomorphic encryption, so I don’t know how near any real implementation of that is, if it is already widely used, or if it is like cold fusion.
So, developing any applications that need to perform these sorts of transactions, or execute logic that must be objective (i.e. cannot trust individual clients with it), is IMO quite hard right now. I think the best option now is to try and abstract that part away in black boxes, and start develop applications as if those parts existed, but leave it unimplemented in the black boxes in wait for the actual solutions.
It would be quite helpful though if we could get some discussions going in the community (and with MaidSafe) on how the solutions would most likely look, so that we can do more accurate abstractions, and chisel out what kind of architecture and application design this requires.
There’s C++ source code to download there.
On GitHub there are some forks:
https://github.com/Lab41/PySEAL with python wrapper in addition to the C# wrapper, and plenty of explanatory comments.
And some hard core manual https://www.microsoft.com/en-us/research/uploads/prod/2017/11/sealmanual-2-3-1.pdf
Hm, so. Seems not entirely trivial to use from a first glance. I’ll have to look at that C# example later to see what I can make of it.
Forgot to mention another key component of decentralised exchange; efficient querying - which there is also currently not any standard for in SAFENetwork. @intrz provided a very interesting list of papers on the subject here. So that too would be something we need to wrap our heads around.