中文

在 Agda 中对 Bitcoin 建模

密码学与安全 2018-04-18 v1

摘要

我们在交互式定理证明器 Agda 中给出了 Bitcoin 区块链的两种模型。第一种基于简单的银行账户模型,但具有多输入与多输出的交易。第二种模型对交易进行建模,其直接引用未花费交易输出而非用户账户。由此产生的区块链生成了一棵交易树。该模型使用 Agda 的独特特性之一——扩展形式的归纳-递归得以形式化:交易树与交易的集合被归纳地定义,同时递归地定义未花费交易输出的列表。两种结构均对标准交易、coinbase 交易、交易费、交易中花费方所需签署的确切消息、区块奖励、区块及区块链进行建模,且第二种结构还建模了 coinbase 交易的成熟时间以及 Merkle 树。哈希与密码学操作及其正确性通过公设相应操作来抽象处理。文中指出了如何在 Agda 中对该模型的正确性进行规约与证明。

关键词

引用

@article{arxiv.1804.06398,
  title  = {Modelling Bitcoin in Agda},
  author = {Anton Setzer},
  journal= {arXiv preprint arXiv:1804.06398},
  year   = {2018}
}

备注

27 pages