Technical Paper: Validity-Based Optimistic Smart Contracts
Research and development is a significant part of what we do, finding novel ways to advance the technology that underpins the Fantom ecosystem.
Today, we’re releasing a new technical paper on the optimization of smart contracts. Solidity is the most widely-used programming language for smart contracts but relies on sequential execution and validation of functions. That is, you have to wait for the first function of a smart contract to complete before the second can execute to avoid double-spending.
Quan Nguyen, Andre Cronje and Michael Kong have proposed a new smart-contract programming language, Object Validity (OV), that allows for concurrent executions within smart contracts. This approach increases the throughput and efficiency of smart contracts in distributed ledger networks by pre-checking the invariants (properties that do not change regardless of an object’s state) of different objects and ensuring the functions do not violate them during execution. If there are no violations, then the smart contract can be executed concurrently without waiting for the network to validate each stage.
This approach also dramatically reduces security issues related to reentrancy. These occur when contracts act on multiple initial requests before the consequences of each are recorded in the ledger.
For example, if my account balance is $50 and I submit two withdrawal requests for $50 each, the contract could execute both withdrawals if the available balance hasn’t updated to $0 by the time the second withdrawal attempts to run.
Our research will form the basis for further development work on optimizing smart contract execution, which we expect to apply to Fantom technology and further increase the performance and usability of our networks.
Check out the full paper here at Cornell University’s arXiv library!
Official Links for Fantom:
Official Email Address: contact@fantom.foundation
Official Website Link: https://www.fantom.foundation
Official Discord Discussion Group: https://discord.gg/6V42Gs8
Official Telegram Announcements Channel: https://t.me/fantomfoundation
Official Subreddit: https://www.reddit.com/r/FantomFoundation/
Official Twitter: https://twitter.com/FantomFDN
Official Medium: https://medium.com/fantomfoundation
Official Github: https://github.com/Fantom-foundation
Official YouTube Channel: https://www.youtube.com/c/fantomfoundation