一种身份验证的方式
0.引题,我被骗了吗?
有个朋友给我发微信说“我爸爸向银行贷了款,银行要求每个月在他的账上出现一笔流水。能不能往我爸爸的账上打几万块钱,在账上待一天,然后我爸爸会打回给你。”
我和这位朋友关系很好,他的信誉也一直很高。但我无法确认他的微信是否被盗。
问题来了,我如何确认给我发微信的人就是我朋友。打电话辨认声音是一种,视频认人是一种。但如果把这种活动推广到公司行为呢。
我爸爸接到一个电话,对方自称是电信公司,声称我家的网络欠费6000块,请立即还款到某账号。我爸爸很害怕,亲自带好身份证和开户信息跑到电信局去确认这个声明是否属实。结果是虚假的。那么有没有一种情况,可以让我爸爸非常简单地确认对方是否真的电信公司呢。
有。
一. 虎符,你是君王吗?
让我们来想象下以下场景。
汉武帝面见咸阳一排长说“寡人命你即刻前往北京,剪灭G匪。”但这个排长没见过汉武帝。排长说“吾只认虎符,不识君王。”汉武帝掏出虎符,排长立刻领旨行军。
在这个故事里,虎符就标识了君王的身份,而汉武帝的脸是无法标识君王的身份的。
那为什么这个虎符能标识君王的身份呢。它有以下几个特征。
1.天下唯一,并且不可伪造。
2.天下人都认识。都知道虎符长什么样子,几斤几两,成色几何。
3.天下人都知道,只有君王才能拥有虎符。
以上三点反过来就是,如果面见者确认了虎符的真实性,即可确认持有虎符的人就是君王。即虎符成了君王的身份标识。比君王的脸还好用。
那么有没有一种东西,可以让每一个人或机构都拥有自己的“虎符”呢?
有。
二. 身份证,身份证好用吗?
有一次在北京西直门地铁站内,数个穿着制服,拿着对讲机,牵着大狗的人,拦着人群,对每一个人索要了身份证。这个小小的卡片,就标识了拥有者的身份信息,内置的芯片包含了一些基本信息。
有一次因为在迪斯尼看完了灰姑娘城堡烟火晚会,太晚了,回到香港尖沙嘴地铁站,站内太复杂,迷路了。东张西望之际,一个身着制服的人向我走来,我下意识掏出身份证给他看,他笑了笑说,这玩意在这里没用。哦,我赶紧去找港澳通行证。他制止了我,说,“我不是来查你身份的,我是来问你要不要帮助的。”这件事我明白了两个道理,一是我习惯了在大陆见到身着特殊制服的就卑颜屈膝。二身份证的标识身份作用在香港没用了。
有一次我去美国,走出机场,面见海关官员,我给了他护照。他看看我,看看护照,问了些问题,让我走了。我又明白了,在美国,身份证和港澳通行证都不能标识我的身份,护照才能证明我是一个合法的良民。
嗯,因为国家和政府的存在,我们需要好多身份标识证件。麻烦。而且这些证件都是可以做假的。比如你爸爸是公安局局长,你就可以办5张身份证,然后去买五套不限购的房子。比如你是警察,你就可以去查你的女朋友或你的准儿媳所有的开房记录。我操。
三. 地球书,你是你吗?
如果世上有一个数据库,该数据库全世界人都可随意获取;全世界人都可以添加自己的内容;但无法伪造或修改他人的内容;并且自己可以按他人的要求来补充自己的内容;而且他人还可以针对你提供的补充信息来验证你给出的补充信息是否是你原有的内容的补充。那么自己的内容就可以成为自己的身份标识,即自己的这个“内容”就是自己的“虎符”。
以上太绕了,举个例子吧。如果世界上有这么一本电子书(就叫《地球书》吧),一页一页记录,每一页属于一个人,别人不可修改他人的页,自己可以修改自己的页,别人可以查看所有人的页。如下图。
如果张三见到一个人,这个人说,“我是李四,把欠我的100亿津巴布韦币还给我。”
张三说,“李四是男的而且是西瓜脸,你明明是女的而且是饭冰冰脸,你骗人。”
李四说,“我刚去了泰国做了个大手术,又去了韩国做了个小手术。”
张三说,“那好,有本事你在《地球书》上属于李四的那一页,补充这么一句话‘我今天要张三还我100亿津巴布韦币’”。
李四去拿出手机,打开《地球书》将自己的那一页加了这么一句话。《地球书》变成了下面这个样子。
张三也拿出手机,打开地球书,翻到李四那一页,一看,哎,真的改好了。对这个人说,“好,我确认了。这是110亿津巴布韦币,还给你,多了的是利息。谢谢。”
你们看,如果有《地球书》,身份认证就这么完成了。
那这本《地球书》真的有吗?
有。
四. 比特币,你是中本聪吗?
世界上最难伪造的身份非比特币的创造者中本聪莫属了。CIA也好,某党也罢,都无法伪造聪哥的身份。因为中本聪拥有比特币区块链创世块里的唯一私钥。
比特币的创世块是一个很好的办法。比特币的创世块有50BTC,而且代码写死了,这50BTC是不能使用的。地址在这里“1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa”(有爱好者往该地址捐了些币,余额超过50BTC)。但这笔币无疑是由中本聪拥有。也就是说这笔比特币对应的私钥其拥有者中本聪是没有使用权的,但是拥有所有权。
那么如果有人伪造了中本聪在网上发言。如果中本聪觉得有必要,他就可以用这个私钥签名,注上这个发言不是由他本人发出。全世界就知道了真相了。
五. 区块链,在网上唯一真实地存在。
因为我希望该文让更多的朋友看得懂,所以这里解释下比特币的三个基本概念。拥有比特币的朋友基本可以跳过。这里只使用一些类比进行解释,需要严格的定义的朋友,请前往维基词条“比特币”查阅。
1.区块链:是一个不可撕页、不可跳页、不可更改、永不间断、永不可损毁的记账本,该账本10分钟记一页。第二页和第一页连接,第三页和第二页连接……以此类推,形成一个链,每10分钟就有一新页添加到链尾。每一页都有添加时间,时间也不可更改。每一页可记载一些类似银行流水的转账信息也可以添加一些转账注释信息。任何人都可以按照规则进行添加页。(如果你想知道这个账本为什么这么厉害,请查看上面的维基链接,可能要耗费很多时间。我是花了1个半月待在家全职学习比特币才算入门。如果你暂时没有那么多时间,你就先认可这是上帝创造的,暂时不去理会它为什么存在,而且还能那么神奇。上帝与你同在,阿门。)
2.地址:即公钥:类似你的家庭地址,比如:中国北京市海淀区中关村250号帝国大厦1305信箱。可以用来收信。比特币地址是由英文字母和数字组成的一串字元。你可以用来收账。本文要着重解释它的另一个功能——标识身份信息。
3.私钥:类似于信箱钥匙。别人有你的通信地址,就可以给你寄信。你有了信箱钥匙,你就可以从信箱里拿信。即信箱钥匙可以证明你对该信箱里的信拥有所有权。如果你给别人寄信,你会在信封上写签名或在信正文尾落款,如“张三寄”。比特币私钥用于证明比特币的拥有所有权。私钥可以给消息(最常见的,花费比特币的消息)签名,以证明消息的发布者是相应地址的所有者。
4.消息签名:如果张三要给你转账,使用银行卡转账。你要把你的卡号、开户行和户名给张三。张三在转账单上填写卡号、开户行和户名等信息。这个“户名”就是为了证明这个卡号的拥有者是你。在比特币的世界里,如果张三要给你转账比特币,你会给张三一个地址如“1EoiugSZmRKtdZiKRWWqrB8J6aGXZ7Y2ea”。但张三要你证明这个地址就是你的,你就必须给这个地址进行消息签名。写信是发信人通过笔落款签名,收信者通过笔迹来确认发信人身份。比特币的签名是收款人通过自己拥有的私钥——对公布的地址——使用收款人给的特定消息——进行数字签名。得到签名结果,发送给发款人。发款人通过签名结果和特定消息来验证地址。
过程是这样的。
1)张三要给你发送一定量的比特币。
2)你通过QQ等工具给张三一定比特币地址“1EoiugSZmRKtdZiKRWWqrB8J6aGXZ7Y2ea”
3)张三先通过QQ等工具给你发个消息,“请证明这个地址1EoiugSZmRKtdZiKRWWqrB8J6aGXZ7Y2ea是你李四的”,并且要求你用此信息对你发给他的地址进行消息签名。
4)你使用比特币钱包软件.exe,(点这里有下载https://bitcoin.org/zh_CN/download),来完成此过程。点击菜单栏“文件——消息签名”,将地址“1EoiugSZmRKtdZiKRWWqrB8J6aGXZ7Y2ea”复制进第一个信息框,将张三发给你的消息“请证明这个地址1EoiugSZmRKtdZiKRWWqrB8J6aGXZ7Y2ea是你李四的”复制进第二个信息框。然后点击左下角的“消息签名(M)”,右下角将显示“消息已签名”,同时你在第三个信息框将得到签名结果“IGzzrG0TJio26DbIt0ZzJOwkvzbKtGqt3ufBEuZOasweLAhXMpGCKKf+enEGe2xjcHaM4UEa+vjAHEB1RGPkKQE=”。
5)你将得到的签名结果“IGzzrG0TJio26DbIt0ZzJOwkvzbKtGqt3ufBEuZOasweLAhXMpGCKKf+enEGe2xjcHaM4UEa+vjAHEB1RGPkKQE=”,通过QQ等工具发送给张三。
6)张三使用比特币钱包QT.exe来验证签名信息。点击菜单栏“文件——验证信息”。张三将你发给他的地址“1EoiugSZmRKtdZiKRWWqrB8J6aGXZ7Y2ea”复第一个信息框。将张三自己发送你的消息“请证明这个地址1EoiugSZmRKtdZiKRWWqrB8J6aGXZ7Y2ea是你李四的”复制进第二个信息框。将你李四发送给张三的签名结果“IGzzrG0TJio26DbIt0ZzJOwkvzbKtGqt3ufBEuZOasweLAhXMpGCKKf+enEGe2xjcHaM4UEa+vjAHEB1RGPkKQE=”复制进第三个信息框。然后点击左下角的“验证消息签名(M)”。如果签名结果正确,右下角将显示“消息验证成功。”这样就证明了,这个地址“1EoiugSZmRKtdZiKRWWqrB8J6aGXZ7Y2ea”确实是你李四的,你李四拥有所有权。也就是拥有该地址的私钥。(记住,以上三个内容,格式完全不能变,缺一个空格都不行。请使用复制粘贴,进行验证。)
5.所有的公钥都记录在区块链里,不可伪造。所有的签名信息都记录在区块链里,不可伪造。所有的私钥都不会出现在区块里,只存在于你自己电脑里,你也可以将私钥写在纸上,并将电脑里的删除,这样黑客也偷不到你的私钥了。
六.应用,我真的是我。
那么我们每个人或机构,是否可以使用区块链来证明自己的身份呢。无疑是可以的。
1.使用QT钱包生成一个收款地址,空地址就可以,不需要有任何余额。
2.使用QT钱包对该地址进行使用特定消息签名。这时你将得到签名结果。
3.将这一比特币地址,特定消息和签名结果,发布到网上,向全世界宣布,这个地址是你的。
4.如果遇到有人需要核实你身份,对方给你一个特定的“消息”,你“签名”,对方“验证签名”。即可辨别真伪。
5.以上唯一的危险就是你的私钥被盗。请妥善保管你的私钥。
6.QT钱包是不需要同步数据就能使用消息签名和签名验证的。所以如果您只是使用QT来做为身份验证,就不要去同步庞大的区块链数据了,现在这些数据已经超过25G了。否则启动和关闭QT钱包都无比慢。
一个机构也可以使用一个地址进行签名声明自己是该私钥的唯一拥有者。任何伪造机构身份的行为,都可被轻易验证。遇到需要多人确认身份时,可以预先将私钥成多份,让多人保管。多人共同签名确认身份。比如私钥分成3份,至少两人签名才能确认。
这是人类第一次不需要依赖第三方信誉机构就可以完成身份验证。也是人类第一次在互联网上制造了一条不可复制,不可伪造的数据链。伟大的无以复加。
从比特币创世块开始,世界因此变了。
七. 签名,这就是我。
现在我向所有认识我的人声明,这个地址的私钥的所有权拥有者是我。我已经向这个地址进行了如下签名。如果您觉得有必要确认我的身份,可以通过任何通讯方式,向我索要该地址的特定信息签名。
我的地址是:“14mhzjkJ71oMAMkKu3dy98dnUpkyQBHL1r”
我已经签名的消息是:“我是黄世亮,我对该地址的私钥拥有所有权。若您怀疑正在向您沟通的人是伪造了我的身份。请要求对方对该地址进行特殊信息签名。这个特殊信息,当然是由您指定的。如果真的是我,我会照做。否则您可有理怀疑对方伪造了我的身份。”
以上签名消息的签名结果是:“H2cnbfidho9dzmWRjCoPdgX5Wo+A9rJGFNs7mvDyqxqJm1QIOeqJv/7IFC3+AmLdARbqdM0TjLzbtxgz7SanI8o=”
上面三个内容引号内(不包括引号)部分有效。
八. 未来,一私钥走天下。
现在是2035年了,一个美国海关官员对我说,“先生,请对这一消息‘welcome to American’,在您的比特币地址‘14mhzjkJ71oMAMkKu3dy98dnUpkyQBHL1r’上签名。”我掏出手机,点了点,官员也在他的桌面设备上点了点。然后说,“欢迎来到美国,XXX”。
一切都变了。
黄世亮 2015年4月18日于深圳
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场