6消息摘要编码进比特币区块链。遗嘱表示,他若有不测,其资产全部留给女友。
香港美丽华酒店的每日房价高达500美元,坚持了几个月后,斯诺登的比特币资金有点儿紧张了。更重要的是,他每个月都必须向债权人的比特币地址打钱,若逾期不还贷,其房产和汽车的所有权密钥将自动更换为债权人的。他想向莫斯科方面出售情报,但莫斯科不相信他手上还有什么未公布的情报。要证明自己确实还有秘密并不难,但要提交情报后确保对方如约给钱却很难。于是,斯诺登把情报转化成零知识证明的程序,然后给莫斯科方面提供加密的情报(Ex)、解密密码K的哈希(Hk)以及情报程序的运行结果(Y),对方可以通过Ex、Hk、Y三个参数验证程序运行正确,但无法知道情报的具体内容。莫斯科方面验证程序后,决定购买情报。莫斯科用斯诺登的公钥(比特币地址)创建一个付款,斯诺登必须给莫斯科披露密码K以换取这笔付款,莫斯科需要用K来解密Ex并获得情报。交易确认后,斯诺登得到比特币,莫斯科则得到K,在此过程中,双方都没办法欺诈,彼此并不需要建立信任。
就这样,斯诺登在三方协议的保护下,安然无恙地生活在香港的某个酒店,没有被引渡的危险。他用匿名的比特币支付房租,因而也没人知道他究竟在哪里。中央情报局根据斯诺登的抵押贷款确定了一个属于斯诺登的比特币地址,但是很遗憾,这个地址没有办法追踪,因为斯诺登使用了一个叫零币的服务,把比特币在池子里混合后,就不知去处了。斯诺登手上有多达6G的绝密数据,他把其中最重要的那部分数据压缩加密,打包编码进了比特币区块链,硬盘早已销毁。密钥转化成了一个只对他有意义的句子,记在脑海里,没有人能偷去。比特币网络的强大算力可以保障这些数据永久保存且不可修改。靠分期分批向莫斯科和其他国家出售情报,他能一直惬意地生活下去。他还用比特币给远在美国的女友买了别墅、保时捷。
在这个想象的故事中,斯诺登分别用到了存在性证明、零知识有条件付款、零币、分布式合同、智能资产等比特币应用。很难想象,黄金、白银、信用货币等能实现如此多的智能经济行为。比特币还原的只是货币的本质,因为人们原本只需要不可复制、不可滥发且可零成本转移的信息而已。人们说,金银天生是货币,现在,中本聪给这句箴言添加了新的注脚:货币天生是信息。正因为它是信息,我们才可以轻易地用比特币实现无数经济行为与金融工具。太平洋雅浦岛的居民使用石币贸易时,他们并不需要把屋前屋后的石币真的搬到对方的家,而只需在石头上做个标记,并向全岛通报,这块石头现在属于对方了,这与比特币通过P2P网络广播交易信息并无二致。正如美国明尼阿波利斯联邦储备银行主席纳拉亚纳·科赫拉科塔在1997年说的:“货币不像普通人所理解的那样,是一个价值存储工具、一个交易单位或者记账单位,而是一个技术上的具有集体记忆功能的工具。”而现在,他所预言的那个具有集体记忆功能的工具出现了!
比特币的开放性
信息不对称催生了对冲基金、房地产经纪人、借贷担保、银行等各种中介,它们知道更多不为人知的信息,人们付费请他们做自己想做却无从下手的事情,它们从这种不对称中获得利润。而在比特币经济中,因其公开透明的账单保存机制与难以摧毁的去中心化架构,银行、房地产经纪人、投资代理等各种中介根本无用武之地。人们可以在最低信任度的情况下,通过比特币网络完成合同签订、遗嘱执行、数据或资产所有权证明、远程交易、P2P借贷等各种经济活动。而这一切都是建立在比特币网络开放式的应用编程接口之上。比特币提供了3个层次的开放性。
交易行为的开放性
比特币鼓励交易层级的创新。一个典型例子是M…of…N签名脚本,这种交易允许用N个密钥中的M个签名解锁。这样一来,企业在需要动用资金时可以采用两个或更多签名,例如一桩交易(资金输出)须经首席财务官、出纳员、审计员三者中的任意两者的密钥签名方能解锁,从而实现联名账户或受托人/执行人的资金管理。
此外,比特币通过协议的升级,可从目前的点对点交易转变为群对群的三方或多方交易,这对分布式合同具有重大意义。现实经济中经常需要大量用到三方或多方合同,而比特币不可更改的区块链既可保存交易总账,又可编码任意数据的SHA…256消息摘要,这意味着人们可以在最小信任度的前提下达成协议,而无须公证员、担保人、律师等第三方的介入。
交易总账的开放性
比特币网络允许节点之间相互通信、转发交易、验证新的交易区块和生成新的比特币。所有这些网络协议的交互,使得每个节点都可以构造出共享交易总账的一个完整的、一致的本地副本,即区块链。比特币交易总账的开放性使得每个人都可以提供涉及比特币交易信息的服务。例如,通过告诉你的税务会计师哪些比特币地址是属于你的,他们就能轻松地在总账中找到与之相关的所有交易,并计算出你的收益和损失,甚至为你的比特币交易活动创建最佳的税务策略。经济学家则可以轻易地摸清随时间推移的比特币交易次数变化情况、比特币的平均交易规模、任何一个时间节点上实际流通的比特币占全部比特币的百分比等。
这实际上相当于三方记账法,因为每一笔经济业务除了以相等的金额登记在两个(点对点交易)或两个以上(群对群交易)的账户中外,它还永久保存在以时间戳为刻度的区块链上。如果说1494年由圣方济各会修道士发明的复式记账法使企业监控资金流动、操作复杂的资金业务成为可能,并造就威尼斯银行业的繁荣,进而开启了资本主义的大门,那么,比特币三方记账法的诞生必将更加深远地影响全球经济,因其与计算机技术的无缝对接既大大降低了会计与审计成本,使得追踪财富流动更廉价高效,其账单不可修改的特性也杜绝了出现假账、错账的可能性。
一个典型的应用便是使用比特币募捐,公众可以通过观察比特币募捐地址上的资金去向来推断这些捐款的相关用途,再也不用担心捐款悄悄进入私人腰包。捐款者也不会再有被质疑诈捐的烦恼,因为他只需用私钥对募捐地址进行消息签名,即可轻易地证明某笔捐款确实来自自己。
钱包数据的开放性
通过比特币客户端的远程过程调用中间件协议(JSON…RPC)可将整个比特币经济公开。这种API(应用程序编程接口)提供的服务包括查询钱包余额(相当于查询比特币世界的银行账户余额)、创建交易、创建新钱包等。你可以通过代码查看你的余额或其他任何账户的余额。你可以在一个公平的环境里创建信息并交易。你可以独立运作一家银行、证券交易所、电汇服务或担保服务,而不需要任何人的许可和认证。正如互联网让每一个自媒体都有能力达到《纽约时报》的读者量,比特币则让每一个节点甚至是运行在你手机的节点,在能力上等同于富国银行或美国银行。
比特币未来协议扩展与应用
比特币既是一个潜力巨大的基础性平台,更是一项开放式P2P交易传输协议。其开放性和架构性甚至较STMP、HTTP、RSS以及BitTorrent等协议有过¨;w;é;n; ;r;é;n; ;s;h;ū; ;w;ū;¨之而无不及,开发者、企业家们正在开发基于比特币协议的新技术、新应用,目的是使它更安全、更便利、更全能。
存在性证明
存在性证明是指把数据文档的SHA…256信息摘要嵌入比特币区块链来证明其存在性。其原理是通过两个编码过的且包含哈希的特殊地址创建一个有效的比特币转账,这个哈希被切成两个片段,每个片段包含这些地址之一。哈希片段用来替换椭圆曲线数字签名(比特币地址生成算法)公钥的哈希,这些特殊的转账之所以不能花费,正是因为这些地址是由文档的片段生成的,而不是由椭圆曲线数字签名算法的私钥生成的。
地址生成且交易确认后,该文件即被永久认证。只要交易被证实,则意味着该文件存在。如果文件在交易时不存在,它不可能在两个地址中嵌入其SHA…256消息摘要并创建转账(因为哈希函数具有抗第二原像性)。由于哈希函数的抗原像性,试图嵌入一些哈希散列,以与未来的文件哈希值相匹配也是不可能的。这就是为什么一旦文档所产生的转账被比特币区块确认,该文件的存在性就被证明了,而不需要一个值得信任的中央权力机构。
如果有人想在时间戳上手动确认文件的存在,他们应该遵循以下步骤:
1。计算SHA…256信息摘要;
2。找到比特币区块链上的转账记录,给文档的地址发送比特币;
3。反编译Base58编码的地址;
4。嵌入摘要,替换这两个地址的公钥哈希,由于摘要共有32个字节,而每个地址可容纳20个字节,剩下8个字节用零填满;
5。区块链上这两个地址间的转账可证明该文件在那个时间确实存在。
存在性证明的主要用途包括:在不透露实际数据的前提下展示数据所有权;证明某些数据在某一时刻的存在性;检查文件的完整性。
零知识有条件付款
在文艺复兴时期,意大利的两个数学家塔尔塔里雅、菲奥为争夺一元三次方程求根公式发现者的桂冠而闹得不可开交。他们都宣称自己发现了这个求根公式,但谁也不愿意把这个公式公布出来。于是,他们摆起了擂台:双方各出30个一元三次方程给对方求解,谁能全部解出,就说明谁掌握了这个公式。比赛结果是塔尔塔里雅解出了菲奥的30个方程,而菲奥一个也解不出。于是,人们相信塔尔塔里雅是一元三次方程求根公式的真正发现者,虽然当时除了他本人外,谁也不知道这个公式究竟长什么样。这种既能充分证明自己是某项权益的合法拥有者,又不把有关信息泄露出去的方法就叫零知识证明,即提供给外界的“知识”为“零”。
零知识证明早在1986年就被A·菲亚特和A·沙米尔用数学方法给出了解决方案,并在同年申请了美国专利,但由于该理论可能被用于军事领域,专利局被军方密令禁止发表,理由是:“该申请发表后会有害于国家安全……所有美国人的研究未经许可而泄露将会被判刑罚款。”这一禁令闹了个大笑话,因为作者实际上是在美国申请专利的以色列人,研究也是在以色列的大学里完成的。此次乌龙事件也从侧面反映了零知识证明的重要性。
如果把零知识证明与比特币联系起来,你可以实现零知识有条件付款。设H()是一个复杂的计算机程序,对于H(X)=Y,给定一些特定的Y,你想推导得出符合条件的X。H()也可能是一个密码哈希算法,给定一个特定的哈希,让你破解哈希进而找到那个密码。又或者H()是一个复杂的程序,Y的值取决于你找到一个漂亮的图形。
如果我碰巧知道问题的答案,即那些符合条件的X,并想把答案卖给你,但是我们相互之间并不信任,由于我们身边都没有朋友,所以也没有谁能充当