比特币诞生后,一个特别的行业产生了:“挖矿”,完成nonce计算并给区块打包的节点,称为矿工。
我们在比特币上的每笔交易,就是这些矿工记录到区块链上的。由于矿工掌握着记账权,自然对比特币系统举足轻重,这让我们担心:他们是不是可以对我们的资产造成什么影响,比如转走、消失,或者不让我们交易?这种影响,就是矿工的代理风险。
分析矿工的代理风险,要深入到挖矿流程,确定哪些矿工可自主决定,哪些是协议或算法安排的。
以BTC、ETH为例,打包过程中,选择哪些交易,打包哪些数据(比如时间戳等),向哪些节点广播、接受哪些节点的广播等,都是由矿工自己决定的;而打包规则,打包之后的HASH,及基于HASH计算nonce值等,都是协议约定并可被系统验证的,是矿工无法随意篡改的。
按照这个流程,没有私钥的话,矿工不可能伪造转出交易,因此不可能把你的钱转走。但矿工可以不让你的交易打包,甚至把你的地址加入黑名单,只要是它打包的,就无视你的交易。另外,如果交易有先后次序需求的话,矿工可以将你的交易排在后面,或者将其它指定的交易排在前面。
由于矿工可以选择性的接收广播,这会成为一种借口:将某个地址纳入黑名单可以说成没有接收到该笔交易,被拉黑的人无法从任何数据中找到自己被加入黑名单的证据,也就无法追溯矿工责任。
当然,对于一个纯粹的矿工而言,他想做什么都是可以的,只要符合协议的约定都没问题。但对于委托给矿池的矿工,随意将一个地址纳入黑名单,则应该受到监管或说明,因为矿池和矿工是委托代理关系,不能保证该行为是基于矿工利益而非矿池的利益。对于这个问题,我们将单独写一篇文章来讨论矿池的代理风险。
从以上描述来看,矿工对个体的影响,主要是抢先交易、排除交易(黑名单等)两种,这两种在BTC上都不会造成资产损失(当然,时间损失也是一种损失);同时考虑到单个矿工的的影响较小(矿池除外),且打包的矿工是随机产生的,因此这两种代理风险会随着节点的增加、系统的扩大而降低。但如果矿池的发展越来越集中,则可能正好相反。
然而,在ETH上,由于智能合约容纳更复杂的逻辑,特别是DeFi领域,一笔交易的重要性和关联性极大提升,这意味着矿工代理风险的上升。
以312为例,在DeFi出现大面积挤兑的情况下,抢先交易和排除交易的收益-风险结构就变得很重要了,这个时候存在“外部激励”:即不是靠打包交易产生的ETH来激励矿工,而是各种链上合约的套利价值激励矿工,使得在最开放的假设下(矿工完全基于自己的总激励来设计打包策略),ETH确实可能出现种种混乱,矿工成了DeFi套利利益的最大受益者。
这些混乱将影响公链的去中心化共识,特别是矿池这样做的话,负面影响还会加倍。
当然,现实世界里,矿工及矿池会受到声誉、外部监管、社群抵制等等各方面因素的影响,因此真正敢于这样明目张胆进行外部激励的矿工,还是少数。但这种潜在的风险依然存在,特别是矿池;由于其符合当前法律的委托代理结构,一旦损害委托人的利益,很可能会遭受传统法律关系的指控,这是成本很高的事情。