如何证明你妈是你妈?聊聊波卡中有趣的数字签名。
让我们今天谈论一件有趣的事情。
假设老王声称一个有10,000个圆点的钱包地址是他的。
那么你如何证明老王是这个钱包地址的主人呢?
有人说老王只需要在指定的时间给我转0.666点。如果我看到这个地址在这个指定的时间确实把0.666点转移给了我,这意味着老王确实是这个钱包地址的所有者。
这在逻辑上有意义吗?
这似乎很有道理,因为只有当老王收到你的指令时,他才能在规定的时间内将0.666点转移给你,而且他操作这个钱包的能力表明他确实是大师。
然而,有没有可能在你指定的时间,这个地址的原主人碰巧把0.666点转移到你的地址,但他不是老王,只是偶然?
在现实生活中,这种可能性太低了,低到我们认为它永远不会发生。
然而,在区块链的世界里,不能说它不会发生,因为概率很低。积木链必须追求终极的决心。
概率科学中有一个著名的“无限猴子定理”。无限猴子定理的近似含义是,如果一只猴子在打字机上随机按键,如果他继续这样按键,只要时间到达无限,这只猴子几乎肯定能够键入任何给定的文本,甚至是莎士比亚的整套作品
因此,通过在指定时间转移指定数量的点来验证不是绝对严格的做法。
在区块链世界,只有私钥是钱包地址所有权的唯一证据。
那么你如何证明老王持有私钥?这就是今天要学习的知识:——数字签名。
首先,零知识证明
首先,我们需要理解一个叫做零知识证明的概念。
假设有一个房间只能用钥匙打开进入。老王如何证明他持有这个房间的钥匙?
方法1:
老王用你面前的钥匙打开了门,所以老王拿着这个房间的钥匙。(即使傻瓜也知道这个验证)
然而,老王在你面前暴露了钥匙,冒着被抢的危险。老王有什么办法不泄露钥匙,而是让你相信他有钥匙?
让我们看看第二种方法:
你把一个苹果放在房间里,然后关上门。出去告诉老王把房间里的苹果拿出来。如果老王真的拿出了苹果,那么老王就掌握了关键。
在这种方法中,老王没有透露钥匙,而是证明他有钥匙。
这是零知识的证明。
就是能够充分证明自己是某个权益的所有者,而不能暴露自己的权益,也就是说,向外界传递的信息是0,所以这叫做零知识证明。
如果老王不能揭示私钥并证明他有私钥,他怎么能用零知识来证明呢?
让我们继续阅读。
第二,不对称加密
在密码学中,有一个非对称加密的概念。
其概念是私钥可以加密一串字符,并且只能用公钥解密。
或者公钥可以加密字符串,并且只能用私钥解密。
加密和解密不使用相同的密钥,这被称为非对称加密。
那么,结合零知识证明就更有趣了。
我们知道公钥是可以公开的钱包地址。我只需要用公钥(钱包地址)加密一个符串字(比如苹果)。加密后,我得到一个签名内容,这就是所谓的数字签名。
然后把这个数字签名交给老王,让老王用他的私钥解密。只要老王能告诉你解密后的单词符串是苹果,它就能证明老王确实持有私钥。
比如,公钥是一个公开可见的房间,符串这个词是一个苹果,公钥加密词符串就像一个锁住苹果的房间,数字签名是锁住苹果的整个房间。
老王用私钥解密数字签名,就像用钥匙开门一样,老王可以拿出苹果,就像老王可以知道符串这个词是苹果一样。
在整个过程中,老王没有透露私钥,但证明他有私钥。
数字签名技术广泛应用于身份验证领域。将来,我们公民的身份信息和公开密钥信息必须是上行的,所以如何判断你的母亲是你的母亲有一个解决办法。
在验证的时候,你只需要给你的母亲一个词符串,让你的母亲用她的私钥加密它,并得到一个数字签名。您只需要向验证者提供这个数字签名。验证者用你母亲在区块链政府的身份信息中找到的公钥解密这个数字签名。如果你解密后得到符串这个词,那就证明你的母亲就是你的母亲。
3.博卡如何操作签名
同样,如果老王用私钥加密苹果,加密的数字签名给了我,我只需要用公钥解密它。如果可以确定是苹果,那就意味着老王持有私钥。
公钥先加密还是私钥先加密并不重要。重要的是非对称加密算法,只要加密和解密不是同一个密钥。
那么如何操作博卡的签名呢?如果我是经过验证的人,我需要证明这个钱包地址是我的,所以我会做以下事情。