SAFE needs fo support Smart Contracts

I think that question requires substantial research on our parts to answer. I gather Intercoin is about issuing local currencies and then converting them to a common currency to spend outside of that local community. Forgive me for only briefly reading over the material, so apologies if incorrect.

If the local currencies were created within the safe network, as ledgers (with sequential data types), it would seem possible to swap between them. On safe network, it is trivial to create such a ledger and as network storage space is the only limit to their quantity. Each asset could have its own ledger, whether an NFT or a local currency.

Given the rules of a ledger could be defined when it is created, transfers could be conditional on the buyer, seller and an escrow signing the transaction. There could be a common escrow between multiple ledgers, allowing assets to only be transferred when both buyer and seller have signed the transactions on both ledgers.

In a smart contract, my understanding is that the escrow could be the network itself. That is, you define the contract in code and let a network agent automatically apply the escrow steps (in this use case).

My question would be - how necessary is this, especially for day 1? I understand it is desirable to have a network agent that can do this, but is it critical?

For context, we could have a pool of possible escrows assigned to a swap. These could be automated user apps, run from any device connected to the network. For the sake of simplicity, the buyer or seller could settle a fee with the escrow out of band (probably a better way).

Given that the seller, buyer would use an app to initiate the trade and the escrow would automatically approve, the exchange would happen quickly. The escrow has an incentive to generate a good reputation and fees, so will be driven to process the swap promptly.

All keys of all parties remain private and the network does not process anything on behalf of the users. Nodes all around the world don’t need to re-run the same contract over and over to get consensus. Transactions can be near network speed, rather than waiting for blocks.

I mused on some of this here too:

Of course, it would be desirable to have a way to run more complex distributed compute tasks and smart contracts. I feel this should be a longer term goal though, with a lot of thought put into the hows and whys. Maidsafe have proven that they are happy and able to forge new ways to accomplish difficult distributed problems. I’m unconvinced it is necessary to delay a release to accomplish these things though - there is plenty of time to add extra functionality in the future.

6 Likes