人不知道他所签署消息的具体内容,而签名消息也不可追踪,即当签名消息被公布后,签名人
无法知道这是他哪次签署的。
打个简单的比方,A要寄一封信,封在信封里,但是要让B在信上签名,又不要B看见内容。怎么
办?在信封里同时加入一张复写纸,于是B在信封上签名,信封里面的信上就同时印下了B的签
名,这时B既没有看见信的内容,同时又在信上签了名。
另一点,A寄了很多信,都有B的盲签名,当公布出其中一封信时,B也不知道这是他哪次签的
名。
[翻译注意:1、provided指的是e-cash protocols provided,不是指cryptographic primitive
provided或者Chaumian blinding provided,2、mostly reliant on a cryptographic
primitive known as Chaumian blinding这句话只是插入语,修饰一下anonymous e-cash
protocols,真正的谓语是provided。这里网上有的翻译有点小错误]
1998年,Wei Dai的b-money第一次提议了通过解决计算难题和去中心化共识来创造货币的思
想,但是这个提议在细节上还有缺陷,即去中心化共识如何去实施。
2005年,芬尼(Hal Finney)介绍了“可重复使用的工作量证明”这一概念,即一个采用了两种
方案的系统,哪两种方案?1、b-money的理念;2、亚当贝克(Adam Back)的通过有计算难度
的哈希现金难题来创造加密货币的概念。但是[芬尼的这个概念]还是不够理想,因为它依赖可信的
计算来支持。
Wei Dai的b-money和亚当贝克(
Adam Back)的Hashcash在比特币白皮书翻译与详解里面
都有,不累述。
因为货币是一种先申请应用,[上一篇说了,first-to-file先申请是指,假如如果一个人有50BTC,
并且同时向A和B发送这50BTC,只有被首先被确认的那笔交易才会有效],那么这种先申请应用,
交易顺序通常就至关重要,去中心化货币就需要解决达成去中心共识的问题。
比特币之前的货币协议遇到的主要障碍是,尽管多年以来已经有大量的关于创造安全的拜占庭容错
多方共识系统的研究,但是所有的协议都只解决了部分问题。
Byzantine-fault-tolerant拜占庭容错
拜占庭帝国进攻敌国,敌国能抵御5支拜占庭军队,拜占庭帝国派出10支军队,这10支军队任何
一支单独去进攻都毫无胜算,除非有至少6支军队(一半以上)同时进攻,才能攻下敌国。
10支军队分散在敌国的四周,依靠通信兵骑马相互通信来协商进攻意向及进攻时间。问题来
了!他们不确定他们中是否有叛徒。叛徒可能擅自变更进攻意向或者进攻时间。在这种状态
下,拜占庭将军们怎么才能保证有6支以上军队在同一时间发起进攻,从而攻下敌国?假定军队
之间的通信毫无问题。
没有叛徒情况下:
假如一个将军A提出一个进攻提议(比如:明天上午9点进攻,你愿意加入吗?)由通信兵分别
告诉其他的将军。
如果幸运,A将军收到了其他5位将军以上的同意,发起进攻。
如果不幸,其他将军在此时发出不同的进攻提议(比如:明天上午10点、11点进攻,你愿意加
入吗?)。由于时间上的差异,不同的将军收到并认可的进攻提议可能是不一样的,这是可能
出现A提议有3个支持者,B提议有4个支持者,C提议有2个支持者等等。
有叛徒情况下:
一个叛徒通信兵会向不同的将军发出不同的进攻提议(比如,通知A明天上午9点进攻, 通知B
明天下午1点进攻)。
而一个叛徒将军也可能同意多个进攻提议(即同意明天上午9点进攻又同意明天下午1点进
攻)。
这种发送前后不一致的进攻提议,被称为“拜占庭错误”。而能够处理拜占庭错误的这种容错
性,就称为拜占庭容错,Byzantine fault tolerance,简称为BFT。
这些协议假设系统里所有的参与者是已知的,并且产生安全边界,什么安全边界呢,即“如果N
方参与,那么系统可以容忍N/4的恶意参与者。”
也就是说,比特币出现之前的那些电子现金协议,都设置了一个多方参与多方共识的容错机
制,即假设N个人参与进来,他们不是匿名的,而是已知的,那么系统最多可以容忍四分之一的
人搞破坏。只要搞破坏的人不超过四分之一,那么这个系统还会运行良好。
