mirror of
https://github.com/yjjnls/awesome-blockchain.git
synced 2025-02-18 13:44:11 -05:00
update
This commit is contained in:
parent
b325d3c0f3
commit
1c89b3d985
@ -6,6 +6,7 @@
|
||||
- [数字签名](#%E6%95%B0%E5%AD%97%E7%AD%BE%E5%90%8D)
|
||||
- [数字证书](#%E6%95%B0%E5%AD%97%E8%AF%81%E4%B9%A6)
|
||||
- [Merkle Tree](#merkle-tree)
|
||||
- [盲签名](#%E7%9B%B2%E7%AD%BE%E5%90%8D)
|
||||
- [Reference](#reference)
|
||||
|
||||
|
||||
@ -96,6 +97,43 @@ B可以每次都到CA的网站上(或者什么别的官方途径)获得CA的
|
||||
2\. 快速定位修改,比如上面D1数据被修改,可通过root->N4->N1,快速定位到发生改变的D1
|
||||
3\. 零知识证明,比如要证明某个数据中包含D0,那就构造一个默克尔树,公开root、N4、N1、N0,D0拥有者可以检测到D0存在,但不知道其他内容。(D0拥有者可以看到hash值,但看不到完整的数据内容)(比如用户可以查找自己的money是否在交易所的总备用金中,而不必知道其余用户的money信息;或者p2p下载中,文件切片成小块,下载一个分支后就可以验证该分支的数据是否正确,定位错误数据块重新下载或者继续下载下一个分支数据。)
|
||||
|
||||
## 盲签名
|
||||
前文说到了数字签名,但如果A想要B来对消息签名,但是又不想让B知道该消息的内容,该如何做呢?这里就需要用到盲签名了。
|
||||
|
||||
盲签名具有以下特点:
|
||||
1. 签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容。
|
||||
2. 签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的。
|
||||
|
||||
传统RSA加解密的结局方案为:
|
||||
|
||||
1. 加密: 
|
||||
|
||||
2. 解密:
|
||||
|
||||
而盲签名则按照如下步骤来进行:
|
||||
1. 接收者首先将待签数据进行盲变换,把变换后的盲数据发给签名者。
|
||||

|
||||
这里一般用对称加密,所以:
|
||||

|
||||
|
||||
2. 经签名者签名后再发给接收者。
|
||||

|
||||
|
||||
3. 接收者对签名再作去盲变换,得出的便是签名者对原数据的盲签名。
|
||||

|
||||

|
||||
|
||||
|
||||
流程如下:
|
||||

|
||||
|
||||
在这个过程中,B无法得知MSG是什么,B也不知道自己什么时候对MSG做了签名,即若B进行了多次签名,当公布出某一具体的MSG-signature时,B并不知道这个签名是自己在那一次进行签署的。
|
||||
|
||||
|
||||
背景:
|
||||
一般的签名,签名者对自己发出的签名,必须是记得的,比如,在何时何地对谁发的,他自己可以记下来。但是,如果把签名看作是电子现金的话,就涉及到一个匿名性的问题用实际钞票的时候,钞票上有没有写你的名字?当然没有。那我也不希望,银行通过追踪自己发出签名,来获得用户的消费情况。于是就设计出盲签名。
|
||||
|
||||
|
||||
|
||||
# Reference
|
||||
1. [数字签名是什么?](http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html)
|
||||
|
Loading…
x
Reference in New Issue
Block a user