举(jǔ)个实(shí)例。Tony要向Bob证明自己拥有某个房(fáng)间(jiān)的钥(yào)匙,假设该房间只(zhī)能用钥匙打开锁,而其他任何方(fāng)法都打不开。这(zhè)时有2个方法:
②Tony确(què)定该房间内有某一物(wù)体,Tony用自己拥有的钥匙打(dǎ)开该房间的门,然后(hòu)把物体(tǐ)拿出(chū)来(lái)出示给Bob,从而证明自(zì)己(jǐ)确实拥有该(gāi)房间的钥(yào)匙。
什么是零知识证(zhèng)明?
零知识证明(míng)是(shì)当今应用密码学中(zhōng)最抽(chōu)象、最吸引人的概(gài)念(niàn)之一。从可能用于核裁(cái)军到(dào)为公共
区(qū)块链网络提供匿(nì)名和安全(quán)的交易,零知识证明是密码技术创(chuàng)新(xīn)的一个深(shēn)刻例子。
在密码学中,零知识证明或(huò)零知识协议是一(yī)个方(fāng)法,一个政党(验证)可以向另一方(校验(yàn))证明他们(men)知道(dào)一个值x。一个(gè)零知(zhī)识证明的本质在于它可以揭示某些信(xìn)息(xī)。挑战(zhàn)在于如何在不披露信息本(běn)身或任何(hé)额外信息的情况下证明拥有这些信息是合(hé)理的。
零知识证明必须满足以下三个参数:
· 完(wán)整(zhěng)性。如果这个陈述是真的,诚实的验证者——正确地遵循协议的验(yàn)证者——将被诚实(shí)的验证者说服。
· 可靠性。如(rú)果陈述是假的,没有任何作弊证明可(kě)以说服诚(chéng)实的(de)验证者它是真(zhēn)的。
· 零知识(shí)性(xìng)。如果该(gāi)语句为真,则除了(le)该语句为真(zhēn)之外,验证者不(bú)会(huì)学到任(rèn)何(hé)东西。换句话说(shuō),仅仅知道语(yǔ)句(而不是秘密)就(jiù)足以想象一个场(chǎng)景,表明(míng)验证者知道秘密。这是通过每个验(yàn)证者都有一个模拟器来(lái)实(shí)现(xiàn)的,模拟器可以生成一个(gè)“看(kàn)起(qǐ)来”是(shì)诚(chéng)实的验证者和普(pǔ)通验证者之间交(jiāo)互的记录。模拟器(qì)应该能够生成文(wén)本,但只能访(fǎng)问要证明的(de)语句,而不能访问(wèn)验证者本身。
完整性是更一般的交互式证明系统的性质。零知(zhī)识的加法使验证过(guò)程变成零知识的证明。
零知识证明不是数学(xué)意义上的证明,因为有(yǒu)很小(xiǎo)的概率,即可靠(kào)误差,一(yī)个作弊证(zhèng)明者能够说服一个虚假(jiǎ)陈述的验证者。换句话说,零知识证明(míng)是概率证明而不是确(què)定(dìng)性证明。然而,有(yǒu)一些(xiē)技术(shù)可(kě)以(yǐ)将可靠(kào)性错(cuò)误降低到可以忽略的值。
零知识证明(míng)的一般结构包括参与者a和参与者b之间的三个连(lián)续(xù)动作。这些动作(zuò)被称为目击、挑(tiāo)战(zhàn)和回应。