What I see as the 'hard to solve' problem isn't the contract. That's difficult but ultimately resolves to logic and proofs of logic.
The difficult to resolve problem is enforcing what the contract is trying to measure. It doesn't magically authenticate the state of the real world or objects within it. It can't do things like answer the question: "Did the occupant cause harm or ware beyond normal to a rented unit?" It's very good at enforcing things like regular and timely payment, but can't help resolve things such as "Did the land lord fix plumbing issues when notified?".
It also can't fix things like the biased nature of arbitration (is which relate to the above and in particular relate to the inherent disadvantage of both not knowing and finding it difficult to ascertain the state of the real world at any given time), or the cost involved with performing such observations. Nor can it handle bad actors on the side of renters, either by lack of training/documentation on how to properly use things or direct acts of malice.
Suppose you have someone designated to identify plumbers, call him Bob. Bob has a public key, and if a plumber, call her Alice, comes to him and proves in the usual meatspace ways that she's a licensed plumber, Bob signs the plumber's public key, along with their name and license number and the date, signature good for a year. Maybe Bob works for the government, maybe he doesn't, but in either case he's a trustworthy guy who genuinely only identifies real plumbers and both the landlords and tenants trust him to do that.
Now the contract says that if the tenant identifies a plumbing issue, the landlord will provide a plumber identified by Bob to have a look at it. So the tenant can sign a statement declaring a plumbing issue and if the landlord doesn't get a signature by an identified plumber saying it's resolved within a given time, the landlord is in breach, verifiable with math. But if the plumber comes and signs a statement that there wasn't a plumbing issue, the errant tenant has to pay their fee for showing up, again verifiable with math.
Then the remaining issue is corrupt plumbers. But you can't solve every problem all at once, so you rely on the state to revoke licenses in demonstrated cases of corruption. Or on Bob to stop authorizing them.
> so you rely on the state to revoke licenses in demonstrated cases of corruption.
Revoke how? Does the state, or anyone else besides Bob, have the authority to unilaterally modify the blockchain? If so, why don't they just use a central database, since you are forced to trust them anyway?
The difficult to resolve problem is enforcing what the contract is trying to measure. It doesn't magically authenticate the state of the real world or objects within it. It can't do things like answer the question: "Did the occupant cause harm or ware beyond normal to a rented unit?" It's very good at enforcing things like regular and timely payment, but can't help resolve things such as "Did the land lord fix plumbing issues when notified?".
It also can't fix things like the biased nature of arbitration (is which relate to the above and in particular relate to the inherent disadvantage of both not knowing and finding it difficult to ascertain the state of the real world at any given time), or the cost involved with performing such observations. Nor can it handle bad actors on the side of renters, either by lack of training/documentation on how to properly use things or direct acts of malice.