身份认证在区块链链上或离线的正确打开方式

Originally published at: https://alphawallet.com/cn/identity-done-right-onchain-off-hans/

本文原文作者: Janmes sangali,AlphaWallet 社区译者: Wisdom,英文原文链接:https://awallet.io/identity-done-right-onchain-off/

身份认证在区块链领域是老生常谈的话题,我们会鄙视那些人,他们想要把我们的健康记录及其它重要信息存在区块链上,唯恐天下不知。并且我们被告知身份验证是一种简单交易,而且仅仅消耗1.53$汽油,并且这会让向你询问身份ID的酒保了解你的个人隐私。
我可不想告诉全世界我在哪个牙医那里做过检查
虽然在这个领域存在很多问题,但是我相信未来可以在不泄漏隐私情况下,正确的进行身份认证可以与区块链服务无缝连接。

加密认证来啦

加密验证是通过加密签名来证明身份有效性,例如,“我是爱丽丝,我可以证明Bob出生于14/07/1990,并且是美国公民”,这个事情被Alice的私钥签名。类似的事情已经存很久,并且它们独立于区块链存在。尽管如此,很多产业还是会望而却步,并且认为我们需要把全部身份认证都写入区块链,这个不方法不仅昂贵,而且有泄露隐私的巨大风险。
这样的证明机制不仅存在于个人层面,类似的应用比如访问web页面或者在浏览器访问https绿色网站,签名机构基本上都会需要通过SSL证书进行有效性确认

加密认证与区块链有什么关系呢?

由于可以通过密钥钱包进行加密验证,因此可以创建一些很酷的dapp应用,这些dapp应用可以使用加密证明保存大量链下信息。更深一步思考,由于采用区块链技术推动行业采用密钥服务,你的银行/医生/google 或者当地/联邦政府会会给你发放一个可以证明你身份的认证。可以设想构造一个世界,利用已经存在密钥,进行加密认证,在区块链上或者链下,可以通过点击一个按钮,在不泄漏个人隐私的情况下获得相应的服务。

加密认证引起隐私问题

现在我们可以通过你的密钥获取加密认证,但是我们可以用它来做什么?它跟以太坊区块链有什么关系?刚开始,你可以不需要触碰区块链就可以使用你的加密认证。比如 当你想访问facebook,需要你提供你的认证并且签名获取账户访问权限。
假设你拥有一本当地驾校认证的驾驶证,上面提供关于你的出生日期,名字,地址,驾驶水平,但是你想拿驾照进入一个夜总会,这个夜总会仅仅要求年满18岁,很自然的,你不想把所有的个人信息给夜总会看,因为这个很没必要并且也会侵犯隐私。这是启用隐私证明的地方,使用merkle树,你可以把认证信息处理成分支信息,比如“18岁以上:真实,由x签名”,然后向夜总会展示这条信息即可。Merkle 树提供源头信息的分支信息认证,而不需要暴露全部的信息,这里不再详细介绍,我的同事会在关于以太坊认证机制理详细描述。

以太坊中使用加密认证

我们已经知道了链下工作的例子,那么在智能合约中怎么使用加密认证呢?假设你想在以太坊上购买啤酒代币,啤酒代币可以在商店兑换真正的啤酒,并且你需要年满18岁才能购买这个啤酒代币。使用上面提到的merkle树模型,可以在购买啤酒代币的智能合约中加入一个改良版的merkle树模型,该模型可以验证加密并且准许或者拒绝购买尝试。这种操作的影响不仅仅是实现了购买啤酒币,想象一下你可以不需要创建账户就可以购买ICO币或者股票,或者可以无缝访问任何需要身份验证的服务,这些功能都可以通过加密钱包来实现。如果你对身份验证未来有什么想法,欢迎在社区留言。

the risk to privacy is the key