I am copying the following text in order not to lose the concise definition of what I have had in mind for some time. It is originally from Bitshares Telegram channel, and written in a rather less elaborate way in a chatting manner.
-
I can summarize it as follows. There is an asset, whose issuer is a multisig account. Each of the keys controlling the account is held by a node running in a separate server. The asset's transfer-restricted flag is on, meaning that each and every transaction involving the asset will have to be approved by the issuer account, which means that each of those separate servers will have to approve the transaction independently.
Now, the model I propose assumes a central server where everyone can propose tx. So, let's say Alice wants to send 10 tokens to Bob. She cannot do it by herself, because the transaction has to be approved by the issuer. How it works is that she proposes the tx in order for the issuer to approve. So, she pushes a proposed tx to the centralized server. That server is just a place to host an unsigned proposed tx list and nothing else. The issuer then comes and sees that there is a proposed tx, by which Alice wants to send 10 tokens to Bob.
When the "issuer nodes" (i.e., the nodes which hold the keys that constitute the multisig issuer account) see the proposed transaction, there are two options. Tx will be approved or not. Now, the issuer nodes can do ANYTHING to decide whether or not to allow the transaction - hence semi-centralized smart contracts.
For instance, let's say that token can only be sent to the VIP members of the service that the issuer provides (one is free to be as imaginative as possible in this phase, since anything is possible, but let me stick with this simplest exampe). So, let's say Alice is a VIP member and Bob isn't - in that case the tx won't be approved. The decision for or against this transaction is done by the nodes. The nodes can use whatever database they wish, and execute the process which checks whether Bob is a VIP member in any programming language that they like.
This I believe is superior to decentralized smart contracts, in that, this one necessitates that the contracts are executed by a number of nodes and not by the entire blockchain participants. Hence, less likelihood of bloating, and super fast execution possibilities. Also, auditability, transparency and immutability stay with us.