As we know, smart contracts are used for agreements between non-trusting parties. So let's take an example of an insurance provider creating a smart contract for a customer with the smart contract containing the all the terms of insurance. He then shares the address and json interface with the customer so that the customer can verify the contract on the blockchain, call the function "SignTheTerm(customer_address)" and the function transfers the premium to the insurance_provider_address. But in this case, since the insurance provider has created the smart contract, doesn't he have the control to go and delete it? Contract is gone and the customer loses money.
Any ideas on how this can be prevented and where I am going wrong in the use case?