以太坊等区块链在其智能合约处理虚拟机上使用基于堆栈寄存器的语言。该模型非常方便,因为它提供了一种简单的机制来衡量运行程序所需的工作量:只需为每个原始操作固定一个成本并求和。
假设以智能合约为特色的区块链没有使用虚拟机,而是使用了函数式编程语言,例如 Haskell 的核心。是否有任何简单、准确的方法来测量执行功能程序所需的工作量 - 请记住节点能够使用任何评估策略,因此这种测量必须是通用的。
以太坊等区块链在其智能合约处理虚拟机上使用基于堆栈寄存器的语言。该模型非常方便,因为它提供了一种简单的机制来衡量运行程序所需的工作量:只需为每个原始操作固定一个成本并求和。
假设以智能合约为特色的区块链没有使用虚拟机,而是使用了函数式编程语言,例如 Haskell 的核心。是否有任何简单、准确的方法来测量执行功能程序所需的工作量 - 请记住节点能够使用任何评估策略,因此这种测量必须是通用的。
“只为每个原始操作和总和固定一个成本”并不容易。区块链网络动态确定其代币的真实价值,无论其代币的最小值提供什么价值。例如,为了将其用作世界计算机上的计算单位,无论世界愿意为它支付多少气体,它都值得。为了准确衡量网络为确保其代币的单位价值所花费的努力,我们需要一个 DMMS 算法(如侧链论文中所述),它只不过是一个工作量证明区块链。
每个原始操作都需要自己的区块链才能准确确定其价值。当多个代币在单个区块链上实现时,例如彩色/自定义硬币,它无法准确衡量一个单位的价值。
对于函数式语言,人们或许可以想象一个 lisp 区块链,其中 paul graham 的 7 个原语实现为操作码(基于堆栈的解释器无关紧要),这将是图灵完备的,但会遇到确定每个操作码的真实值的问题;最便宜的总是会在以太坊上被滥用(自杀功能的廉价被垃圾邮件)。
因此,要实现功能性图灵完备的区块链,您需要一个由 7 个区块链组成的编织网络,每个区块链独立地确定该原始计算所需的努力的真实价值。
有工作量证明替代方案的人会不同意上述观点。加密货币是一个新领域,数学还不够成熟,任何人都无法提出具体主张。