枣阳薇薇新娘婚纱摄影 首页 品牌中心 科技动态 新闻中心 配件系列

Vitalik:混合电路(Garbled circuits)倏地入门 | BTC

发布日期:2022-10-17 17:37    点击次数:85

注:原文作者因此太坊联合独创人Vitalik Buterin。

特殊谢谢冲动Dankrad Feist对本文举行的审阅事变。

混合电路(Garbled circuits)是一种极度迂腐,且极度俭朴的密码学原语。它们很可以或许是通用“多方计算”(MPC)的最俭朴模式。

下列是该规划的通例配置: 假设存在两方,爱丽丝(Alice )和鲍勃(Bob),他们想要计算一些函数f(alice_inputs, bob_inputs),这需求从单方那取得输入。爱丽丝(Alice)和鲍勃(Bob)都想晓得计算函数f的终局,然则爱丽丝(Alice)不想鲍勃(Bob)晓得她的输入,而鲍勃(Bob)则不想爱丽丝(Alice)晓得他的输入。理想情形下,除了f的输出外,他们都不会得悉任何另国货物。 爱丽丝(Alice )执行不凡的进程(“混合”-garbling)来加密评估函数f的电路(意味着一组“与”、“或”门)。她将输入(也以与加密电路兼容的要领举行加密)通报给鲍勃(Bob)。 鲍勃(Bob)应用一种称为“1-of-2茫然传输(Oblivious Transfer)”的技能来深造本身输入的加密模式,而不让爱丽丝(Alice )晓得他获患有哪些输入。 鲍勃(Bob)在加密数据上运行加密电路,失去答案,并将其通报给爱丽丝(Alice )。 额外的密码学封装可用于呵护该规划,以预防爱丽丝(Alice )和鲍勃(Bob)发送舛误的信息并彼此给犯舛误的答案。为了俭朴起见,我们不会探究这些成就,尽管可以或许说“把ZK-SNARK封装在全体货物上”是其中之一有效的经管规划(相当繁重且次优!)。

那根抵规划怎么样运作呢? 让我们从电路起头:

Vitalik:混合电路(Garbled circuits)倏地入门

这是一个最俭朴的电路例子,它理论上做了一些事变:它是一个两位加法器。它以二进制模式输入两个数字,每个数字具有两位,并输出一个三位二进制数字(即总和)。

而今,让我们对电路举行加密。首先,对付每个输入,我们随机生成两个“标签”(256位数字):一个默示输入为0,另外一个默示输入为1。尔后我们也对每其中央线做一样的操作,不蕴含输出线。留心,这些数据不是爱丽丝(Alice )发送给鲍勃(Bob)的“混合”的一部份;到而今为止,这只是配置。

Vitalik:混合电路(Garbled circuits)倏地入门

而今,对付电路中的每个门,我们执行下列操作。对付每个输入组合,我们在爱丽丝(Alice )供应给鲍勃(Bob)的“混合”中包孕输出标签(或许假设输出标签是“终究”输出,则间接包孕输出),该标签是经由过程将导致该输出的输入标签散列在一起而生成的密钥加密的。为了俭朴起见,我们的加密算法可以或许是enc(out, in1, in2) = out + hash(k, in1, in2),其中k是门的索引(它是电路中的第一个门,第二个,第三个?)。假设你晓得这两个输入的标签,并且你有混合(garbling),那末你可以或许深造响应输出的标签,因为你只有计算响应的哈希,并将其减去即可。

这是第一个异或门(XOR gate)的混合(garbling):

Vitalik:混合电路(Garbled circuits)倏地入门

请留心,我们间接蕴含0和1(的加密模式),因为此异或门的输出间接是顺序的终究输出。 而今,让我们看一下最右边的与门(AND gate):

Vitalik:混合电路(Garbled circuits)倏地入门

在这里,门的输出仅用作别的门的输入,因而我们应用标签(label)而不是位(bit)来潜匿评估器(evaluator)中的这些中央位。

爱丽丝(Alice )将供应给鲍勃(Bob)的混合(garbling)只是每个门第三列中的全体内容,每个门的行被从头排序(以防止体现给定的行是否对应于任何一行中的0或1)。为了协助鲍勃(Bob)相识为每个门解密哪一个值,我们将应用一个特定的按次:对付每个门,第一行变为两个输入标签均为偶数的行,第二行第二个标签为奇数,第三行第一个标签为奇数,第四行两个标签均为奇数(我们成心抉择较早的标签,以便每个门在一个输出上都具有偶数标签,而在另外一个输出上具有奇数标签)。我们以沟通的要领混合电路中的每个别的门。

总之,爱丽丝(Alice )为电路中的每个门向鲍勃(Bob)发送了四个 约256位的数字。现实证明,4远非最好值;无关怎么样将与门(AND gate)的数量削减为3以至是2,以及将异或门( XOR gate)数量削减为零,请拜会此处的一些优化。请留心,这些优化确凿寄托于某些改观,应用XOR接替加法和减法,尽管为了安好起见照旧该当这样做。

当鲍勃(Bob)收到电路时,他向爱丽丝(Alice )索要与她的输入相对应的标签,并且他应用称为“1-of-2茫然传输”的和谈来向爱丽丝(Alice )索要与本身的输入相对应的标签,而没有向爱丽丝(Alice )吐露他的输入是什么。尔后他一个接一个地经由过程电路中的各个门,揭露每其中央门的输出线。

假设爱丽丝(Alice )的输入是两条左线,她给出(0,1),而鲍勃(Bob)的输入是两条右线,他给出(1,1)。这又是带有标签的电路:

Vitalik:混合电路(Garbled circuits)倏地入门

在一起头,鲍勃(Bob)晓得标签6816, 3621, 4872, 5851; 鲍勃(Bob)评估第一个门,他晓得6816和4872,新闻中心因而他可以或许提取与(1,6816,4872)对应的输出值(请拜会上表)并提取第一个输出位1; 鲍勃(Bob)评估第二个门,他晓得6816和4872,因而他可以或许提取与(2,6816,4872)对应的输出值(请拜会上表)并提取标签5990; 鲍勃(Bob)评估第三个门(异或门),他晓得他晓得3621和5851,并深造7504; 鲍勃(Bob)评估第四个门(或门),他晓得3621和5851,并深造6638; 鲍勃(Bob)评估第五个门(与门),他晓得3621和5851,并深造7684; 鲍勃(Bob)评估第六个门(异或门),他晓得5990和7504,并深造第二个输出位0; 鲍勃(Bob)评估第七个门(与门),他晓得5990和6638,并且深造了8674; 鲍勃(Bob)评估第八个门(或门),他晓得8674和7684,并深造了第三个输出位1; 这样鲍勃(Bob)就相识了输出:101 。在二进制中,10 + 11 理论上等于101(在电路中,输入和输出位都因此从最小到最大的按次给出,这就是为何爱丽丝的输入10在电路中被默示为(0,1)的启事),所以它起浸染了!

请留心,加法的应用在混合电路中是毫无意义的,因为晓得101的鲍勃(Bob)可以或许减去他本身的输入并失去101 - 11 = 10 (爱丽丝的输入),从而破坏了隐私。 然则,普通情形下,混合电路可用于不成逆的计算,因而请勿以此要领破坏隐私(譬如,人们可以或许会想到一种计算,其中爱丽丝的输入和鲍勃的输入,是他们对共性测验的答案,而输出是一个位,抉择算法是承觉得它们是兼容的;而这一位的信息不会让爱丽丝和鲍勃晓得彼此笔底生花的集团测验答案。

  1-of-2茫然传输(oblivious transfer)  

而今让我们更多地探究1-of-2茫然传输(oblivious transfer),这是鲍勃(Bob)用来从爱丽丝(Alice )那取得与他本身输入对应标签的技能。成就是这样的:聚焦于鲍勃(Bob)的第一个输入位(第二个输入位的算法沟通),爱丽丝(Alice )有一个对应于0(6529)的标签,和一个对应于1(4872)的标签。鲍勃(Bob)有他想要的输入位:1。鲍勃(Bob)想深造准确的标签(4872),而又不让爱丽丝(Alice )晓得他的输入位是1。日常平凡的经管规划(爱丽丝只向鲍勃发送6529和4872)不起浸染,因为爱丽丝(Alice )只想销毁两个输入标签中的一个,假设鲍勃(Bob)同时领受两个输入标签,则可以或许走漏爱丽丝(Alice)不想销毁的数据。

下面是一个应用椭圆曲线的俭朴和谈: 爱丽丝(Alice )生成一个随机椭圆曲线点H; 鲍勃(Bob)生成两个点P1和P2,哀告P1 + P2等于H。鲍勃(Bob)抉择P1或P2为G * k(即他晓得对应私钥的点)。请留心,P1 + P2 = H的哀告可确保鲍勃(Bob)不克不迭生成P1和P2。这是因为假设在鲍勃(Bob)晓得k1和k2的情形下,假设P1 = G * k1和P2 = G * k2,则H = G *(k1 + k2),因而这意味着鲍勃(Bob)可提取H的分离对数(或“对应的私钥” ”),这意味着椭圆曲线密码体系的全体部份都被破坏了; 爱丽丝(Alice )确认P1+P2=H,并应用一些标准公钥加密规划(譬如El-Gamal)加密P1下的v1和P2下的v2。鲍勃(Bob)只能解密这两个值中的一个,因为他晓得至多对应一个值(P1,P2)的私钥,而爱丽丝(Alice )又不晓得是哪一个。 这经管了成就,鲍勃(Bob)痛处输入位的差别,深造两个线标签(6529或4872)中的一个,而爱丽丝(Alice )殊不晓得鲍勃(Bob)深造了哪一个标签。

  应用局限  

混合电路(Garbled circuits)对付良多应用都有潜伏的用途,而不只仅是2-of-2的计算。譬如,你可应用它们举行肆意宏壮度的多方计算,其中肆意数量标染指者供应输入,这些输入可以或许在恒定数量标交互中运行。孕育发生一个混合电路是齐全并行的,你可以或许同时举行多个混合门。

因而,你可以或许俭朴地举行大局限多方计算,其中良多染指者计算电路中全体分的混合(garbling),并宣布与其输入对应的标签。标签本身是随机的,因而不会吐露任何关于输入的信息,然则任何人均可以或许执行颁布的混合电路,并在“覆灭”中深造输出。无关应用混合(garbling)作为身分的MPC和谈的最新示例,请拜会此处。

多方计算不是仅有的应用情形,在这类情形下,这类将计算拆分为可并行处理惩罚部份的技能可对神秘数据举行操作,尔后再举行可大白运行的按次部份,这是有效的,而混合电路着实不是完成这一点的仅有技能。普通来说,对付随机编码的文献,蕴含良多更宏壮的技能,这一数学分支在函数加密和含糊处理惩罚等技能中也是颇有效的。



----------------------------------
栏目分类
相关资讯