Smart contracts have some limitations. Smart contracts can suffer from “hidden knowledge” and we still need a third party in the following case: arbitration, transactional attorneys, programmers, and third party involvement to structure the contracts. The ability to integrate external data is a major concern as it represents a real challenge.

 Worse maybe is the range of security challenges created by smart contract. Developers need to take into account all possible scenarios in a secure manner to avoid unexpected consequences like the one experienced with the DAO. As irrevocability is inherent to smart contracts (they automatically self-execute), smart contracts have to include code to be prepared for unintended and/or unplanned situations. Needless to say that smart contract protocols need to be robust against naive vandalism (i.e. accidentally causing damage), sophisticated vandalism (i.e. intentional vandalism) and incentives to breach the contract. Other security-relevant aspects include object-oriented (like access rights management) or capability-based security (like token access based). Both create potential security breaches.

 As there is no flexibility as in common law, incorporating an exit and amendment possibility in smart contract could be crucial. Therefore smart contracts due to security issues can facilitate criminal activity, as well as threat to consumer protection, and financial stability.

More detail: