Blockchains are modern distributed systems that provide decentralized financial capabilities with trustable guarantees. Smart contracts are programs written in specialized programming languages running on a blockchain and govern how tokens and cryptocurrency are sent and received. Smart contracts can invoke other contracts during the execution of transactions initiated by external users. Once deployed, smart contracts cannot be modified and their pitfalls can cause malfunctions and losses, for example by attacks from malicious users. Runtime verification is a very appealing technique to improve the reliability of smart contracts. One approach consists of specifying undesired executions (never claims) and detecting violations of the specification on the fly. This can be done by extending smart contracts with additional instructions corresponding to monitor specified properties, resulting in an onchain monitoring approach. In this paper, we study transaction monitoring that consists of detecting violations of complete transaction executions and not of individual operations within transactions. Our main contributions are to show that transaction monitoring is not possible in most blockchains and propose different execution mechanisms that would enable transaction monitoring.
翻译:智能合同是用专门编程语言编写的程序,它运行于一个链条上,它规定了如何发送和接收标语和加密货币。智能合同可以在实施外部用户发起的交易过程中援引其他合同。智能合同一旦部署,便无法修改,其陷阱可能造成故障和损失,例如恶意用户的攻击。运行时间核查是提高智能合同可靠性的一个非常有吸引力的技术。一种方法是具体规定不受欢迎的处决(无论任何索赔要求),并发现飞行上违反规格的情况。这可以通过延长智能合同,并附加相应的指示,以监测特定财产,从而形成一个链式监测办法。在本文中,我们研究交易监测包括发现违反完全交易执行而不是交易中个别业务的行为。我们的主要贡献是表明在大多数条条上不可能进行交易监测,并提出能够进行交易监测的不同执行机制。