Smartbtc recently produced a novel concept to smart contracts, creating one that is based completely on Python. To showcase their product, the contract’s developers worked with Twitter to create a proof of concept. The contract was written so that once the Twitter account reached 1,000 within 60 days, it would pay .011 BTC. The goal was met, and the contract was initiated on February 19.
The startup was created to facilitate smart contracts tied to payouts on the BTC blockchain. The contracts are coded so that a transaction is defined as being complete if, using Python’s language, the “def contract()” in the coding returns a value of True. Smartbtc is a centralized service that executes contracts until they are either fulfilled or they expire. However, the contracts depend a great deal on Smartbtc’s servers, as well as a little bit of trust, which results in the need for a centralized contract infrastructure that is still tied to BTC payments.
Smartbtc hopes that more users, including financial institutions, will see the benefit of maintained agreements, instead of a completely decentralized system, and move towards adoption of applications such as the one it has developed. The application’s developers point out that even with other platforms, such as Ethereum’s Solidity codebase, there is still a trust factor that comes into play during transaction resolution.
Transaction will incur a small fee, which is based on the agreement period and execution interval, and can range between 1-2%. If the transaction is not completed, the owner will pay 0.5% of the cost, and the rest of the sum will be returned back to the originator. However, if the smart contract is fulfilled, the receiver will be delivered the agreed amount minus a miner fee.
The code is written entirely in Python 2.7, and is available for review on Github. Smartbtc chose to use Python because they feel that it’s easy for users to understand. All contracts have execution limits of a maximum of 500MB of memory and a time-out execution period of 30 seconds. The contracts can only be terminated if they are fulfilled or if they expire.