Smart Contracts For Freelancers

Are you a freelancer? If so, I bet it gets frustrating when the occasional client never got around to paying you even though you delivered the work and you have a contract. Sure, they complain about how some freelancers never actually deliver on their promises when clients can be about as bad, right? What if there was a type of “two-way escrow” system where clients could view but not actually do anything with your work until they release payment?

“There’s an app for that” may be a slightly overused catch-phrase, but Blockchain “smart contract” applications can work in a way similar to true two-way escrow. If one party doesn’t keep up their end of the deal, the contract simply reverses itself with a note in the appropriate Blockchain record that would show what happened. You delivered the work, but the client refused to release payment. Sure, he’s a jackass, but he won’t have a legal leg to stand on if you simply file the work until he grows some sense and sends you the money owed.

If it comes down to a court case, this may require some explanation of how the Blockchain works. The name comes from the records being called “blocks” that are calculated using a hashing function in which the hash of each record is the basis of the hash of the next. Each block is added to a series of records called a “chain.” It’s basically a highly secure ledger that can’t be tampered with easily because it requires consensus, a general agreement among the majority of nodes whose job it is to make sure that everything runs smoothly that the records being added to the chain are valid ones. Systems that make use of permissioned ledgers, ones that require nodes to verify their identity before they can work on the Blockchain, are beginning to come down the pike for an added layer of protection against spoofed nodes that can interfere with the process of adding valid records. Attacking such a ledger for the sake of changing existing records can become so expensive that a reasonable client would pay you before considering such an attack in most cases.

The Blockchain smart contract application’s job is simply to register the fact that a contract exists and whether all parties involved kept up their end of the deal. It won’t know or care that the client didn’t pay you because he got fired from his job. Basically, his temper tantrums won’t change the facts recorded on a contract chain and the judge would be legally justified in requiring garnishment of his paychecks so you can get the payment you’re owed and release the files when he finds work again.

Remember, though, this works both ways. You getting paid would be dependent on you delivering the work. Most clients that routinely hire freelancers could tell you stories about frauds who disappeared after receiving a payment or delivered poor quality work when they delivered at all. Bitcoin itself is good at protecting the rights of vendors but not so good at protecting the rights of clients that hire those vendors’ services, which is one reason that escrow services are so popular in the cryptocurrency community. Once you explain the smart contract system you use to potential clients, they might be impressed by the added layer of certainty that goes into the system. They know you’re not going to bother trying to change the contract after the fact and you only get paid if you deliver satisfactory work.

This isn’t science fiction. Blockchain-based smart contract systems actually exist. If you know something about programming, you could create your own customized system using Decerver. Startups like SmartContract aim to make smart contracts easy. This is a system where it doesn’t really matter if you trust your client or your client trusts you. You get paid when you deliver satisfactory work, and that work can move out of “read-only” mode when the client sends you the payment due (naturally, cryptocurrencies are preferable). If one of these conditions is false, the contract reverses itself in a way that nothing is really lost except some time and aggravation.

[simple-rss feed=”” limit=10]