I see one problem with this. To create a promise it is necessary to send an execution msg to a smart contract. right? To do that, some smart contract is executed to store the promise which is changing the state of the smart contract variables which costs a fee because the execution of a smart contract is ITSELF a transaction, the changed state is put in a block and verified signature, yada yada. So what is your solution to that?