Location : Home > Resource > Paper > Theoretical Deduction
赵磊│区块链技术的算法规制
2020-06-28 [author] 赵磊 preview:

[author]赵磊

[content]

一、区块链的算法逻辑

 

区块链技术是一种参与者“点对点”电子系统,这首先依赖信息的分布式存储,而参与者在信息交换过程中数据的真实性、不可篡改性以及工作量证明则通过特殊的算法逻辑实现。

 

(一)区块链算法即“上帝”

 

在一项交易中,双方当事人之间由于信息不对称,通常要经过长期交往形成的信用机制保障,或者依赖第三方来保障交易安全。但只要交易中存在第三方,势必会产生机会主义、代理成本以及交易成本,上述问题都是不可避免的。那种能够克服人性弱点又没有任何利益追求的第三方是不存在的,除非是上帝。在现实生活中,上帝是不存在的,直到十一年后,中本聪发明了比特币,其底层技术——区块链使得这一空想变成了现实。

 

在比特币系统中,参与者之间的交易“点对点”进行,通过区块链技术建立起一个去中心化与去第三方的参与者共同协作的机制。区块链是共享的、受信任的分布式公共账本,网络中的每一个节点参与所有比特币交易的认证和备份,当有用户发起一个交易时,信息会被广播到整个网络,通过算力比拼而获得记账权的矿工将交易记录成一个新的区块连接到区块链中。所有交易信息一旦被记录,就不可能被篡改。在区块链系统中,算法以客观数据为基础,依赖特定运算方法自动运行,不受任何人控制和支配,交易双方完全信赖算法而非第三方。因此,算法扮演了上帝的角色。

 

(二)确认交易的真实性——区块链中的密码学算法

 

没有现代密码学的发展,就不可能产生比特币与区块链技术。区块链通过对交易信息数据化,再对这些数据加密传输,所有人都可以见证,只有当事人才有权解密、知悉信息内容。上述交易过程,通过两种密码学算法共同完成:一是非对称加密算法;二是哈希算法。

 

非对称加密算法是指对数据进行加密和解密时,需要两个不同的密码完成。非对称加密算法在区块链中的运用,将交易中的密码分为公钥 (publickey) 和私钥 (privatekey)。区块链系统的参与者因其角色不同而持有不同的密钥,当其为交易的见证者时,其仅仅持有公钥,当其为一项交易的当事人时,其既持有公钥也持有私钥。在区块链中,数字签名可以用于验证信息发送者的身份,用户可以公布自己的公钥,然后发送可以被公钥所验证的、已经通过私钥加密过的信息。如果信息的接收者能够使用公钥解密加密过的信息,即可证明这条信息的身份属实。区块链系统采用非对称加密算法,一方面赋予全网用户通过公钥对所有交易予以验证的权利与义务,保证了交易的真实性;另一方面只有交易当事人才能通过私钥获取每一个交易的具体内容,保证了在分布式存储网络中点对点信息传输的安全性与当事人的隐私。

 

区块链 (blockchain) 中将上一个区块的信息数据传递给下一个区块,是通过哈希 (Hash) 算法完成的。哈希算法也叫“安全散列函数”,又称信息摘要。区块链使用哈希算法把交易生成数据摘要,当前区块里面包含上一个区块的哈希值,后面一个区块又包含当前区块的哈希值,以此类推,一个个包含哈希值的区块串连起来,形成一条区块链。哈希算法是区块链的底层技术,其上述特性赋予了区块链技术的可靠性。

 

(三)共识算法即共识机制(Consensus)

 

非对称加密算法与哈希算法的一并运用,构成了区块链系统最为重要的因素——共识算法,也称共识机制。最初的区块链都是公共区块链,参与者在无中心化的情况下分布式存在。而在分布式存储的计算机系统中,实现参与者之间的信任是非常困难的。

 

区块链解决这一问题的方案,是为发送信息加入成本,降低信息传递的速率,并加入一个随机数以保证这一段时间内只有一个参与者(矿工)可以进行传播。它加入的成本就是“工作量”,区块链的每一个参与者必须完成一个随机哈希算法的计算工作量才能向各城邦传播消息。如前所述,区块链系统的各个节点进行分布式记账,通过哈希算法保证了每个交易区块信息传递的连续性与真实性,又通过非对称加密技术保证了信息传递的正确性与所有节点一致性。于是,各个节点对区块链系统内的所有信息与数据达成一致认识,而按照同一套协作策略行动,是为形成共识机制。

 

(四)区块链算法——信任机器

 

区块链通过自己的算法逻辑,使得陌生参与者在没有任何第三方介入的前提下,实现了相互信任、达成交易。这一切并非人与人之间或者机构与机构之间等任何传统意义上的信任关系和信用机制,而是参与者对区块链技术的信任。

 

二、区块链算法的决策自动化

 

(一)区块链算法与智能合约

 

区块链是分布式系统,各个节点是分布式分类账本,其不只记录其他节点传递来的信息。作为共识系统的一部分,其必须确保记录的交易已经完成,与共识相匹配。

 

智能合约是运行在区块链系统可复制、共享账本上的计算机程序,可以处理信息,接收、储存和发送价值。基于区块链技术的智能合约,不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可篡改。同时,由区块链自带的共识算法构建出一套状态机系统,使智能合约能够高效地运行。

 

如果把区块链看作是一个数据库,智能合约就是能够使区块链技术应用到现实中的应用层,是利用计算机代码构建并存储在区块链中的去中心化协议,一旦满足代码所设定的条件便会自动触发合约执行。可以说,智能合约与区块链技术两相成全,前者拓展了后者的应用领域,后者保证了前者的性能。

 

 (二)智能合约的运行机制

 

作为自动决策程序,智能合约既具有计算机程序代码,也具有传统合同元素,二者相对独立又相互联系。智能合约的运行机制一般包括三方内容:

 

一是每一个智能合约都必须有特定的条件框架 (Conditional Framework),这一条件框架既符合合同法规则,也是计算机编码必需的。条件框架由多方参与者共同制定,完成智能合约的构建。

 

二是架构在区块链系统上的智能合约通过哈希算法进行数据存储。用户在某一区块链系统上部署智能合约以后,系统会自动分配给其一个合约账户,该账户里保存着智能合约的可执行字节码。一旦编码完成,智能合约就会被上传到区块链系统,全网验证节点都会收到相关信息,交易数据存储在区块链上,智能合约账户的状态数据存储在自己的账户内。所有数据均会在区块链系统中永久留下历史记录。

 

三是智能合约的执行,是通过验证程序代码完成的。各个节点收到交易信息后,自动会对其进行签名验证,以确保交易的有效性。各验证节点对某一交易达成共识后,智能合约将自动执行,并通知交易当事人及全网。同时,智能合约自带的状态机会判断所属合约的状态。

 

有限理性和交易成本是所有传统合同难以避免的问题。智能合约将当事人之间的权利义务转化成计算机代码,通过区块链系统保证其运行的客观理性与自动化。一方面,智能合约是基于软件的比特算法,可以排除掉影响合同履行的人为因素,保障了交易安全;另一方面,区块链算法的自动化决策大大提高了合同履行的效率,降低了交易成本。从这个意义上说,智能合约中的代码不同于现有合同形式,与其说代码代表了合同,还不如说代码本身就是合同。

 

(三)以太坊:区块链算法决策自动化的最佳例证

 

比特币是区块链技术的最初应用,其十几年的成功运行充分验证了区块链技术的可行性与应用价值。2013年,一位普通的比特币社区程序员 Vitalik Buterin 提出以太坊 (Ethereum) 的构想——“下一代加密货币与去中心化应用平台”,意图建立一个开源的有智能合约功能的公共区块链平台,并于2015年7月将这一构想付诸实践。基于以太坊平台的应用是智能合约,采用多种编程语言实现协议,为区块链技术的广泛应用提供了无限可能性。

 

三、区块链算法对现行法律制度的挑战

 

(一)区块链算法对担保与信用机制的改变

 

商事交易活动绝大多数情况下是在陌生人之间发生的,为了保障交易安全,传统法律制度设计了较为完备的担保体系。在没有任何担保的前提下,交易安全很大程度上则取决于当事人的信用是否良好。商事交易因信用机制而达成交易,也未能完全脱离“第三方”的干预。

 

区块链技术的算法机制充分消除了交易当事人之间的不信任,降低了交易不确定性,使得当事人之间的道德风险与机会主义难以发生。因此,传统法律框架下的担保机制与信用机制在区块链世界中,已无太大的用武之地。当然,这并不是说区块链排除了法律规则的适用,只不过是改变了传统法律制度的运行机制。区块链技术基于法律框架,不仅通过预设自动执行的智能合约,在约束并引导人们的行为时引入技术,而且大大降低了法律的执行成本,呈现出法律规则和技术规则协同作用、相互补充,法律与经济融为一体、逐渐趋同的态势,法律的约束与执行逐渐走向智能。

 

(二)合同法视角下的智能合约

 

智能合约是区块链算法的核心,也是区块链技术对传统法律制度冲击最大的部分。但是,在合同法视角下,智能合约至少存在以下几方面的问题:

 

其一,在法律框架下确定智能合约的内容是困难的。智能合约是以代码形式呈现出来并运行于区块链系统中的计算机语言,其在编辑时如何体现当事人的权利义务、是否应当由技术人员、法律专业人士以及区块链系统的用户共同参与制定,以及是否可以将法律框架下涉及当事人权利义务的“法言法语”编辑成代码,放到智能合约中去等等,这些问题目前看来尚未有令人满意的答案。

 

其二,智能合约不像书面协议那样私密,就其密码没有以人类可读语言公开揭露和解释而言,它们可能促使甚少有人理解的标准化合约安排的形成。更令人担忧的事实是,区块链智能合约的自主和去中介性可以支持和促进犯罪活动。

 

其三,全流程自动化的智能合约不能适应千变万化的现实生活,可能会造成当事人合法权益的损害。现实生活中的商事活动是非常复杂的,不但当事人主观上协商一致可以变更或解除合同,而且如有不可抗力、情势变更等客观情形发生,当事人可以主张合同变更、解除或免除违约责任。对于智能合约而言,上述情况发生时也无法阻止合同的自动执行,可能会侵害当事人合法权益,甚至可能违背了双方当事人的意思自治。

 

其四,智能合约会增加新的成本。传统合同是灵活的,当事人可以使用绩效标准(通常定义的合同条款)来创建可执行的协议,还可以将商业惯例纳入协议,从而避免了明确但多余的谈判。同时,在合同履行过程中,当事人可以通过非正式修改或有选择地执行动态调整合同。智能合约消除上述灵活性,可能会产生比其寻求解决的成本更为严重和棘手的成本。

 

(三)区块链算法下的权利保护

 

区块链技术的主要特征是匿名性,非对称加密算法的应用,使得用户信息的全网共享与隐私保护相结合成为可能。虽然在比特币这样的区块链系统中,交易内容和节点地址都是公开可见的,但是各个节点却无法获知其他节点背后用户的真实身份。

 

区块链系统都是特定用户用来从事某种交易或者其他活动的载体,无论在何种应用场景下,有两个要素不可或缺:一是主体,即区块链系统的用户;二是行为,即商事交易或其他社会活动。因此,在区块链2.0和3.0阶段的应用场景中,至少应该在两个方面加强用户的权利保护。以区块链在金融领域的应用为例:一是用户身份的匿名性;二是交易的保密性。在线交易系统应尽可能最少地披露用户交易和帐户信息,包括:(1) 任何未经授权的用户都无法访问用户的交易信息;(2) 未经管理员允许,系统管理员或网络参与者不得向他人透露任何用户的信息;(3) 即使在意外故障或恶意网络攻击下,也应始终安全地存储和访问所有用户数据。

 

四、规制算法与算法规制

 

(一)技术是中性的吗?——区块链算法规制的必要性与可行性

 

技术的工具性观念有其目的导向,这并不是技术本身的问题,而是技术的创造者和使用者的行为。从规制的角度来看,所有的社会活动均是由特定主体的行为完成的。规制技术应该从两方面入手:一是主体方面,规制技术的创造者和使用者;二是行为方面,规制技术的具体应用。单纯地对区块链技术进行监管既无必要,也不可行,需要根据区块链的不同类型,结合具体应用场景讨论。

 

具体说来,规制区块链算法应该从以下四个方面着手:一是从规制对象来说,应该对区块链算法的制定者和使用者加强监管;二是从规制的场域来说,应该根据区块链算法的具体应用场景进行规制;三是从规制的阶段来说,应该贯穿区块链算法制定与实施全流程,即事前监督、事中监督与事后监督相结合;四是从规制的方法和路径来说,要将区块链算法纳入现行法律制度框架内,即“依法治链”。同时,要根据具体情况,争取实现利用区块链算法机制来监管区块链算法,即“以链治链”。

 

(二)依法治链:规制区块链算法

 

区块链算法在形式上看是由计算机程序代码、密码以及特定运算方法构成,与传统法律制度逻辑严密的、规范化的行为规则相去甚远,但从其规则自身、目的导向以及行为结果来看,是可以纳入到现行法律制度框架来的。

 

1、从公法的角度看,区块链算法要符合密码法和网络安全法的相关规定

 

密码学原理是区块链算法的核心,是区块链分布式账本数据真实有效、不可篡改的关键。区块链算法的主要功能就是对数据加密和认证,完全符合《中华人民共和国密码法》界定的密码范畴,因此区块链算法的程序设计也应该严格遵守《密码法》相关规定,加强个人隐私与信息安全保护。另外,《中华人民共和国网络安全法》的相关规定也适用区块链算法的规制。该法第22条规定,如果有组织或者个人利用区块链算法从事非法侵害他人利益与社会公共利益的,应当属于此处“恶意程序”的范畴,为该法明令禁止。同时,该法强调个人的信息安全和隐私保护,课以区块链技术的产品设计方与提供方对用户的说明告知义务,保障用户的知情权。

 

2、将智能合约纳入合同法框架予以规制

 

传统合同法对智能合约的规制体现为两方面:一方面,就智能合同而言,无论其形式表现为何与履行过程如何,如果其运行的最终结果对相关当事人的民事权利义务有实质性影响的,则应当受传统合同法的约束。另一方面,在智能合约的程序语言编写时,应该考虑其运行结果对参与者权利义务的影响,充分征求事前参与者的意见,将其合理诉求转化为程序语言,写入智能合约。对于已经开始运行的区块链系统而言,负责运行的平台应该向后来加入者充分告知说明智能合约运行的结果。

 

3、智能合约形成的新型财产权

 

智能合约中的POW(工作量证明)、POS(权益证明)是其共识算法,同时也是对参与者权益的肯定与证明,在功能上形成某种新型的财产权。在承认数据权利的前提下,应该承认其合法性。这种机制后来发展为Token(通证),作为智能合约共识算法的证明。区块链的Token机制,通过加密算法和分布式账本来确定真伪,以及资产的唯一性,并通过共识算法进行流通。

 

对于智能合约形成的新型财产权应该区别对待,不宜全盘否定。对于打着区块链幌子进行ICO发行的应该全面禁止,而区块链共识算法中的Token机制,应该承认其为一种新型财产权。

 

(三)“以链治链”:利用算法规制区块链

 

1、确立区块链技术标准,建立区块链系统测试机制

 

一项宣称为区块链技术的项目或产品,是否是真的区块链,只能用区块链技术标准去衡量。《密码法》第22、23条规定,商用密码必须符合国家标准以及国际标准。目前,区块链技术的国家标准和国际标准都在制定过程中,一旦标准确定,所有区块链算法都要严格依其行事。区块链算法的设计与实施机构应当主动接受商用密码的检测、认证,以便净化区块链市场,有效打击和防止市场上鱼目混珠的“假区块链”与“伪区块链”。

 

2、建立区块链产业信用机制

 

通过向社会公开的平台,区块链企业籍此进行服务备案、发布相关信息,起到公示公信的作用。

 

2019年1月10日,国家互联网信息办公室发布《区块链信息服务管理规定》,自2019年2月15日起施行。该规定是我国第一部专门规制区块链技术的规范性文件,旨在明确区块链信息服务提供者的信息安全管理责任,规范和促进区块链技术及相关服务健康发展,规避区块链信息服务安全风险,为区块链信息服务的提供、使用、管理等提供有效的法律依据。

 

3、加强区块链行业自律

 

真正掌握和理解区块链技术的是区块链产业的从业者,他们也是区块链技术合规合法发展最大的受益者。如果区块链技术被用来从事违法犯罪活动,社会公众利益受到侵害,哪怕是少数从业者所为,其带来的外部效应同样会波及其他合法合规企业。因此,建立区块链行业自律组织,由从业者相互监督、共同制定从业规范与技术标准,既有利于区块链行业规范发展,也有利于推动技术进步和产业合作。

 

原文刊载于《现代法学》2020年第2期