How to make smart contracts work in a small network?
One approach is to use a system like Ethereum, Truebit, or their successors.  In Ethereum, every node checks that the smart contract was executed correctly.  In Truebit, there is a sophisticated way to assign the contract to untrusted nodes and check that they executed it correctly.

Another approach is to use trusted hardware, like SGX.

There are probably other options as well.

I suggest reading up on those systems.  There's lots written on them.