Nick Szabo :可信计算的黎明


注:译文;原文发布于 2014.12.11。

当我们当前使用处于移动网络或互联网的智能手机或笔记本电脑时,这些交互的另一端通常运行在其他 solo 计算机上,如 web 服务器。实际上,所有这些机器的架构都被设计成,由一单个人或相互了解和信任的某层级人控制。从 remote web 或 app 用户角度看,这些架构基于对未知 "root" 管理员的完全信任,该管理员可以控制发生于该服务器上的所有事情:他们可以随意读取、修改、删除或拦截该计算机上的任何数据。即使是通过网络加密发送的数据,最终也是非加密的,并最终在计算机上,以这种方式被控制。在当前 web 服务中,我们完全信任计算机,或者更具体地说,完全信任那些拥有该计算机访问权的人,同时包括内部人员和黑客,忠实地执行我们的 orders ,保护我们的支付的款项等,换言之,面对这些对象,我们是完全脆弱的。如果另一端的人想要忽略或歪曲你指示 web 服务器要做的事情,没有强大的安全性可以阻止他们,只有容易出错且成本高昂的人类制度( human institutions ),这些制度通常会在国家边界止步。

我们面对 web 服务器时的高度脆弱性,与传统商业协议形成鲜明对比,传统商业协议是如电影院的售票,分销交易( distribute a transaction ),没有员工能够窃取资金或资源而不被发现。电影院没有 “ root 管理员 ” 可以将你的现金装入自己的口袋而不被发现。因为,与 web 服务器不同,这些传统协议 ( 称为财务控制 [financial controls] ) 可安全地处理现金,你不必需填写表单就可看电影、购物或进行大多数其他类型的日常商业活动。你只是掏了一些币,然后拿走你的东西或座位。尽管这些流程通常(或曾经)不完善且缓慢,但这些模拟的或基于纸张的制度( these analog or paper-based institutions )常常提供安全性、财务控制( financial control ),以及/或可验证信托交易,在许多方面都远远优于 web 服务器上可能提供的功能,给客户带来的麻烦和隐私泄露少得多。

不同于在传统协议中——安全可靠地交付现金,然后,获得我们的商品或服务,或至少是一张票;在互联网上,为了参与电子商务,我们必须填写表格,使自己容易遭受身份盗窃,而且经常难以禁止多种商业( 甚至是纯粹的跨境及跨其他信任边界的在线商业种类 )的进行( it often is very difficult to prohibitive to conduct many kinds of commerce, even purely online kinds, across borders and other trust boundaries )。

当今的计算机不是非常可信( trustworthy ),但对于许多重要任务的处理,计算机都比人类快得如此惊人,所以,我们如此重度地使用它们。我们从计算机和公共网络中获得了巨大好处,但付出了“身份欺诈和其他日益频繁的灾难性攻击”的巨大代价。

区块链技术,正开始改变这种状况。区块链计算机( A block chain computer )是虚拟计算机,是云中计算机,共享于许多传统计算机之间( shared across many traditional computers ),受密码学和共识技术保护。拥有大状态的图灵完备区块链( A Turing-complete block chain with large state ),给予了我们这种共享式计算机。早期尝试包括状态机自我复制( state-machine replication )(参见文后链接)。QuixCoin,以太坊是最近尝试。这些区块链计算机将使我们能够将我们的在线协议的最关键部分置于更加可靠和安全的基础上,并使我们以前不敢在全球网络上进行的信托交互( fiduciary interactions )成为可能。

就像在通用个人计算机出现之前,袖珍计算器开创了一个有限个人计算( limited personal computing )的早期时代一样,比特币已用部分区块链计算机开创可信计算领域。比特币已经实现了一种货币系统,在这个货币系统中,Zimbabwe 的人可向 Albania 的人付款,而不需依赖当地机构。比特币还可进行许多其他有趣、最小化信任操作,包括多重签名授权。但比特币语言的局限性和它的小内存( tiny memory )意味着,它无法用于大多数其他信托应用( fiduciary applications ),最明显例子是共享式跨金融工具池抵押品风险池( risk pools that share collateral across a pool of financial instruments )。

与 web 服务器形成鲜明对比的是,区块链计算机由许多传统计算机共享(A block-chain computer is shared across many such traditional computers)( 这些传统计算机由数十到数千人控制 。通过其设计,每台计算机互相检查彼此工作,因此区块链计算机可靠而安全地执行我们的指令,其可靠及安全程度,最高可达到区块链技术的安全极限,这种技术被称为匿名和概率拜占庭共识( anonymous and probabilistic Byzantine consensus )(有时也称为 Nakamoto 共识)。最著名的安全限制是 “ 51%攻击 ”。“非信”( trustless )是“信任最小化”( trust minimized )的夸张缩写。此处所用 “Trust” 意为,需要信任远方的陌生人,因此容易遭受他们的攻击( be vulnerable to them )。

信任最小化代码( Trust-minimized code )意味着,你可以信任代码,而不信任任何特定远程计算机的所有者。Albania 的智能手机用户可以使用区块链,与 Zimbabwe 某个人所控制的计算机进行交互,他们不必以任何方式相互了解或信任,也不需要依赖其国家的制度,因为底层区块链计算机安全可靠地运行其代码。无论任意计算机或它们的所有者在哪里,它们所共享的区块链计算机都将如共识技术所允许的那样可靠、安全地执行操作,最高可达前述限制( up to the aforementioned limits )。与 web 服务器技术相比,这是一种非常高水平的可靠性和安全性。

不是电影院的收银员和开票者,区块链是由成千上万台计算机组成,这些计算机可处理数字形式的数字门票、货币和许多其他信托品( fiduciary objects )。想想成千上万戴着绿色眼罩的机器人,它们都在互相核对账目。单独来看,机器人(或它们的主人)不是很可信,但通过数学的协调,它们产生了高可靠性和高安全性的结果。

区块链支持者经常谈论“去中心化”区块链 vs “中心化” web 或中心化机构( institutions )。实际上,正是协议( 高度分布式 Nakamoto 共识) 结合强大的密码学,而不仅仅是去中心化本身,才是区块链更高可靠性和更低脆弱性的根源。密码学为上传到区块链的所有交易和其他数据提供了一个不可伪造的证据链。许多其他去中心化或 P2P 技术不提供任何接近于由 full Byzantine 或 Nakamoto consensus ,以及 cryptographic hash chains 所保护的区块链所提供的安全性和可靠性,而是将自己伪装成区块链或加密货币。

一个很大缺点是,我们的在线和分布式区块链计算机比 Web 服务器慢得多,成本更高:据一个非常粗略的估计,慢的程度达 10,000 倍,成本高 10,000 倍 ( about 10,000 times slower and more costly ),或者大约与 1985 年在普通计算机上运行程序的成本相同。因此,我们只在区块链上运行应用中需要最可靠和最安全的部分:我称之为信托代码(fiduciary code )。由于运行信托代码的 Web 服务器的不可靠性和不安全性导致的人为(“wet”)问题,其成本通常远高于运行区块链代码所需的额外硬件成本,因此,当 Web 服务器的可靠性和安全性不足时( 如 Web 服务器在支付和金融合约等信托计算中的表现 ),将代码运行在区块链上,比将其运行在更不可靠、更不安全的 Web 服务器上,更有意义。更棒的是,区块链使新的信托密集型应用( new fiduciary-intensive applications )成为可能,如将原始货币本身发布到互联网上( posting raw money itself to the Internet ),在全球任何地方都可安全可靠地访问这些应用——那些我们绝不敢将其放在 Web 服务器上的应用( apps that we would never dare do with a web server )。

我们可以运行什么样的信托代码? 我们仍然在思考新的应用,这些类别将会不断变化,但是,一种非常有效的方法是,通过类比管理传统信托制度的传统法律代码( traditional legal code )来考虑信托应用。信托代码将通常会执行传统上被认为是商业法或安全角色( the role of commercial law or security )的一些功能,但使用可安全可靠地跨越全球的软件,无需考虑传统的司法管辖权。因此:

*财产权(注册资产)( Property titles (registered assets) ),其中,链上 registry 是链下资产的合法官方 registry,或控制链上资产,从而提供对这些资产的可靠和安全保管( where the on-chain registry is either the legally official registry for off-chain assets or controls on-chain ones, thus providing reliable and secure custody of them )。人们可将加密货币如比特币看作是一种 对 bits 的财产所有权(或者至少是由区块链共识协议强制执行的托管权 [ custody ] ) ,bits 被认为是一种货币的固定部分,或被认为是控制性不可伪造的昂贵 bits( controlling unforgeably costly bits ) ( One can think of a cryptocurrency such as Bitcoin as property titles (or at least custody enforced by the block chain consensus protocol) to bits recognized as being a fixed portion of a currency, or as controlling unforgeably costly bits ),或两者兼备。区块链还可以控制硬件,这些硬件控制物质财产( physical property )的功能和访问权。

*智能合约:在这里,用户( 通常是用户中的两个 [ typically two of them ])通过用户界面同意执行区块链代码,这些代码可能包含在不同时间或不同条件下的货币和其他 chain-titled 资产的转移,其他类型信息的转移和验证,以及其他混合体(wet 或传统 [ 链下 ] 以及 dry [ 链上 ] performance)。区块链可以 hold  加密货币作为抵押品(如 escrow ),从而激励链下 performance ,这些链下performance 可由各方或第三方进行链上验证。全区块链计算机( A full block chain computer )可将链上资产汇集到单一链控风险池中,这个风险池分散于许多类似金融合约之间( a single chain-controlled risk pool spread among many similar financial contracts ),减少需要存储于链上的抵押品数量,同时最小化对链下抵押品调用的需要。区块链还可以使合约的搜索、协商和验证阶段更加可靠和安全。通过链上智能合约,我们将能够通过按钮和滑块购买和销售许多在线服务和金融工具,而不是费力地填写表格来泄露我们的私人信息。

*链上宝库( treasuries )、信托及类似应用,其中货币在区块链上,由“multisig”权限控制。将具有签名的宝库( treasury )放在区块链计算机上,是低挂水果,但通常与“ DAO ”标签下的更多投机活动相绑定,DAO 可能包括投票权和用以控制宝库的机制,如公司或其他组织。

我希望在以后的文章中讨论这些区块链应用,特别是智能合约。虽然在许多区块链相关讨论中,有很多未来主义,包括试图解决区块链实际无法解决的问题的许多尝试,我将坚持在不远的将来,低挂水果可以有效地执行于 QuixCoin、以太坊或类似技术上,这些低挂水果往往与传统协议和制度中仍然必要的部分相结合,而不是试图彻底重新发明和替换它们。

参考

Here is a list of basic computer science papers describing the technology of block chains (including cryptocurrencies).

Wet vs. dry code

原文:https://unenumerated.blogspot.com/2014/12/the-dawn-of-trustworthy-computing.html
作者:Nick Szabo
编译:Mitta蓝,东林
校对:东林