按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
这实际上相当于三方记账法,因为每一笔经济业务除了以相等的金额登记在两个(点对点交易)或两个以上(群对群交易)的账户中外,它还永久保存在以时间戳为刻度的区块链上。如果说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,并想把答案卖给你,但是我们相互之间并不信任,由于我们身边都没有朋友,所以也没有谁能充当调解员。我们是否可以在零信任度的情况下使用比特币交易呢?答案是肯定的。
数学上已经证明:你可以将任何计算机问题转化为零知识证明问题,因此,使用零知识证明的确可以证明自己知道一些X,使得H(X)=Y。但仅有零知识证明还不够,因为你付钱给我之后,我可以不告诉你答案,或者,我告诉你答案之后你又不付钱了。所以,我们需要引进加密交易。
我用随机密码K加密X,Ex = AES(X,K),然后,我构建程序:
Program(K,Ex,H()) =》 'Ex,Hk,Y' {
Hk=SHA…256(K);
Y=H(UNAES(Ex,K));
return 'Ex,Hk,Y';
}
这段程序使用随机密码(K)对解决方案进行加密,再输出加密的解决方案(Ex)、随机密码K的哈希(Hk)以及解决方案程序的运行结果(Y)。
我将这个程序转换成零知识证明,从比特币外部告诉你Ex、Hk、Y,然后你可以用这三个参数验证我的确能诚实地执行这个程序。
然后你需要我的公钥(比特币地址)和密码(K)来创建一个比特币付款,我必须向你披露密码K以换取这笔款项,你需要用K来解密Ex并获得解决方案。这样一来,我们任何一方都不能欺诈,所以这个过程中我们并不需要互相信任。
目前,这个方案尚未被广泛使用,因为并不是所有人都能弄明白在实践中怎么应用。
彩色币
通过跟踪一些特定比特币的来龙去脉,可以将它们与其他比特币区分开来,这些特定比特币就叫作彩色币。它们具有一些特殊属性,比如支持代理或聚集点'6',从而具有与比特币面值无关的价值。彩色币可以用作替代货币、商品证书、智能财产以及其他金融工具,比如股票和债券等。
比特币的P2P支付结算系统已经安全建立,可以实现可靠的、近乎免费的转账,比特币网络(协议)本身是安全、稳定的,但比特币生态的服务提供商(比如汇率市场)却多次被黑客攻击,损害了比特币的声誉和交易价值。有没有一种办法可以利用安全可靠的比特币自身协议创建分布式的汇兑交易呢?
BitcoinX就是这样一个基于比特币的开放标准协议,用来规范互联网的价值交易。基于BitcoinX协议,你不但可以在分布式、安全的云平台上持有比特币,还可以持有黄金、欧元、美元和各种证券资产。这意味着人们可以使用金融工具自由交易,如果某个节点G持有黄金,另一个节点E持有欧元,它们可以以一种安全、透明、直接的方式相互兑换,而不需要第三方的介入。
BitcoinX的设计思想是将比特币网络(技术)与货币价值分割开来,并使用比特币网络技术明晰交易来路以避免重复消费。通过创世转账建立一个新货币(即彩色币),创世转账是指一定量的比特币转账,这些比特币金额将用来赋予所有这种新货币价值。这一定量比特币发送到的那个地址就是新货币的起源地址,它将控制新货币的初始分配。
彩色币客户端就是通过一种特殊的方法计算资金平衡的轻量级客户端。所有转账的最后一个地址就是客户端地址,我们抓取区块链,查看这些转账是否来自创世转账。如果是,我们用交易金额乘以初始分割率就可以得到用户余额。
初始分割:0。000 01BTC = 1 彩币(假设值)
彩色币客户端是分布式的,然后围绕特定的创世转账创建一个社区,这就创造了一个与比特币网络无关的独立的彩色币生态,这个小型经济生态的波动建立在对比特币的基础设施的利用之上。
由于彩色币也是普通比特币,所以它们也可以通过比特币网络从一个地址传送到另一个地址。因为我们有办法识别彩色币,所以它们相当于稀有货币,其价值取决于用户对这种稀有货币的需求,而与比特币价值无关。
彩色币怎样进行初始分配呢?在货币创世时,彩色币起源地址拥有该币的总体价值。在分配结束时,所有的货币价值将从起源地址转移到每个客户端。
在实际应用中,彩色币拥有者将不会知道货币总量有多少,拥有者也不必知道想参与他的经济的人有哪些。他可以建立一个邀请系统,每一个新的客户端都可以邀请其他客户端加入。实现这种技术还有很长的路要走,比如社交网络身份验证、社会图谱搜索、担保系统、短信验证、独特的IP地址(互联网协议地址)、物理识别等,这些方法可最大限度地减少初次分配中的欺诈。
零币
零币(Zerocoin)是一个比特币的建议扩展,它可实现真正意义上的匿名性。正如历史上纸币因可兑换黄金而建立了价值,零币也因可兑换比特币而建立起自己的价值。
比特币的交易记录是完全公开的,所有人都可以通过你的钱包地址在区块链中查询你的钱包现金流入与流出,并可向上追溯至这些比特币的终极起源,即区块生成后发送到的那个地址。这对个人隐私构成了极大威胁。
比特币协议为上述问题提供了两种解决方案:所有的比特币交易使用公共密钥,而无须个人身份证明,或比特币客户端可以生成无数个公共密钥,以帮助用户摆脱跟踪。然而,越来越多的研究表明,这些保护措施是不够的。如果通过一些社会工程学手段,使得某个比特币钱包的物理地址(如IP地址)暴露,再配以大数据分析,那么,资金的来龙去脉与关系网将无所遁形。在《大数据时代》一书中,作者用例子证明了大数据分析的威力:通过对美国在线2006年8月公布的2 000万匿名搜索查询记录的分析,《纽约书包》发现,数据库中的4417749号样本代表的是佐治亚州的一名妇女。
为此,约翰·霍普金斯大学的密码学研究小组在2013年5月的“IEEE(电气和电子工程师协会)安全和隐私大会”上提出了“零币模型”,主要提供一种洗币服务,用来混合比特币的交易历史。它创建一个与比特币区块链并行的匿名货币,以固定面额发行,任何用户都可以用比特币购买零币,这种交易是通过一种叫作“零币铸造”的特殊块链进行的。
一旦铸造交易被比特币节点接受,该用户就可把零币兑回比特币。他只需简单地把比特币接收地址(最好是新生成的)嵌入“花掉零币”的交易,然后发送到网络即可。如果交易被确认,比特币节点会将它视作一个正常的比特币转账。这意味着他的比特币接收地址将收到等额比特币(减去交易手续费)。
这个过程的关键在于,接收到的比特币与起初使用的比特币是毫无关联的。通过使用各种加密组件,包括数字签名和零知识证明,实现的效果是,不可能在数学上建立接收到的比特币与起初使用的比特币之间的联系。
合并挖矿
比特币区块链有几个替代用途,包括使用区块链作公证服务(比如,存在性证明把一个哈希分割成两个,并创建一个不可花费的输出),又比如小额支付和彩色币,也引发了对这些新协议加入比特币区块链的担心。
一个解决方案是创建其他区块链,如果该区块链是与比特币网络完全独立的,一个全新的哈希网络就诞生了。不过,若采用中本聪与比特币开发者迈克·赫恩最近讨论的“合并挖矿”(Merged Mining)的设想,则可允许区块链在同一网络同时挖不同的矿。
比特币工作量证明机制是指在矿工挖矿时,给区块补增一个随机数,并开展随机哈希运算,使得给定区块的哈希值开头含有一定数量的零。
假设对“message”(不含引号)进行SHA…256算法加密,你会得到:
ab530a13e45914982b79f9b7e3fba994cfd1f3fb22f71cea1afbf02b460c6d1d
现在开始加入数据,直到你得到一个以0开头的哈希:
1message daad0bc80059253928621a10365de153e335a18f03b9dc7e7e25897fb791f023
2message 6532f42bd1d6ccd00f47c133c3ca1a0fc852598e67c62eb31adab8ceb3aaa680
……
51message 0985e57510d017b177867168642543ab4f143333ad63782680e812251ab3141e
51次运算后得到了第一个有效的哈希。只要“51message”一发送,接收器可以迅速通过哈希运算来验证它是否符合要求。被添加的那部分数据(本例中的“51”)被称作随机数(nonce),关键在于该随机数可以是任何信息。
假设你在同时挖A币与B币,现在你有部分区块数据来自A币,部分区块数据来自B币,而且一个母随机数会不断改变,直到你找到一个区块。一旦你找到一个块,它就是一个对A币、B币同时有效的块链(假设两者的挖矿难度相等)。
同时哈希以下数据:
'A币区块数据|B币区块数据|公随机数'
当一个块被发现:
对A币广播区块》》 'A币区块数据' +随机数= B币区块数据+母随机数'
对B币广播区块》》 'B币区块数据' +随机数= A币区块数据+母随机数'
只要你愿意,你可以制造任意多的链。Slush矿池2011年就已经合并挖比特币与域名币。
合并挖矿的好处包括:同时为两个区块链贡献哈希算力,有助于提高两个区块链的安全性;挖矿的回报更高,在消耗相同电力的情况下,可同时采两种货币,如果你不喜欢域名币,可以把它换成比特币。
域名币
域名币是一个基于比特币技术的分布式域名系统,提供。bit等后缀的域名注册服务,具有安全和抗审查特性。域名币的原理和比特币相近,其区块链独立于比特币区块链,但可通过合并挖矿来运行。域名币的顶级域名没有一个中央机构或组织来管理,每个域名币节点都保存有一个数据库副本,允许用户使用备用DNS、DNS后缀、网关、浏览器插件或安装域名币客户端获得独立的取得认证的域名浏览权,在使用客户端的情况下,没有任何权力机构可以禁止域名的使用和转让。
注册一个域名币域名的花费由网络费用和手续费两部分组成。这些费用通过域名币支付,初次注册需要花费50域名币,每两个月网络费将减少1/2,这就意味着一年内网络费将慢慢少于1域名币。之所以开始需要缴纳较高的网络费用,是为了抬高早期注册门槛,以确保后期仍然有足够的域名,但随着时间的推移,域名的网络费用会缩减到忽略不计。这笔网络费不会流到任何人的手中,因为在交易过程中它会被销毁。而手续费将付给矿工们,与比特币类似,挖矿之初付多少手续费由你来决定,可以是0。01域名币甚至是免费,不过付费越高,交易处理的速度就越快。大约每3个月你需要对你的域名进行一次升级,不过这个过程是免费的。升级的方式是通过你的域名账户内所绑定的域名币作为输入,产生交易从而升级,账户中被内置了特殊的0。01域名币,这种特殊的货币不能用来交易,从而保证你的账户不会被清零。
Dot…BIT是第一个使用域名币的项目,旨在建立以。bit为后缀的DNS系统。目前该项目仍然处于测试阶段,已有7个DNS服务器,域名数目已超过7。9万个。
分布式合同
如果多方交易功能被添加进比特币核心代