区块链上自由市场的信任基石之(1)——燃烧证明
信任是交易的基础。只有在交易双方(或多方)互相信任的前提下,交易才能正常进行。小到饭馆吃饭,大到国与国的协定,都需要彼此信任。
我们去饭馆吃饭,是基于对饭馆的信任,我们信任其不会提供有毒有害的食物给我们,我们信任其会给我们提供需要的服务;而饭馆经营方也是信任我们不会吃霸王餐,才会在饭后结账。
自由市场的买卖,由于双方是面对面的,买方可以当场查验货物的好坏及数量的多寡,卖方可以查验买方付款的真假和数量,这种一手交钱一手交货的交易方式,也提供了信任(信任对方不会作弊或者难以作弊)。
图1 自由市场(图片来自于网络)
信任是社会的润滑剂,有了信任,分工、协作、买卖、管理等各项社会活动就会很容易进行。
当然,信任不表示安全,信任有时候也会被辜负、被利用。
随着信息技术的发展,电子商务也蓬勃发展。如今,我们可以在电子商务平台购买平台提供的商品,或者挂靠平台的销售者提供的商品,这个场合的信任从何而来呢?我们假设某个网站提供这样一种服务:任何人都可以在上面列出自己要出售的商品,然后与买方直接进行交易,网站只是提供平台,不参与买卖的任何其他环节。又会出现什么状况呢?你会放心地买上面不知道是谁列出的商品吗?
事实上,假如没有相关的约束机制,商品可能是假冒伪劣,甚至人都可能是假冒的。在互联网上假冒,是极为容易的。早在1993.07.05,《纽约客》杂志上就刊登了一幅漫画“在互联网上,没人知道你是一条狗”,意指互联网上,人(或物)的身份都是可以伪造的。
图2 在互联网上,没人知道你是一条狗
(图片源自网络)
我们在电商网站购买商品,是因为信任电商网站,即使是对于挂靠在电商网站的其他个体卖家,我们也因为电商网站提供了中介而信任个体卖家,因为如果发现买的东西有问题,我们可以通过电商平台获得退款。
上述是传统电商的情况。这种中心化的电商有其好处,也有不好的地方,如垄断、获取并滥用用户信息、抽取佣金等等。随着区块链这种无中心的工具的出现,人们提出了基于区块链的无中心的网络自由市场。在这样的市场上,任何人可以自由的加入和退出,也可以匿名加入。
我们前面提到,信任是交易的基础。那么,问题来了,在这种无中心的、匿名的场合,交易双方如何建立信任呢?
当然,我们可以采取打分的方式来评价交易对方的信誉,使得部分用户可能因其行为不当或其所售物品质量等原因导致相关其评价不好,从而使其信誉等降低,这样的后果是对其后续的交易带来不利影响。为了减少或摆脱信用、声誉等降低带来的影响,一些用户可能采取注册新的账号/身份的方式,重新开始。这种恶意攻击者注册多个身份(或者变换多个身份),以满足自己私利、损害他人利益的行为,通常称为女巫攻击,是无中心的P2P网络中常见的一种攻击方式(女巫攻击,取自根据作家Flora Rhea Schreiberie在1973年的小说《女巫》改编的同名电影,其讲述的是一个化名SybilDorsett的女人心理治疗的故事。她被诊断为人格分裂,拥有16种不同的人格)。如图3为女巫攻击示意图。
图3 女巫攻击示意图
为了给恶意注册者增加门槛,提高攻击者的代价,有人提出使用燃烧证明机制。
3.1燃烧证明的思想
OpenBazaar®[1],是一个基于区块链的网上自由市场,其于2014年推出。为了抵抗女巫攻击,OpenBazaar®的解决方法是采用货币“燃烧证明”的方式,即,当新用户注册时,需向一个无法使用的地址发送/转账一定数量的比特币,使得这些比特币永远消失,不能再被任何人所使用(比特币的转账不能像银行转账那样查验收款账号是否正确),相当于把这些比特币“燃烧”掉,故而称为燃烧证明。当新用户注册并提交“燃烧证明”后,其获得初始的信誉,其信誉会随着其以后的活动进行调整。
图4 燃烧货币(图片来自网络)
由于付出了代价,通常情况下用户会珍惜其信誉,否则由于信誉值的下降,要么影响其往后的交易,要么需要其重新注册新的账号,但是这又需要其付出新的代价,即燃烧证明。燃烧证明所燃烧的货币,不限于比特币,也可以是其他的数字货币。
3.2燃烧证明的实现
燃烧证明如何才能实现呢?我们知道,在现实的银行转账中,我们需要提供收款账户的名称、账号和开户银行,如图5所示。如果这些信息不匹配,我们是无法转账的,即正常情况下,我们是无法把钱转给一个不可用的账户的。
图5 银行转账需要提供的信息
下面,我们先以比特币为例分析一下区块链的转账方式。在比特币系统中,用户首先要产生一个256bit(相当于64个16进制数)的数(通常需要是随机数,以免与他人的相同或被他人猜测到,越是随机,安全性越高)作为私钥,然后通过私钥计算出公钥,再由公钥计算出地址(一个字符串)。这个过程是单向的,我们不能通过一个地址反过来计算出公钥,也不可能通过公钥反过来计算出私钥(这是一种安全机制,需要了解详细信息的读者可以参考比特币或区块链的相关书籍)。如图6所示。
图6 比特币的地址生成流程
而如图6生成的比特币的地址通常是一串看起来很乱的字符串,如“16UwLL9Risc3QfPqffdUFVDSKofHmBQ7wMtjvC”这样的形式。在比特币的转账过程中,只会检查发送/转账方的合法性(验证其签名),而不会检查接收地址是否属于某人,是否合法的。因此,我们可以“造出”不属于任何人的账户地址的。如果我给出一串如上那样的字符串说这是个不可用的地址,也许没有人会相信。但是,我们可以造出很“规律”的地址,如“111…111”(k个1),则这样的地址就不属于任何人。因为,一方面正常通过图6计算得到这个地址的概率几乎为0,另一方面,想要通过这个地址进行反向找出私钥,是计算不可行的。我们从比特币的原理知道,想要花一个账户地址里的钱,必须知道其对应的私钥。没有人掌握该地址对应的私钥,就意味着任何人都无法使用该地址里的比特币。于是,发送到这样的地址里的比特币相当于被“烧”掉了。我们还可以通过另外一种方法生成“燃烧”地址,我们知道,比特币的账户地址实际上是由公钥经过几轮计算得出的一个200bit数字,最后经过base58编码得出的字符串。如果我们编造一个超出200bit的数,经过base58编码得到的一个字符串,作为“燃烧”地址,则其绝不可能是比特币环境下某个合法私钥对应的地址,从而彻底杜绝任何人使用其上资金的可能。前一种生成“燃烧”地址方法的优点是,人肉眼即可识别,缺点是不保证绝对安全。后一种方法是,绝对安全,但是可能肉眼不好识别。我们可以把两种方法结合起来,生成绝对安全且肉眼容易识别的“燃烧”地址。具体如何操作,留给读者思考。
燃烧证明最早是作为一种区块链的共识机制由Stewart提出来的[2],通过燃烧其他种类的货币(如比特币)“挖矿”获得新的种类货币。这在新的货币建立之初是有益的,因为在开始之时,新的货币要么没有,要么很少,无法采用proof-of-stake方式,而如果采用类似比特币的proof-of-work,又因为参与者少,很难得到公众认可。通过燃烧证明,可以快速获得价值认可(相当于锚定其燃烧的货币的价值),从而不需要像比特币那样经过漫长的成熟期。如Slimcoin[3]就采用了燃烧证明挖矿。
燃烧证明可以在建立初始信用时起到作用,但是燃烧证明对于法定货币存在法律问题,也会造成货币流通量的变化,带来经济和金融方面的问题,我们将在《区块链上自由市场的信任基石之(2)——捐赠证明》中讨论另一种方法。
参考文献
[1] openbazaar, https://openbazaar.org
Karantias K., Kiayias A., Zindros D. (2020) Proof-of-Burn.In: Bonneau J., Heninger N. (eds) Financial Cryptography and Data Security. FC2020. Lecture Notes in Computer Science, vol 12059. Springer, Cham.https://doi.org/10.1007/978-3-030-51280-4_28
[2] Stewart, I.: Proof of burn - bitcoin wiki, December2012. https://en.bitcoin.it/wiki/Proof of burn
[3] P4Titan, “Slimcoin: a peer-to-peer crypto-currency withproof-of-burn,” 2014