I am developing a wallet API, but I don't want custodial control of the user's funds. For reasons I won't explain here, I don't want to use multisig.
But I want the advantages of a 2 of 2 multisig. I want the client to sign a transaction, and then send that signed transaction to the server. The server will then finish signing the transaction and push it to the network.
Is this theoretically possible? Does something like this exist yet in practice?
In summary, I want a way for the client and the server to sign a transaction together without either one having the private key.