Cointime

扫码下载App
iOS & Android

如何避免一个智能合约“在今天合法,明天非法”的 SCAC 陷阱发生?

个人专家

区块链稳定性的新威胁

简介

区块链和智能合约有潜力重新塑造世界商业的许多方式。为了实现这一潜力,区块链首先必须是可靠的。然而,目前实施的智能合约存在一个以前未被认识到的缺陷,可能导致其所在的区块链崩溃或分裂。

就像之前的互联网一样,区块链技术承诺一种无需中心控制的新型互动方式。公共区块链本质上是为了在政府和私人控制之外运作。

但这是一个谬论。虽然区块链可能在国家的直接控制范围之外运作,但维护区块链的服务器(称为节点)和运行节点的人并非如此。这些节点和人员都有实际位置,并因此受到所属国家法律的约束。

我们已经看到了一些这方面的后果。例如,许多区块链初创企业因为提供了根据美国法律来说是未注册的证券而遭遇美国证券交易委员会的指责[1]。加密货币本身几乎从它们诞生之初就通过税法间接地受到国家政府的监管[2]。而在最近涉及Three Arrows Capital、FTX、Coinbase和Binance的丑闻之后,国家的直接监管只是时间问题。

智能合约代表了更加隐蔽的威胁。虽然加密货币领域将来会受到监管,即未来的交易将受到新的规定的约束,但智能合约会带来“追溯性”监管的风险。换句话说,加密货币可以选择根据规定改变未来的行为。然而,区块链可能发现智能合约已经使其无法逆转地承诺了未来的行动,即使这些行动随后成为受监管甚至被禁止的行为。

智能合约权威冲突

一个正确实施的智能合约的标志之一是它不能被单方面修改。事实上,除非特意设计,即使获得各方同意,它也不能被修改。但是,一个智能合约在今天是完全合法的行为,可能在明天就变得非法。当一个智能合约执行的行为在托管区块链节点服务器所在地的法律下是非法的时候,就会出现智能合约权威冲突(SCAC)。

这种情况最容易通过一个假设来说明。瑞士儿童基金会发行了一系列流行的NFT,其中包括一个智能合约,每当其中一个NFT被转售时,将10%的版税转给瑞士儿童基金会。两年后,美国政府将瑞士儿童基金会列为恐怖组织[3],并向位于美国的区块链节点及其服务提供商发送通知,告知他们该组织的指定状态,并威胁称如果他们继续参与任何有利于瑞士儿童基金会的交易,将追究刑事责任。

随后,其中一个NFT转手,智能合约执行,将10%的收益转给了瑞士儿童基金会。所有区块链节点都验证了该交易,包括位于美国的节点。结果,美国节点的运营商因为提供支持[4]给一个指定的恐怖组织[5]而被刑事起诉。

SCAC陷阱

区块链参与者如何避免这种法律责任呢?首先,节点将开始构建一个合规功能[6],以在验证过程中识别非法交易。除非你能够识别出非法交易,否则就无法避免执行它。

显然,一个矿工(即组装新的交易区块的节点)在没有面临潜在的法律后果的情况下无法执行非法的智能合约交易。然而,一旦配备了合规功能,矿工就有一个相对简单和非干扰性的方法来避免责任。由于矿工可以挑选要包含在新区块中的待处理交易,他们可以简单地选择不处理已经确定违反矿工所受国家法律的任何交易。这对区块链没有直接影响,因为该交易仍然留在池中,可以由另一个矿工来处理。

然而,当矿工最终处理这笔交易时,它将成为潜在的致命不稳定源。在我们上面的例子中,假设一个位于瑞士的节点(瑞士儿童基金会在瑞士并非恐怖组织)最终将该交易包含在一个区块中。但是,位于美国的任何节点(具体来说是任何节点运营商)可能会因协助验证该区块并完成交易而面临刑事起诉[7]。根据位于美国的节点数量以及区块链使用的具体共识协议,这将导致区块链从完全没有影响到有效崩溃。在某些情况下,由于区块链的激励机制,这些交易可能变得无法执行,即使矿工根据自己国家的法律并没有禁止执行该交易。

以以太坊为例,要实现“最终性”,2/3的质押以太必须就一组区块达成一致。如果超过1/3的验证器要么离线,要么拒绝验证特定区块,则该区块无法最终确定。以太坊通过最终对离线或拒绝验证的节点施加处罚[8],降低这些节点的以太坊质押数量,直到“不合作”节点持有的以太坊质押数量低于总质押以太的1/3,然后允许其余节点验证该区块并完成链条[9]。

在我们的例子中,如果超过2/3的“投票”权力,即质押以太,由位于美国以外的验证节点持有,那么瑞士儿童基金会的交易可以在没有美国验证器的帮助下得到验证。然而,如果超过1/3的质押以太由位于美国的验证节点持有,该交易将无法在没有对位于美国的节点进行经济处罚的情况下得到验证。

这可能会使区块链参与者面临更严重的合法合规问题。换句话说,在我们的例子中,以太坊区块链试图迫使位于美国的参与者参与非法交易。除了对参与区块链的动力造成不利影响外,这可能会带来更大的法律问题。以经济威胁对方,迫使其从事非法活动,违反了多个州和联邦法律[10]。

避免陷入SCAC陷阱

由于SCAC可能在引发它们的智能合约创建之后很长时间才出现,即使是最稳定的区块链也会受到威胁。更糟糕的是,一旦出现SCAC,解决问题可能已经太晚。幸运的是,区块链可以实施防止SCAC的软分叉协议更改。

其中一种解决方案是为节点提供标记有问题交易并在被要求验证包含此类交易的区块时投票“出席”的选项。投票“出席”不会产生任何惩罚,区块链会将该节点视为在该验证周期内退出了区块链。结果是,需要达成共识的节点总数将减少。一旦验证周期完成,投票“出席”的节点将“重新加入”区块链,并且就像离线节点上线时一样,接受当前区块链的状态。

为了保持可靠性并避免出现验证非法交易比合法交易更容易的情况,区块链还可以创建一条规则,规定当51%的节点标记特定交易时,该交易被视为被拒绝,并从交易池中移除。

如果不解决SCAC问题,它将对任何出现的区块链的稳定性构成威胁。区块链开发者需要认识到,随着智能合约的广泛应用,即使整个区块链可以生成足够的共识来处理有问题的交易,也会对个体区块链节点产生合规性问题。区块链展现出巨大的潜力。但如果要实现这个潜力,区块链不能强迫参与者在保持其在区块链中的良好地位和遵守当地法律之间做出选择。

关于作者

Chris Truax是一位总部位于加利福尼亚的律师,拥有国际业务实践,为科技初创企业提供咨询和代表服务。Chris拥有丰富的学历,毕业于加利福尼亚大学、圣母大学和剑桥大学。

参考文献:

[1] See e.g. SEC v. Kik Interactive Inc., 492 F. Supp. 3d 169 (S.D.N.Y. 2020) https://casetext.com/case/us-sec-exch-commn-v-kik-interactive-inc

[2] See e.g. Rev. Rul. 2019-24, 2019-44 I.R.B. 1004, I.R.S. Notice 2014-21, 2014-16 I.R.B. 938. https://www.irs.gov/pub/irs-drop/n-23-34.pdf

[3] 8 U.S.C. §1189. https://www.law.cornell.edu/uscode/text/8/1189

[4] “[M]aterial support . . . means any property, tangible or intangible, or service, including . . . financial services” 18 U.S.C. § 2339A(b)(1). https://www.law.cornell.edu/uscode/text/18/2339A

[5] 18 U.S.C. § 2339B. https://www.law.cornell.edu/uscode/text/18/2339B

[6] Such a compliance function might take a variety of forms depending on local regulatory requirements. It might, for example, screen proposed transactions against a list of sanctioned wallet addresses that have been designated by the government with legal jurisdiction over the node.

[7] 18 U.S.C. § 2339B. https://www.law.cornell.edu/uscode/text/18/2339B

[8] Known as the “Inactivity Leak” protocol.

[9] Wakerow, P., Rustagi, S. and Cook, J. (2022) Proof-of-stake rewards and penalties, ethereum.org. Available at https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/rewards-and-penalties (Accessed: March 15, 2023).

[10] See, e.g. 18 U.S.C. § 875(d), 18 U.S.C. § 371. https://www.law.cornell.edu/uscode/text/18/875 https://www.law.cornell.edu/uscode/text/18/371

评论

所有评论

推荐阅读