http://www.7klian.com

引介 | 详解信任初始化阶段的5种配置

 假如你没有做好筹备,那就是筹备失败。——《圣经世界》,1919
当你想要相识一个去中心化系统时,必需搞清楚的问题之一是:这个系统有要被信任的初始化阶段(trusted setup phase)么?

原文链接:

https://decentralizedthoughts.github.io/2019-07-18-setup-assumptions/

请留意,此处存在轮回论证的风险:有了 PKI 配置,就可以别离在 n=2f+1 时实现同步模子中的拜占庭共鸣,还能在 n = f+1 时实现拜占庭广播(拜见 Dolev 和 Strong)。但假如没有 PKI 配置(尺度模子),那么初始化 PKI 的广播情况需满意 n > 3f。

门限签名机制凡是在低落词语巨大度(word complexity)和淘汰总计较开销(案例拜见此处)上表示突出。而门限签名的问题在于该机制要求有个初始化进程,凡是被称为漫衍式密钥生成(DKG)初始化。

广播意味着即便可信实体是 “透明的”,也就是说,该实体所 吸收/发送 的所有 输入/输出 以及它的随机字符串都是果真的,系统的安详性也不会受到损害。典范的例子就是那些利用一个被信任的实体来广播所有参加方公钥的协议。

编者注:关于 “trusted” 一词,常见的翻译是 “可信”,譬喻 “trusted third party” 翻成 “可信第三方”,“trusted setup” 翻译成 “可信初始化”。然而我觉得,翻译成 “可信” 恰恰错失了这个词原本的意思,因为 “trusted” 一词表达的并不是一种代价判定(不是 “creditable”、不是 “reliable”、不是 “trustworthy”),而是一种事实判定,即协议的运行需要信任;作为一种修辞,它的浸染是标志信任的锚点。举例而言,带有 trusted third party 的协议,意味着协议的安详性依赖于一些第三方,他们的作为会影响协议的安详性,用户在利用协议时也实质上信任了这些第三方不会违反协议。正因为如此,在翻译尼克·萨博的 《Trusted Third Parties are Security Holes》一文时,我就把 “trusted” 翻译成 “受信任的”。同样地,在这篇文章中,我们同样利用被动语态(可能名词形态)来翻译 “trusted”。

阶段凡是会执行很多反复的任务。而初始化阶段只需执行一次,就能开启反复运行很多实例的主阶段。

最新的 MPC 协议都被设计成 离线-在线 两阶段运作,个中离线是用于初始化阶段的,凡是是完全保密的。一个常见的例子就是向各参加方共享乘法三元组(也叫,Beaver 三元组)的信任初始化阶段。详细来说,该初始化进程随机将 ai 、bi 和 ci 发给参加方 Pi,且 (a1 +…+ an )·(b1 +…+ bn) = (c1 +…+ cn )。然后,在协议的主阶段(也叫在线阶段),参加方分享他们的输入,也就是说,参加方 Pi 通过向 Pj 发送 x'j 使得 x'1 +...+ x'n = x' 来分享他的输入 x'。此刻,各个参加方都可按照被共享的数值举办任何算术运算,也就是说,给定一个共享的奥秘值 x 和 y,假如参加方 Pi 持有 xi 和 yi 使得 x1 +...+ xn = x 且 y1 +...+ yn = y,那么各参加方可以执行以下流程(我们在以下描写中省略了一些细节) :

  • 开始 —— 给定一组共享的 x1,...,xn ,使得每个参加方都可以得到 x = x1 +...+ xn。
  • 加法/减法 —— 各参加方 Pi 通过在当地计较 zi = xi + yi ,可以计较出一个共享的 z = x + y。因为这遵循 z1 +...+ zn =(x1 +...+ xn )+(y1 +...+ yn)。
  • 缩放 —— 给定一个所有参加方都知晓的值 c,他们就可以通过每个参加方在当地计较 zi = cxi 来计较一个共享的 z = cx。同样的,它也遵循 z1 +...+ zn =(cx1 +...+ cxn )= c(x1 +...+ xn )= cx。
  • 乘法 —— 各参加方通过放弃来自初始化阶段的单个乘法三元组可以计较出一个共享的 z = xy。简朴起见,我们用 [x] 来暗示(x1 +...+ xn )。参加方都拥有共享的 [x]、[y] 和来自初始化阶段的三元组 [a]、[b]、[c](别忘了c = ab)。各参加方别离计较 [s] = [x] - [a] 和 [t] = [y] - [b]。由于 a 和 b 的值是由初始化配置统一选择的,因此 s 和 t 的值也是统一的,所以该进程不会泄漏任何干于 x 和 y 的信息。然后,这些参加方计较 [xy] = s[y] + t[x] + st − [c]。此进程仅包罗缩放和加/减法计较,因此可以由每个参加方在当地计较来得到共享的 [z] = [xy]。
风险和优势:如上所述,这样一个初始化阶段的受进攻面极大。初始化阶段的输出必需保密,也就是说,在上面的乘法进程中,要留意假如一些持有 t 的参加方缔盟,得到了所有参加方共享的 a1,…,an,那么他们就可以通过计较 [x] = [s] - [a] 算出奥秘值 x。请留意,在此类初始化阶段中并不是只要做好保密就万事大吉了,我们还必需确保三元组都是正确的,也就是说,ab 必需便是 c,不然计较的输出就会堕落。掩护三元组不被泄漏以及不受到恶意参加方的影响是一项难题的任务,因此会给 MPC 协议带来庞大的本钱。另一方面,由于初始化阶段已经输出了乘法三元组,因此协议的主阶段将变得很是快。

利用 PKI 既可以提高异步拜占庭协议的巨大性(案例拜见 Cachin、Kursawe 和 Shoup),也可以将同步拜占庭协议的容错本领晋升至 n = 2f + 1(案例拜见 Katz 和 Koo)。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读