现代社会中“身份”一词最早的研究可以追溯到20世纪50年代心理学家埃里克·埃里克松的工作。1999年Stanford的James D. Fearon教授在论文中为“身份”下了定义,“身份”指的是(1)社会范畴,由成员资格规则和(所谓的)特征属性或预期行为来定义,或者(1)个人引以为豪或视为不可改变但在社会上具有重要影响的社会区分特征(即可以同时是(1)和(2))。在后一种意义上,“身份”是尊严、自豪或荣誉的现代表达,暗示了这些与社会范畴的联系。

二十多年过去了,身份的定义又有了新的变化,我们可以大致将其分为以下几类:
不同类型的身份之间本应该彼此分割,在学习工作中,应该只关注个人的社会身份;对政府机构而言,应该只关注个体的法律身份;对社交媒体而言,应该只关注个人的数字身份。然而,在信息技术高度发达的当下,人们很难做到不同身份的完全切割,反而处于几乎完全联通的状态,顺着一个细节就能获得个体身份的完整画像,这引发了严重的身份隐私泄露问题。
随着区块链领域的不断发展,链上身份逐渐成为人们热议的话题。出于现实世界道德与法律的要求,部分区块链应用需要进行KYC(Know Your Customer),例如,部分游戏应用需要进行年龄的验证;服务地区受限的应用需要进行国籍的验证;某些任务平台可能还需要进行社交媒体的验证。如何在不泄露具体身份隐私的前提下完成KYC验证, 是区块链行业在当前的社会体系下繁荣发展所需要解决的首要问题。
行国籍的验证;某些任务平台可能还需要进行社交媒体的验证。如何在不泄露具体身份隐私的前提下完成KYC验证, 是区块链行业在当前的社会体系下繁荣发展所需要解决的首要问题。
验证现实身份,可以分为两种方法。第一种,提交由中心化机构发放的身份证书,其中包含了大量身份信息,应用选取所需的信息进行验证;另一种,则是提交由机构签发的证明凭证,该凭证仅针对特定身份信息,应用不会得知其余信息。
举例而言,如果需要验证年龄大于18周岁,第一种就是上传身份证,应用根据身份证上的出生年月计算年龄,检查是否大于18周岁;第二种则是由用户直接提交盖有政府公章的证明文书,“兹证明xxx年龄超过18周岁”。
然而,这两种方法都有其缺陷,第一种方法会导致用户与应用无关的身份信息被泄露,包括具体年龄、生日、出生地等;而第二种方案会导致每次用户需要提交不同条件的证明时,都需要前往对应机构开具特定证明,用户体验不佳。
零知识证明为验证现实身份的两难困境提供了解决方案。