监管区块链:代码之治(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-15 06:54:09

点击下载

作者:(法)普里马韦拉·德·菲利皮,(美)亚伦·赖特

出版社:中信出版集团股份有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

监管区块链:代码之治

监管区块链:代码之治试读:

推荐序

区块链自出现以来,就以其去中心化的特征为世人所知。中本聪在比特币白皮书中,提出要打造一个不依赖任何中介机构的点对点支付系统,这一思路也为日后的区块链创业者所延续。通过区块链,陌生主体之间分布式的协同记账得以成为现实,互联网也因为区块链而拥有了传递信任的能力,实现了价值互联网。

在此基础之上,区块链在以金融为代表的一系列领域中具有广泛的应用前景。已经有许多人在尝试将区块链应用于各类金融交易场景,代替各种需要信任的第三方机构,在交易双方之间建立起点对点的信任。由于区块链的信任传递能力,区块链能够应用于支付清算、数字票据、资产数字化、证券登记与交易、保险、供应链金融、网络借贷、征信、电子存证、身份认证、隐私保护、物联网、数字版权管理等丰富多样的领域,发挥基于技术的信用创造功能。这些场景都有许多先行者和创业公司已经开始探索推进,尽管规模和进展不一,但都展现出区块链深远的潜力。

尤其是Token的出现,推动了区块链在融资领域的应用。Token作为共享权益凭证,在参与各方之间能够起到利益分配的砝码的作用,它同时具备股票的融资属性、钞票的流通属性、粮票的兑换凭证属性,是三票属性的共同延伸,因而笔者在刚刚出版的新著《区块链+监管=法链(RegChain)》中,将Token翻译为“共票”。我认为,“通证”的译法有一定的谐音要素,但是没有准确表达目前区块链上的Token所具备的属性与内涵,从翻译学的角度而言仍然欠佳。而“共票”更为准确地界定了其共享利益的属性,更能实现权益的大众化、普及化、民主化。早在2014年,笔者就提出了众筹金融的理论,即用新的无组织的社区形态取代公司制,借助新兴技术工具打破信息不对称,打破传统中心化的PE、VC等垄断的资本格局,实现金融的去中介化、去机构化,将其转变为点对点的融资方式,最终实现信息的对称,彻底颠覆旧有的生产关系。区块链的出现,用共票取代股份制,让这一理论构想成为了现实。可以说,区块链让众筹成为与股份制一样伟大的制度发明。

区块链对生产关系的变革不仅触及经济制度,更能深入到法律等社会规范的层面。在区块链发展的过程中,对区块链和法律的关系,公众的观点并不统一。去中心化的支持者认为,区块链不依赖任何中间机构,因而无法被监管,成为一片自由的“乐土”,法律似乎更是与区块链无缘。

但是从现实角度而言,区块链需要被监管。目前区块链的实践中,存在着一些不理性的市场现象,过度强调发行Token和炒币。一些投机分子技术能力不足或者根本没有技术,而假借区块链名义,声称使用区块链技术但实际上没有使用区块链,搞“伪区块链”创新,这些情况明显不利于行业的长远发展,成为孕育“割韭菜”等恶劣行径的源头,甚至可能涉嫌诈骗等犯罪行为。这些不规范的发币行为在被国内有关监管部门禁止之后,纷纷出走境外,继续开展发币和炒币的行为;一些开设在境外的交易平台还存在内幕交易、操纵市场等恶劣行径,继续损害境内民众的合法权益。这些问题的解决之道,仍然有赖于对区块链与法律的关系进行深入细致的研究。《监管区块链:代码之治》是这方面的一个非常有价值的尝试。该书指出,区块链需要被监管,也可以被监管,这也与我一直主张的观点相吻合。更为重要的是,区块链本身就可以用于监管和法律领域。区块链之所以能够创造伟大的价值,原因在于区块链不仅仅是一种提升生产力的技术,而是深入到了规则即生产关系的层面,给利益的分配机制带来了变化,从而对生产关系产生巨大的颠覆,给监管和法律系统带来重构。所以,区块链最大的应用场景实际上是在政府的监管领域,区块链能够化身为法律,带来法律执行效果和效率的革命性提升。

2018年6月28日,杭州互联网法院对一起侵害作品信息网络传播权纠纷案进行了公开宣判,首次对采用区块链技术存证的电子数据的法律效力予以确认。本案的案情并不复杂,原告发现被告未经授权在网站上转载其作品,侵害其信息网络传播权,遂起诉到法院。值得关注的是,原告在向法院举证存在侵权行为时,没有采用传统的公证处公证,而是使用了基于区块链的电子存证技术。杭州互联网法院在一审判决中,认可了这种存证方式,甚至更进一步在判决中较为全面地阐述了区块链电子存证的技术细节,提出了司法上判断是否应当予以采纳的初步标准。这一判决表明了司法界在面对新技术时包容开放但又不失慎重的态度,在全国尚属首例,在世界范围内也是较为领先的。未来,预计基于区块链的电子存证将会在司法领域得到越来越多的认可,区块链将更为深入地应用到司法领域,成为代码改变法律的先驱。

我认为,代码和法律的关系存在着两个递进的层面。第一个层面是用代码表达既有的国家法,也就是code as law。在这一层面上,代码是一种工具,用于表达、转化现有的国家法、成文法、制定法。代码可以界定、解释和执行现有的法律,从而提高法律执行的效率。目前的监管科技也刚发展到这个阶段,运用各种技术工具,收集并分析数据、自动执行监管措施,提高监管的效果和效率。在此过程中,区块链以其独特的技术特征,扮演着极为重要的角色。《监管区块链:代码之治》对此的论述有着很高的参考价值。

第二个层面是更为深刻的层面,是指代码本身就成为法律,即真正意义上的code is law。网络空间的高速发展,伴生了许多没有法律规制、法律无法强制或者来不及强制的场景,在这些情形下,代码直接成为最高的权威,代替法律成为网络空间中的最高社会规范。这个层面与区块链更加密不可分,因为区块链去中心化的特征,通过区块链可能实现不经政府直接在各主体之间达成共识,并得到强制执行。尽管这一前景还没有成为现实,但《监管区块链:代码之治》对此的思考值得我们每一个人阅读。

卫东亮法官在广州市中级人民法院民二庭任职多年,对商事案件的审判工作非常熟悉,又被选调进入广东省高级人民法院执行局,拥有丰富的一线司法工作经验,对公司、证券、合同、物权等商事法律有着独到的深刻见解。卫法官在繁忙的实务工作中,仍然对互联网、区块链等先进技术的发展保持着高度关注,结合自身的工作经验,抽出时间翻译完成《监管区块链:代码之治》,对区块链与法律之间关系的研究做出了富有成效的贡献。我想,卫法官可以称得上中国第一个真正研究和传播区块链的人民好法官。卫法官在工作之余仍然潜心进行学术研究,这种钻研探索的学习精神也让我非常敬佩。期待本书能加深国内公众对区块链的理解,促进区块链应用尤其是在司法领域应用的发展,使区块链与法律、监管更好地结合在一起。中国人民大学大数据区块链与监管科技实验室主任杨东

导论

蒂莫西·梅(Timothy May)是密码朋克(cypherpunk)运动的创始人之一,他在1988年曾提出警告:“幽灵正萦绕着现代世界。”这个“幽灵”不是停滞不前的政治格局,也不是恐怖主义、种族冲突或者环境危机,而是日益增长和扩散的新型无政府主义,梅称之为“密码学无政府主义”(crypto anarchy)。梅在其著作《密码学无政府主义宣言》(Crypto Anarchist Manifesto)中描述了未来的场景:随着互联网以及公私钥密码学(public-private key cryptography)的发展,人们将以更加匿名(anonymous)的方式交流和合作。借助不可追踪网络以及“执行加密协议的防篡改(tamper-proof)盒子”,人们可以“自由交易,根本无须知道对方的真名实姓与合法身份”。

最后,梅预测,个人将从国家中解放出来,完全改变“立法的性质,政府征税、控制经济交往以及保有机密信息的能力”,也会改变我们有关信任和声誉的观念。加密安全协议将拆除知识产权设置的藩篱,促进信息自由流动,赋予个人新的自我组织的能力,彻底改变公司和政府的本质。在梅看来,这一转变是不可避免的。“妖怪已经从瓶子里跑出来了”,梅在之后的文章中解释道,没有任何力量可以阻止因加密技术发展导致的无政府主义的蔓延。

区块链在很多方面就是梅在30年前所设想的“防篡改盒子”,它借助现有的点对点(peer-to-peer)网络、公私钥密码学及共识机制(consensus mechanisms),来创建高度弹性(resilient)和防篡改的数据库,人们可以以透明和不可否认(nonrepudiable)的方式存储数据,并以假名(pseudonymously)从事各种经济交易。区块链可以转移数字货币或其他有价资产,管理产权和敏感档案。不过,它最为重要的应用是可以创建自治(autonomously)执行的被称为智能合约(smart contracts)的计算机程序。

区块链与传统的数据库不同,它不需要集中维护,而是由一个遍布全球的点对点网络来共同管理。组成这一网络的数以万计的计算机,被称为“点”(peer)或“节点”(node)。这些节点上存储着相同或基本相同的区块链副本,并借助软件协议来精确地控制各个节点如何储存数据,如何参与交易,以及如何执行软件代码。

由于区块链在网络中被广泛复制,所以所有存储在区块链上的数据都具有高度弹性,即使某个区块链副本被破坏,或某个节点失效,其他节点上的数据也仍然有效。并且,只要世界上还有一个有效的区块链副本,其他节点就可以修复和重构区块链,恢复之前的全部交易记录,并进行新的交易。

为了提高区块链的安全性,确保信息的有序记录,每个区块链项目均执行特定的共识机制。共识机制是一系列预先严格界定的激励和成本结构规则,基于这一规则,任何人试图单方移除或修改区块链上的数据都非常困难,且代价昂贵。有了共识机制,即使区块链网络成员之间互不认识或互不信任,也仍能定期就共享数据库的当前状态达成一致。

借助公私钥密码学,每个区块链均可以验证所记录数据的完整性,人们可以用假名进行交易,而无须披露交易双方的真实身份。区块链无须集中维护,所以任何一方都不必控制对它们的访问权限。这意味着,在可公开访问的区块链上,任何人均可以创建由公钥、密钥和密码组成的区块链账户并进行交易,且几乎不受任何第三方的干涉。

更先进的区块链,集成了被称为分布式虚拟机的去中心化计算系统,以及图灵完备(Turing complete)的编程语言,参与各方可以借此编写和部署智能合约程序。这些智能合约程序存储在区块链上,并由区块链底层点对点网络的多个成员共同负责执行,而它所创建的计算机进程一经部署就会自动运行,并且难以关闭。

自2009年比特币诞生以来,区块链技术已被大量应用于在线服务,用来存储信息及运行计算机程序。其中一些应用致力于实现梅30年前的愿景,有的应用则增进了现有的合法服务。

正如比特币所展示的,区块链技术支持基于假名的、去中心化的跨国价值转移系统。借助区块链,任何人均可以交易包括比特币在内的数字货币以及其他有价值的资产,而无须通过中心化的清算所,也无须披露交易双方的真实身份。区块链所构建的新型点对点汇款系统,降低了跨国资金转移的成本。同样,区块链技术也在金融服务领域发现了新的机遇,它所构建的去中心化的证券和衍生品交易系统,则直击全球金融市场的要害。

短短几年,区块链就迅速扩展到支付和金融产品之外,它所支持的新型自治系统,有助于形成无须中介机构的社会经济交易结构。人们可以借助智能合约记录法律协议的部分或全部内容,从而创建出动态的、难以终止的商业交易。

各国政府开始尝试使用区块链来保护和管理关键公共档案,如至关重要的信息以及财产权属与证书。同时,政府也希望借助区块链防篡改、弹性和不可否认的特性,最大限度地保证这些关键信息的完整性和真实性。假以时日,区块链将成为新的公共基础设施,充当全球跨国系统的支柱,任何人均可联网使用。

人们开始尝试用区块链创建各种集合体,如至少其中的部分功能需要由代码来执行的新型数字化组织。由于区块链广泛可及,有助于促进经济交易,人们开始探索将其作为协调中心点,来管理现有的法律实体;通过智能合约执行基于代码的规则,来降低团队管理的成本和难度。区块链也可以用来驱动更透明、更少层级的新型组织,便于互不了解的人达成协议。将来,人们可以将区块链作为基础设施,创建完全依赖算法和人工智能的自治组织。这些组织不再由人类管理,而是借助代码规则以及其他算法治理手段来运营。

除了协调人类活动,区块链被越来越多地用于控制机器设备,并借助智能合约来界定这些连接到互联网的设备如何运行。最终,区块链将发展成熟,足以充当协调机器—人、机器—机器之间经济交往的基础层。如果这些尝试取得成功,区块链就会深入渗透到人类活动的方方面面,构建全新的机器—机器、机器—人的交互方式,并有可能改变我们与实体商品之间关系的本质。

然而,并非所有基于区块链的应用和服务都严格遵守现有的法律和规则。区块链驱动的数字货币一般跨国境交易,经常忽略现有的有关货币转移和洗钱的法规,有意规避旨在帮助政府、银行及私营部门追踪货币跨境流动的有关规则。这一新兴技术如果不加以合理的监管,就可能被用于欺诈、洗钱、恐怖融资及其他非法活动。

区块链也在抢占公开交易市场。通过自治运行且不受监管的区块链数字货币交易所,人们可以交易各种基于密码保护的代币(token,也被译为令牌、通证,其中有些类似于证券)、衍生品和其他金融产品,交易额高达数十亿美元。这些区块链系统往往无视现有金融市场的法律界限,削弱了那些精心制定的、旨在限制欺诈和保护投资者的法律法规的效力。

在金融领域之外,区块链也被应用于游走在法律边缘的在线赌博和电子商务市场。这些在线赌场高度自动化运营,不受中央机构的控制。去中心化的电子商务市场方便人们自由交易,无须再依靠易贝(eBay)、克雷格列表(Craigslist)等在线市场,甚至是“丝绸之路”(Silk Road)这样的地下网络。这些应用助长了毒品交易,它们的广泛应用导致政府更加难以限制由此衍生的犯罪以及其他有悖公序良俗的社会活动。

区块链进一步推动了信息流通,用于构建新型点对点文件共享应用、去中心化通信平台和社交网络。借助区块链及其他点对点网络防篡改、弹性的特征,这些应用和平台可以散播受版权保护的作品、煽动性言论和其他不雅内容。如果这些服务得到广泛应用,它们将限制政府和企业控制、过滤以及审查网络信息的能力,也不会考虑可能产生的社会成本和政治成本。

长远来看,如果区块链技术在速度、性能、功能及可访问性方面有所改进,就可能创建出与传统公司及其他法律实体相竞争的组织,甚至可能创建出自治设备和机器人,它们独立自主运行,不受政府、中间运营商以及任何第三方的控制。

正如本书所讨论的,区块链对自治系统的推动和支持,将持续挑战政府与立法者控制、塑造或影响区块链技术发展的能力。与许多技术一样,区块链技术既可以支持现有的法律和规章,也可以削弱其效力。但是,它的特别之处在于,其所创建的弹性、防篡改及自治的全球代码系统,为人们提供了新的金融和契约工具,可以取代当前的关键社会功能。

通过区块链,人们可以构建自己的规则体系,创建由区块链网络底层协议执行的智能合约。这些系统所建立的无须法律的秩序,通过所谓的私人监管框架执行,本书称之为密码法(lex cryptographica)。软件开发者据此创建的工具和服务,可以协调各种跨越国境的经济活动和社会活动,当然,也可以规避特定国家的法律。

密码法的代码规则体系,与当前中心化在线应用采用的、基于代码的规则体系并不相同。多数在线服务要么本身即中介机构,要么借助其他中介机构,如大型云计算服务商、搜索引擎、支付服务提供商、域名注册服务商和社交网络等,来支持它们所提供的服务。这些中介机构不仅执行法律,还执行它们自己制定的规则,它们的身份易于识别,位于特定国家,因此是政府当局管控网络的中心节点。

现有法律体制的监管重点,是负责控制和协调在线活动的各种中心化中介机构,而部署在区块链上的系统,如果主要或完全借助密码法运作,就难以受到现有法律体制的控制和监管。这些区块链系统由软件协议和基于代码的规则管理,由底层区块链网络自动执行,借助配套的智能合约,可以实现高度自治,必然越来越独立于中心化的中介机构。这些应用程序仅由代码组成,由区块链协议以分布式方式运行,通常也不会考虑是否遵守现有法律,这必然与现有法律体制产生冲突。

尽管区块链网络有明确的应用前景,但当前仍面临一些不确定性风险,它可能会动摇中央银行、金融市场和商业协议管理的根基,也可能会支持新形式的非法活动。这些风险之所以显得如此严重,是因为区块链技术已经开始用于重构当前社会的基础体系,重建包括支付系统、金融市场、商业协议在内的各种常见的组织机构。

今天,社会治理的重点很大程度上是由各种机构和官僚体系所决定的,它们主要通过法律和等级制度来规范社会。区块链应用不再需要依赖这一体系和规则,而是依靠密码法来组织经济与社会活动,实现其功能。

随着区块链技术的进一步成熟,权力将从政府制定的法律和规则加速转移至由去中心化区块链网络支配的代码规则与软件协议。基于代码的协议,以及与其发展相关的决策,将最终控制这些系统如何工作,塑造人们交往的方式。我们或将不再遵从法治(rule of law),而是越来越服从于不受任何第三方控制的代码之治(rule of code)。

本书探讨了区块链技术的新应用,分析了其优势及面临的挑战,框定了密码法的范畴。我们驳斥了区块链将导致密码学无政府主义状态这一观点,概述了监管区块链技术的策略。

互联网甫一出现,即引致无政府主义和脱法(lawlessness)概念的滥觞。1996年,约翰·佩里·巴洛(John Perry Barlow)在其《网络空间独立宣言》(A Declaration of the Independence of Cyberspace)中的描述最具代表性。他认为,互联网将形成一个新的世界,在这里,传统的“财产(property)、表达(expression)、身份(identity)、行为(movement)”,以及相关的法律概念均(将)不再适用。“网络公民”(Netizens)将摆脱中心化政府当局的控制,主宰这个世界,并借助去中心化网络实现自治。

然而,互联网的逐渐成熟,证明了巴洛的愿景不过是一个乌托邦式的幻想。过去的十年,互联网为了实现分散权力和鼓励自由交流的初衷,甚至放任垃圾邮件、欺诈和犯罪泛滥,但它反而变得越来越集中,越来越受到监管。手机、应用商店和云计算平台的出现,推动形成了一个更加中心化的网络,少数几家公司便垄断了大部分信息分发和网络交易。

今天,互联网的无政府主义趋势已经得到很大程度的控制。政府监管的重点是本地互联网服务提供商(Internet Service Provider,ISP)和提供互联网基础服务的大型中介机构,并逐步授权由这些机构来维护互联网秩序。一些国家和地区,特别是在欧洲,甚至开始割据互联网,要求互联网数据必须本地化,以防止外国公司收集和存储与该国公民相关的信息。一些国家则更甚,以技术机制屏蔽信息的流动。

我们认为,区块链技术的成熟和发展,也会遵循类似的路径。尽管区块链创建了越来越多的自治和潜在的法外系统,但政府仍有管制的办法。区块链只是减少而不是消灭了对中介机构的需求。即便“区块链真的会导致广泛的去中介化”,法律、市场力量、社会规范以及区块链代码本身,也仍然可以用来维护法治。

随着区块链技术的发展和获得广泛认可,各国政府既可以推动它的发展,也可以阻碍它的发展,可以采取的监管手段也愈加多样。它们可以管制终端用户,要求其承担利用区块链系统从事非法活动所产生的法律责任,甚至可以规定,只要支持非法的区块链应用,就应承担责任。此外,它们还可以对维护系统的软件开发者、硬件制造商以及在TCP/IP(传输控制程序/互联网协议)栈底层操作的中介机构持续施压。

例如,政府可以管制ISP,以及类似搜索引擎这样的信息中介机构,要求它们主动拦截非法区块链应用,或者拒绝将这些非法区块链应用编入索引;可以监管区块链网络的支持和维护人员(即“矿工”),以及为这些网络运行提供必要工具的软件开发商和硬件生产商。对这些主体的监管可以是直接的,如要求其遵守特定的法律规范;可以是间接的,如改变经济激励机制和收益结构(payoff structures)。

目前,区块链技术仍不够成熟。政府可以通过教育,官方的国际工作组或其他非正式的讨论和审议等形式,来塑造与之相关的新型社会规范。政府也可以依靠区块链技术本身,来实现特定的政策目标,例如,将某些法律规则整合到区块链网络及相应的智能合约中。

本书探讨了区块链技术的双重属性,介绍了新出现的密码法,概括了政府监管的潜在路径。我们假设读者不了解区块链技术,所以首先详细介绍其历史细节和技术全貌,解释了比特币、以太坊(Ethereum)和其他相关技术的起源。然后,我们提炼了区块链的核心特征,阐明了为什么这些特征有利于我们理解密码法、算法控制和代码之治。接下来,我们通过密码法详细分析区块链如何能同时支持和削弱现有法律,这一技术在支付、合同法、金融、信息、通信系统以及机器与机器交互等方面如何影响当前的社会和政治制度。

在描述了区块链技术面临的法律挑战后,本书提出了规范区块链系统的方法和成本。然后,立足现实,我们研究了区块链技术如何通过将现有的部分或全部法律转化为代码,来支持或补充法律,探索了这一监管路径所面临的各种风险。本书的目的是介绍区块链技术的运作原理以及潜在的应用前景,总结密码法的鲜明特征,提出监管区块链的可行路径。第一部分区块链技术第一章 区块链、比特币和去中心化计算平台

区块链的核心,是一个由分布式计算机网络维护的去中心化数据库。这一新型数据库融合了点对点网络、公私钥密码学和共识机制等各种技术。本章简要介绍区块链的工作机制,解读理解区块链的若干关键技术。

在互联网诞生之前,计算机是相互孤立的“岛屿”,最多通过笨重的电缆进行简单的连接。这一切在20世纪50年代末发生了变化。随着苏联成功发射人造卫星,以及对“冷战”的恐惧,兰德公司(Rand Corporation)的研究人员开始探索新的计算范式(Computing Paradigm),以期开发出一种能够经受住核打击的系统。1964年8月,在经过多年研究后,兰德公司的研究人员保罗·巴兰(Paul Baran)声称取得了突破。依靠所谓的分组交换技术(packet switching),巴兰能将信息的各个片段,从一台计算机发送到另一台计算机,并将这些片段重新封装成信息,这几乎像魔术一样。

借助巴兰的技术研究成果,美国国防部高级研究计划署(Advanced Research Projects Agency ,ARPA)创建了全球第一个计算机网络ARPAnet,其后,在将美国国防部中“Defense”这一单词的首字母添加到上述机构名称的开头后,更名为DARPAnet。通过这一网络,研究人员和学者可以共享文件,相互交换资源。在接下来的几十年,这个新兴网络的力量越来越强大,随着TCP/IP和DNS(Domain Name Service,域名服务)等附加技术层的发展,网络上的计算机越来越容易识别,同时也能确保信息被适当地路由。从此,计算机不再是孤立的,而是通过代码连接在一起。公私钥加密和数字签名

在DARPAnet项目落地的同时,第二次革命正在酝酿当中,借助新出现的密码算法,人和机器能以安全和可验证的方式交换消息、文件和其他信息。1976年,威特菲尔德·迪菲(Whitfield Diffie)和马蒂·海尔曼(Marty Hellman),两位来自斯坦福大学的密码学家,创造性地发明了“公私钥密码”概念,解决了密码学的一个根本性的问题:对安全的密钥分配系统的需求。这一概念同时奠定了可验证数字签名(authenticated digital signatures)的理论基础。

在公私钥加密技术发明之前,消息很难以保密的方式发送。加密消息在不安全的信道上传播,极易被拦截。要发送加密消息,需要使用“密钥”(key,也称为cipher)对消息做混淆处理,以防止字符串被解读。当经混淆处理的消息到达其预定目的地时,接收方需要使用同一密钥对加密文本进行解码,才能将其还原成原来的文本。

早期密码系统的一个重大局限是,密钥是保护所发送消息的机密性的关键。在交换消息之前,使用密码系统的各方必须首先在密钥上达成一致,或者将密钥以某种方式传送给接收方,这导致密钥很容易被泄露。如果第三方获得了密钥,就可以拦截通信并解密消息。

公私钥密码学解决了这一问题,可以在不预先共享密钥的情况下安全发送加密消息。在迪菲和海尔曼的模型中,公钥由双方共享,每一方则各自生成唯一的私钥。私钥作为密码不需要共享,公钥则充当双方自由通信的参考点。迪菲和海尔曼认为,可以通过这种方法来共享同时用于消息的加密和解密的密钥(一方先将公钥与自己的私钥组合,另一方再将结果与其私钥组合)。

在迪菲和海尔曼公开发表他们的开创性作品后不久,1978年,麻省理工学院的密码学家罗恩·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦· 艾德勒曼(Len Adleman)在这个研究成果的基础上,开发了一种称为RSA(RSA,由三位开发者姓氏单词首字母组成)的新算法。这一算法通过将两个大素数(prime numbers)相乘,生成数学上关联的公钥和私钥。他们指出,将两个大素数相乘相当简单,但反过来想分解出其所使用的素数,即使是超级计算机也非常困难(这一过程被称为素数的分解)。

借助RSA算法的这一数学特性,人们可以广泛地传播他们的公钥,并确信私钥几乎不可能被破解。例如,如果爱丽丝想向鲍勃发送敏感信息,她会使用鲍勃的公钥加密信息,然后公开发布加密的消息。由于使用了RSA算法和素数分解,只有鲍勃的私钥能够解密消息。

公私钥密码技术的应用不仅限于加密消息。正如迪菲和海尔曼所述,由于“加密和解密分别由不同的密钥来完成”,我们可以基于这一原理构建新的密码系统。在这一系统中,借助公私钥密码技术生成的数字签名,由于经过了安全认证,具有高度的防伪性,因此可以取代在纸质文件和合同上的手写签名。

借助RSA算法,发送方可以利用自己的私钥为消息附加数字签名。消息发送后,接收方可以使用发送方的公钥来检查消息的真实性和完整性。例如,如果爱丽丝想向鲍勃发送私人消息,她可以用鲍勃的公钥加密消息,然后用自己的私钥对消息进行签名。鲍勃可以用爱丽丝的公钥验证消息来自爱丽丝,并且确信在传输过程中没有被更改。然后,鲍勃可以用自己的私钥安全地解密消息。

公私钥加密技术激发了新一代学者、数学家和计算机科学家的想象力,他们开始使用这些新的密码技术构建前所未有的新系统。借助公私钥密码学和数字签名,理论上可以建立电子现金系统,基于假名的信誉机制,内容分发系统,以及新形式的数字合约。商业互联网和点对点网络

在互联网诞生以及公私钥密码技术发明后的几年里,计算机革命的影响范围越来越大。随着计算机成本的迅速下降,这些曾经由少数精英把持的机器,逐渐从大公司和政府机构的地下室,延展到每个人的办公室和家里。在苹果公司发布其标志性的个人电脑“Apple II”之后,各种各样价格便宜的电脑充斥了整个市场。似乎一夜之间,电脑进入了我们的日常生活。

20世纪90年代中期,互联网开始急速扩张,迅速进入商业化应用阶段。DARPAnet早已超越了最初的学术用途,在经过数次技术更新后,转型成为现代互联网。在一大批ISP的推动下,全球数百万人沉浸在“网络空间”中,通过简单邮件传输协议(simple mail transfer protocol,SMTP)发送电子消息,通过文件传输协议(file transfer protocol,FTP)发送文件,通过超文本传输协议(hypertext transfer protocol,HTTP)将不同电脑上的内容连接起来。短短几年,互联网就从政府和学术界的私有领地,变成了一种新形式的基础设施。正如《纽约时报》所报道的那样:“互联网之于信息流动的重要意义,正如一个世纪前,跨州铁路之于货物流通的重要意义。”

起初,互联网服务几乎都采用了“客户端-服务器端”模式。服务器端主要由早期的互联网公司掌握,上面可以运行一个或多个计算机程序,也可以用来托管网站和各种应用,互联网用户则通过他们的客户端访问这些服务。在这一模式中,信息流通常是单向地从服务器端流向客户端。服务器端可以与客户端共享资源,但客户端却通常不能与服务器端或使用该服务的其他客户端共享资源。

早期的“客户端-服务器端”系统相对安全,但存在性能瓶颈。每个在线服务都必须运行在成本高昂的服务器上,如果某个集中管理的服务器关机了,运行在这个服务器上的服务和应用就会完全停止。如果服务器收到太多的用户请求,也会因为超载而暂停服务。

21世纪初,新的在线服务模式出现了。人们开始实验一种不再依赖中心化服务器的P2P(peer-to-peer,点对点)网络,它们运行在去中心化网络上,参与者(通常称为“点”或“节点”)既是信息资源的提供者,也是信息资源的消费者。Napster的出现,使这种在线服务模式成为新的主流。通过Napster软件,任何人都可以从其他用户的电脑上下载音乐文件(充当客户端),同时将自己电脑上的音乐文件提供给他人(充当服务器)。在Napster的巅峰时期,它曾经链接了全球数以百万计的计算机,创建了一个庞大的音乐库。

然而,Napster的人气却很短暂。在点对点网络之下仍是由Napster控制的中心化网络,并需要其持续更新网络上所有可用音乐的索引。成员依靠这些索引指引,才能找到他们想要的音乐文件,这是整个Napster网络的关键。

中心化索引对Napster网络的运作无疑是必需的,但也是导致它衰落的主要原因。在针对Napster的诉讼中,法院认定它应对版权侵权负次级责任(secondary copyright infringement),其中部分原因就是它维护了该索引。Napster被要求必须审慎管理点对点网络上的共享文件,必须清除受版权保护的音乐文件的索引。这一强制措施实施后,Napster不再流行,用户也逐渐流失殆尽。

随着Napster的式微,第二代P2P网络应运而生,可以将文件共享给更多的用户。通过新的P2P网络(典型如Gnutela和BitTorrent),人们能共享本地计算机上的文件,同时不再需要维护一个中心化的索引。在Gnutela中,用户发送搜索文件的请求后,Gnutela软件会逐个检索网络中的计算机,直至从某个计算机上找到请求的文件。BitTorrent采取了另一种方法,它将文件分割成小块(chunks),这些小块分别位于不同的计算机,用户可以从多个计算机同时下载,使文件的传输更快和更有效。BitTorrent使用扩展名为Torrent(也称“种子”)的小文件来启动和协调这些大的文件块的传输,由于这些种子文件分布在不同的服务器上,也就不再需要一个总的中心化服务器来统一存储。

这些全新的第二代去中心化网络,没有一个可辨别的中心服务器,也少有对其提供支持的中介机构,并且,与Napster不同,这些网络几乎不能被关闭。之后,基于这一网络的全新的内容分发模式,开始突破大型在线运营商对信息交流的垄断,逐渐流行起来。数字货币

弹性、去中心化的点对点网络的设想,在一群对公私钥密码学的进展非常着迷的密码学家及技术专家之间形成了共鸣。这些自称“密码朋克”的人认为,点对点网络和加密技术的强大力量,可以抵制对个人自由的侵蚀,释放人类天性。

密码朋克认为,如果没有适当的制衡,现代信息技术的发展将缩小个人隐私的范围,导致政府和公司监视行为的滥觞。在国际密码学协会(International Association for Cryptologic Research,IACR)的创始人、密码学家大卫·查姆(David Chaum)看来,计算技术将逐步剥夺个人收集和控制信息的能力,政府和企业则会收集消费者的日常交易信息,用于“窥视个人的生活方式、习惯、行踪以及人际关系”。

为了对抗这些预料中的风险,密码朋克主张大规模使用密码学工具,他们相信,这样可以保护个人隐私,同时削弱覆盖全球的政府霸权。他们是密码学技术的布道者,创建了安全消息传递系统、数字合同、保护隐私的身份认证系统以及“防篡改的盒子”。借助遍布全球的“不能被破坏或关闭”的免费软件,他们试图构建一个可以逃避政府或公司控制的“开放社会”。

密码朋克这一理想的关键载体,是匿名现金技术和不可追踪的支付系统。从1983年开始,密码朋克以及其他密码学家就试图借助公私钥密码学来建立新的货币系统。当年,查姆设计了一个货币系统,它可以生成和转移电子现金,同时不需要披露用户的个人信息。其后,查姆在1994年设立了名为DigiCash的公司,继续发展这一系统。

DigiCash借助公私钥密码技术来发行电子货币,使用查姆发明的数字签名(被称为盲签名)系统来验证交易的有效性,公司作为中央清算所,负责调控货币供应量和处理DigiCash的交易。但是,DigiCash和上文提到过的Napster有类似的技术局限性,它以“客户端-服务器端”的模式运作,要求查姆的公司必须对每笔交易进行双重验证和确认。这就意味着,DigiCash是否成功,与一家公司的命运息息相关。所以,当这家公司在1998年破产时,DigiCash也一并消失了。

然而,创造匿名数字货币的努力已呈燎原之势。在DigiCash之后,更多的密码朋克,如哈尔·芬尼(Hal Finney)、戴伟(Wai Dai)和尼克·萨博(Nick Szabo)等,开始了长达十年的探索,试图建立一个去中心化的匿名数字货币。他们深知,这一系统的技术关键在于既要能控制数字货币的供应量,又要有确认货币权属的安全认证机制。就理论而言,与美元现钞或硬币相比,数字货币没有物理实体,只是存储在一台或多台机器内存中的一系列数字。因此,像任何数字资源一样,数字货币可以无限复制。倘若缺少中央清算所或类似的中介机构去验证交易和结算,任何人都可以将一笔数字货币同时发送给两个交易对象,这就是所谓的“双花”(double spending,双重支付)问题。比如,鲍勃拥有价值5美元的数字货币,他可以同时将这笔钱支付给爱丽丝和约翰,实际上花出去了10美元。由于这一先天缺陷,数字货币存在各种被欺诈的风险。

任何去中心化支付系统都必须首先解决双花问题,而且,这个问题的解决不能依赖任何中心化中介机构。在特定时间内,货币系统中流通货币的总量必须是固定的,或者其供应量由代码来控制,以防止未经授权增加货币供应量,从而导致货币贬值。这一支付系统的交易记录必须是安全且不可否认的,从而确保所有流经系统的数字货币都可追溯。缺少了这些必要的特征,就无法在不依赖可信机构或清算所的前提下,证明谁在特定时间拥有多少数字货币。比特币

2008年底,借助公私钥加密、数字签名和点对点网络技术,署名中本聪(Satoshi Nakamoto)的开发者(们)解决了这个问题,创建了一种全新的分布式数据库,我们称之为区块链。借助区块链,中本聪创建了一个不需要中心化机构运营的、去中心化的数字货币。

与查姆创建的必须依赖一个中心化机构运营的DigiCash不同,中本聪在简短的、只有9页的论文《比特币:一个点对点电子现金系统》中概括了他创建的数字货币系统:由计算机网络验证和保存所有比特币的交易记录。在这一模式下,不需要中心化的控制机制,所有交易被记录在一个共同的数据库中,并由比特币底层软件控制货币供应和协调交易的验证过程。

自2009年诞生以来,比特币已经成为世界上最大的支付系统之一,但对很多人而言,其技术基础与其创立过程还是一样神秘。我们可以对照电子邮件来理解比特币的工作原理。今天,只要有一个电子邮件地址,我们就可以在短短几秒钟内,通过互联网发送和接收电子邮件。电子邮件地址通常不与我们的个人身份关联,所以我们可以使用假名,并将其作为接收电子消息的参考点。虽然多数用户依赖第三方运营商来管理电子邮箱,但用于发送和接收电子邮件的底层协议是免费、开放和可相互操作(interoperable)的,任何人无须许可即可使用。我们通过密码来获得电子邮箱的控制权,通过Web界面,如谷歌的Gmail或邮箱客户端,微软的Outlook或Thunderbird等来管理电子邮件。

比特币与电子邮件一样,也是建立在开放、可互操作的协议之上,同样不受任何单一的中心化组织的控制。基于公私钥密码技术,人们无须他人批准,就可以任意创建假名比特币账户。通过使用私钥对比特币交易进行数字签名,只需几分钟,就可以发送比特币给全球任何人。交易被签名之后,由比特币网络成员负责验证交易的有效性,并更新相关比特币账户的余额。

就像通过电子邮件客户端处理邮件一样,人们通常也通过“比特币钱包”与比特币网络交互,管理比特币账户。比特币钱包可以存储在个人计算机上,也可以使用第三方在线应用来维护它们,这样就可以方便地通过网络浏览器或智能手机访问。为了提高安全性,一些人会将钱包存储在USB闪存驱动器或其他形式的安全硬件(通常称为“冷钱包”)上。比特币也像电子邮件一样,可以跨国自由流通。交易比特币既不受任何中心化的机构控制,也不需要任何人授权或预先批准,交易的金额则可大可小(最低可低至0.00000001比特币,按当天价格约0.0001758995美元)。

比特币网络的交易记录存储在区块链上,并由位于网络底层的免费、开源的比特币协议管理。在比特币网络中,计算机相互交换的是最新的交易信息,而不是音乐或其他媒体文件。比特币协议执行一种可以达成共识的机制,来确认某笔交易是否有效,以及该笔交易是否应该被记录到区块链上。不同于可以手手相传而不留记录的实体硬币和纸币,比特币的所有交易均会被记录到全网共享的区块链上,任何选择加入比特币网络的人都可以下载或查看完整的区块链副本,追溯全部交易记录。由于比特币的透明性和开放性,其区块链广泛分布在成千上万台电脑上,遍布超过97个国家,既包括美国、中国这样的大型工业化国家,也包括柬埔寨、伯利兹这类国家。由于比特币区块链遍布全球,并借助点对点网络实现支付功能,因此具备弹性且几乎无法被关闭。只要一台电脑上保存有区块链的完整副本,比特币网络就可以持续存在,即便遭遇自然灾害或者当地政府强行关闭网络,比特币区块链也能在数小时内被复制或重构(当然这需要高速互联网连接传输数据)。

比特币区块链在很多方面类似一本防篡改的“书”,这本书的大量完全相同的副本,存储在遍布全球的计算机上。任何人都可以在书中添加新内容,这些新内容也会同步更新至所有运行比特币协议的计算机上。

与书由页面组成不同,比特币的交易记录被集合在一起,组成相互独立的“区块”(block),这些区块经由比特币协议连接在一起,形成一个连续的、带有时间戳的“链”(chain)。区块存储了比特币的交易信息,以及附加在该笔交易上的其他信息(如一首诗、一段祈祷、对一张图片的引用或其他文件)。每个区块均包含一个用于组织共享数据库的“区块头”(header)。

区块头的核心内容包括这一区块交易记录所独有的指纹或哈希值(hash)、对应的时间戳以及前一区块的哈希值。哈希值按照美国国家安全局(NSA)发明的标准密码哈希函数生成,显示为由字母和数字组成的一串字符,并与该区块包含的交易记录有着唯一的关联性。

书本靠页面来组织内容,任何人都可以以合适的顺序装订。比特币则不同,它的每个区块头均包含了之前区块的哈希值和时间戳,所有区块按创建时间有序排列组成链,并据此组成可共享的数据库。(见图1.1)图1.1 比特币区块链示意图

中本聪设计的比特币系统十分精妙,向区块链中添加信息非常困难,而信息一旦保存,就几乎无法更改或删除,这确保了比特币区块链的安全和完整。要想在比特币区块链中存储信息,需要完成特定的工作,且只能通过集体努力来完成。同时,向比特币共享数据库中添加新的区块,必须严格遵循比特币协议确定的程序,所有新加入的区块必须经过验证,以确保其包含了有效的交易记录和对应的有效哈希值。

为特定的区块生成一个哈希值不是很难。但是,根据比特币协议的要求,特定区块的哈希值必须以指定数量的0开头(“前导零”),这使生成符合这一要求的哈希值的任务变得有一定难度。这一数学猜测游戏,通常被称为“工作量证明”(proof of work)。为了生成符合这一要求的有效哈希值,需要比特币网络中的各方参与解这个数学难题,并确保解出的哈希值,其前导零个数不少于该时点比特币协议要求的数量。

参与生成有效哈希值的计算机,都必须重复进行计算,以满足协议的严格要求。这一计算过程不需要创造性,而只是重复的试错博弈,通常被称为“挖矿”(mining)。

比特币协议根据网络中参与工作量证明的矿工的数量,来动态调整数学题的难度,以确保生成每一个新区块的时间大约都是十分钟。因此,比特币网络上参与解决数学难题的节点越多,对每一个节点而言,生成符合要求的前导零个数的哈希值就越难。

矿工找到给定区块的有效哈希值后,将答案广播到比特币网络,其他节点只需简单计算,就可以确认这个哈希值是否符合比特币协议的要求。如果有效,新的区块将被添加到区块链上,同时存储在所有活动节点的计算机硬盘里。比特币网络通过这一流程,就谁在给定时间拥有特定数量的比特币达成共识。偶尔,当比特币网络的不同部分所加入的区块各不相同时,比特币网络就会分叉(fork)或生成多个不同的副本。至于分叉的原因,有可能是恶意攻击导致网络分裂;也有可能是比特币网络客户端的版本更新后,有相当数量的节点或者由于疏忽,或者因为拒绝采用新技术,未同步更新客户端软件。

比特币发生分叉时,数据库结构类似一棵“树”而不是一条线性的链。为了确保网络最终沿着同一条“树枝”发展,比特币协议执行特定的分叉选择规则(a fork choice),即将各“树枝”确认区块有效性所需计算能力(computational power,简称算力)的大小,作为判断该“树枝”长短的依据,当发生分叉时,矿工应总是选择区块数量最多的“树枝”。

分叉选择规则保证了比特币网络的一致性。如果多数网络参与者就某一特定交易的交易链条达成共识,则该链就被认为是有效的。比特币的持有者因此确信,在任何给定的时间,这些控制比特币网络多数算力的人,会执行比特币协议确定的规则,去验证交易的有效性,并将新的区块记录到最长的链上。

工作量证明这一猜谜游戏的作用,不仅限于确保比特币区块链记录有序,这种共识算法还可以防止人们创建虚假交易,或者篡改区块链记录。由于每个区块的区块头均包含了前一个区块的区块头的哈希值,任何一个区块只要发生微小改动,就会生成一个新的、独特的哈希值,该区块之后的区块的哈希值也会同时发生变化。所以任何对区块内容的修改,都将不可避免地破坏区块链。

任何人,即使只是想修改比特币区块链上的一个记录,也必须付出昂贵的算力,为所有后续区块生成新的哈希值。比特币网络上发生的交易越多,附加到区块链上的区块就越多,追溯修改先前交易记录的难度就越大。此外,基于比特币的共识机制,潜在的攻击者如果想重写区块链的某一段交易记录,就必须要比网络中多数诚实节点的速度更快。

最有可能改变区块链记录的方法,是组织大量攻击者发起“51%攻击”,一旦有效接管了区块链网络,就能在其他节点确认交易之前提前确认交易。考虑到比特币分布式网络的规模日渐扩大,这种攻击越来越难。《经济学人》杂志记载,从2015年开始,比特币矿工拥有的算力,已是“全球最大的500台超级计算机算力总和的13000倍”。考虑到网络的不断发展,目前策划一次51%攻击将花费数亿美元至数十亿美元,远远超过了多数私人团体或黑客联盟的财力。

中本聪设计了一个巧妙的激励方案,用以平衡矿工挖矿的支出,并维持比特币网络的安全和稳定。矿工为新的交易区块生成有效的哈希后,比特币网络会以“区块奖励”(block reward)和交易费的名义,向该矿工支付特定数量的比特币,矿工因此有足够的经济动力去验证交易,参与工作量证明猜谜游戏。同时,矿工可以通过公开市场,将挖矿所得的比特币出售给他人。

比特币协议将比特币的总量限定为2100万,自2009年1月比特币网络启动开始,区块奖励的数量会随着时间推移,每四年减半一次。按照这一减半规则,大约持续到2140年,所有比特币就会发放完毕。因此,中本聪鼓励人们提早参与,这样才有机会赚取更多的比特币。

借助“工作量证明”共识算法以及区块奖励激励机制,中本聪建立了一个可以有效解决双花问题的去中心化机制。这一机制既能限定比特币的总量,也能在没有中央清算所的情况下完成交易。最终,中本聪创建了所谓的“状态转移系统”。每隔10分钟,比特币网络就会更新一次它的“状态”,计算出所有比特币账户的余额。工作量证明这一共识算法作为“状态转移函数”,指代比特币网络的当前状态,并可以借助一系列新交易更新至最新状态。

在进行交易时,为确定用户有足够的比特币,比特币协议会从比特币的第一个区块“创世区块”(genesis block)开始,经历遍先前所有的交易记录。如果用户有足够的比特币,交易就被认为是有效的,并被打包成一个区块。当矿工通过工作量证明生成一个有效的哈希并经其他矿工确认后,比特币网络,包括参与交易账户的余额,就会被更新至最新“状态”。如果用户没有足够的比特币,交易就会被比特币网络拒绝,矿工就不会将交易打包进区块,这一无效的交易不会影响网络状态。

借助这一技术设计,尽管比特币没有中心化清算所,但人们仍然确信,比特币账户的信息是准确的。比特币协议实现了可信的点对点交互,参与双方无须互相认识或互相信任。这就是为什么比特币以及更加广义上的区块链技术被描述为一个“去信任化系统”(trustless system)。人们只需信任支持比特币区块链的底层代码和矿工即可,不再需要依赖中心化的可信当局或中间人。以太坊

随着比特币的诞生和快速发展,越来越多的程序员开始在数字货币之外探索区块链技术的应用。在一夜之间,便涌现了数以百计的区块链和数字货币项目。借助中心化的数字货币钱包服务,人们可以轻易地加入比特币网络,交易所则方便人们将比特币兑换成美元、欧元、人民币等传统的法定货币。比特币的价格犹如坐上了火箭,在2013年最高达到1200美元。人们对比特币的兴趣越来越浓厚,风投资本,甚至微软、戴尔等传统企业,开始探索将比特币作为备选的支付方案。

然而,对比特币的关注越多,其局限性就越明显。比特币是一个优异的数字货币交易平台,但如果不更新它的底层协议,它的用途也就仅限于此了。比特币网络很慢,它需要10分钟才能达成并验证一笔交易,与此关联的问题是,比特币区块链究竟能存储多少信息。比特币的去中心化结构导致其缺乏正式的治理,协议难以得到更新和改进。目前只能依赖一小部分开发人员缓慢地修改和修复底层软件的漏洞。

为了突破比特币的这些局限,一些新的区块链项目出现了,它们不再仅仅局限于存储数字货币交易信息,而是希望借助区块链,或者至少它的部分底层功能,创建一个可以承载去中心化应用(或称为dapps)的媒介。

在广义层面上,区块链是一个信息存储系统,不仅可以用来存储与比特币交易有关的信息,也可以存储或引用其他类型信息,如被专家称为“智能合约”的小型计算机程序。

以太坊是第一个可以创建和部署复杂智能合约的区块链项目。作为建立在比特币的开创性成果基础上的第二代区块链网络,以太坊诞生于2014年2月,在启动一年半以后便加入了丰富的功能,人们可以在以太坊区块链上部署智能合约,就像目前可以在中心化的服务器上部署网站的代码一样。

和比特币类似,以太坊也是一个自由、开源的点对点网络。以太坊发行的原生数字货币被称为以太币(Ether),通常被分配给支撑以太坊网络的矿工,也可以像比特币一样交易。以太坊使用了与比特币类似的工作量证明机制,来负责更新以太坊区块链的状态。

与比特币不同的是,以太坊速度更快,在智能合约方面有更强悍的功能。以太坊区块链的状态每12秒更新一次,远远快于比特币网络10分钟的更新频率。以太坊部署了被称为Solidity的图灵完备的编程语言,任何人都可以利用它编写智能合约,部署去中心化的应用程序。在理论上,人们可以借助Solidity在点对点网络上进行一系列更为复杂的计算。

与比特币只有一种账户类型不同,以太坊网络上有两种不同类型的账户,一种是针对普通用户的外部账户(externally owned account, EOA),另一种是适用于智能合约应用的合约账户(contract account)。合约账户在以太坊网络上有一个公共地址,但没有自己的私钥,它除了可以存储特定智能合约的编译代码外,还可以用来收发以太币,将数据记录到以太坊区块链,处理有关信息,以及用来触发其他智能合约的运行。外部账户则不同,它和比特币一样,有一个公共地址和对应的私钥。任何掌握外部账户私钥的人,都可以通过该账户转移以太币,也可以与存储在合约账户中的智能合约交互。

以太坊协议中负责处理智能合约的部分,被称为“以太坊虚拟机”(Ethereum Virtual Machine,EVM)。从实用角度看,EVM实际上是一个去中心化的虚拟机,可以运行多个智能合约程序。一般而言,任何人都可以通过向合约账户发送一笔以太币交易,来触发执行相关的智能合约,从而让以太坊网络开始执行一系列任务。

智能合约通过收发“信息”进行交互。“信息”是一个对象,包含了特定数量的以太币、一串数据以及用于收发以太币的地址(可以是另一个合约账户,也可以是外部账户)。智能合约收到信息后,可以向原始发送者返回一条信息。这一交互过程,与一个标准的计算机函数的功能类似。

由于以太坊网络的每个活动节点均被设计为可以执行以太坊虚拟机上的每一个操作,因此任何智能合约均能以接近零的成本,来触发其他智能合约的执行。为了防止滥用资源,对每个计算步骤,以太坊协议均会收取一笔我们称为“燃料”(gas)的费用。

燃料的价格不是固定的,而是由矿工根据以太币的市场价格动态进行调整,这也可以避免燃料价格发生大幅波动。对每一区块可以包含的操作的数量,以太坊协议实施动态限制,这样矿工就只能收取与网络上其他人的交易成本相当的交易费。

以太坊的开放和去中心化特性,使智能合约可以以假名部署,以自治的方式运行。由于以太坊的所有活动节点上均运行着智能合约代码,因此这些智能合约不受任何人控制,也无法被任何人随意终止。在某种程度上,智能合约更像一个自治代理人(autonomous agent),负责自动执行外部账户或其他智能合约的指令。

自以太坊上线以来,已经部署了成千上万个智能合约,它们既可以处理诸如“如果……那么……”之类的简单逻辑关系,也可以完成一些复杂功能,例如生成和交易与实物或数字资产相关的代币、验证签名、记录投票以及部署基于区块链的新型治理系统等。

以太坊底层设计的局限性,决定了在以太坊虚拟机上运行代码仍然是缓慢和昂贵的。不过,以太坊仍然代表了一种新的计算范式:软件应用不再受中心机构的控制,而是在去中心化的点对点网络上自

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载