论文部分内容阅读
区块链技术的本质是去中心化的分布式账本,交易被交易发起者产生,经过P2P网络传播到其它节点,最终被挖矿节点存储到区块上。本文针对UTXO(Unspent Transaction Output,未花费的交易输出)模型的交易,详细介绍了交易发起者生成交易的过程以及挖矿节点选择交易的过程,在不改变交易结构的基础上,提出了一种创新的交易级别的区块扩容方法:减小交易的体积和在区块上存储更多的交易,即分别从交易发起者生成交易和挖矿节点生成区块的角度实现区块扩容,其中,交易的体积指的是交易数据所占的字节数。交易生成是根据所需支付金额来构造交易输入以及根据所需支付的对象构造交易输出的过程,本文改进了交易生成的数学模型,并通过减少交易输入数量和交易输出数量的方法来减小交易的体积。为一个交易接收者创建一个交易输出就能实现交易输出的数量最少,对于交易输入,本文使用贪心算法与遗传算法联合搜索数量最少但是金额总和最接近所需支付金额的交易输入。区块中用于存储交易的字节数是有上限的,减小交易的体积可以使一个区块容纳更多的交易进而实现区块扩容,此外,由于交易费的计算与交易的体积有关,减小交易的体积降低了交易费。挖矿节点以获得高的交易费为目的,从交易池中选择交易打包进区块。只有合法的区块才会获得其它节点的共识,所以挖矿节点需要确保所选的交易是合法的,本文将详细介绍节点对交易的合法性验证规则以及对区块的合法性验证规则。挖矿节点选择交易是一个完全自主的过程,选择尽可能多的交易到区块可以实现区块扩容,但需要兼顾交易费奖励。在区块能完全容纳交易池中的交易时,把交易池中的所有交易打包进区块,即实现了区块扩容又满足挖矿节点的需求;在区块不能完全容纳交易池中的交易时,挖矿节点选择交易使区块成为满块就实现了区块扩容,挖矿节点会优先选择那些交易费总和高的交易组合。通常根据交易费为交易设置优先级,然后根据优先级的高低先后选择交易,本文还给出了将选择交易的过程建模为0-1背包问题,然后使用动态规划求解的方案,可以保证让挖矿节点获得更高的交易手续费。