详解信任初始化阶段的5种设置


详解信任初始化阶段的5种设置
本文插图
免责声明:本文旨在传递更多市场信息 , 不构成任何投资建议 。 文章仅代表作者观点 , 不代表火星财经官方立场 。
小编:记得关注哦
来源:以太坊爱好者
原文标题:引介 | 详解信任初始化阶段的5种设置
编者注:关于 “trusted” 一词 , 常见的翻译是 “可信” , 例如 “trusted third party” 翻成 “可信第三方” , “trusted setup” 翻译成 “可信初始化” 。 然而我以为 , 翻译成 “可信” 恰恰错失了这个词原本的意思 , 因为 “trusted” 一词表达的并不是一种价值判断(不是 “creditable”、不是 “reliable”、不是 “trustworthy”) , 而是一种事实判断 , 即协议的运行需要信任;作为一种修辞 , 它的作用是标记信任的锚点 。 举例而言 , 带有 trusted third party 的协议 , 意味着协议的安全性依赖于一些第三方 , 他们的作为会影响协议的安全性 , 用户在使用协议时也实质上信任了这些第三方不会违反协议 。 正因为如此 , 在翻译尼克·萨博的 《Trusted Third Parties are Security Holes》一文时 , 我就把 “trusted” 翻译成 “受信任的” 。 同样地 , 在这篇文章中 , 我们同样使用被动语态(或者名词形态)来翻译 “trusted” 。
如果你没有做好准备 , 那就是准备失败 。 ——《圣经世界》 , 1919
当你想要了解一个去中心化系统时 , 必须搞清楚的问题之一是:这个系统有要被信任的初始化阶段(trusted setup phase)么?
一个问题随之而来:比特币和以太坊有要被信任的初始化阶段么?
许多分布式计算和密码学协议都设计了一个初始化阶段 。 对于一个多阶段协议(multi-phase protocol)而言 , 被信任的初始化设置有其特殊性 。 我们称第一个阶段为初始化阶段(setup phase) , 第二个阶段为主阶段 (main phase) 。 通常有两个性质将初始化阶段与主阶段区分开来 。
主阶段通常会执行许多重复的任务 。 而初始化阶段只需执行一次 , 就能开启重复运行许多实例的主阶段 。
初始化阶段通常都是 输入无关的 , 也就是说 , 它根本不会使用来自各参与方的私有输入 。 此外 , 有时候初始化阶段甚至是 函数无关的 , 跟主阶段各参与方想要计算什么函数根本无关;这一阶段每个参与方都只知道自己想要计算某些函数 。 因此 , 我们通常将初始化阶段和主阶段分别称为离线阶段(或预处理阶段)和在线阶段(即 , 当各参与方意识到在未来的某个时间点他们可以基于尚且未知的输入运行某些函数时 , 就会愿意运行离线阶段 。 )
你可以将初始化阶段看作一个由完全可信的实体 T 运行的理想函数 , 理想到我们觉得无可挑剔 。 例如 , 假设公钥基础设施(PKI)的安全性就意味着:我们假设存在一个完全可信的实体(completely tursted entity) , 每个参与方都向该实体提交自己的公开加密(及验证)密钥 , 然后该实体会把这些公钥广播给所有的参与方 。 在本文中 , 我们将通过研究各种初始化假设所用的理想函数 , 来回顾一下信任初始化的常见类型 。
可以这样来建模被信任的实体:存在一组初始的参与方 P1 , ... , Pn 和被信任的实体 T 交互 。 这些参与方可以发送输入 x1 , ... , xn 给 T(xi 代表 Pi 的输入) , 而 T 反过来运行一些函数 F(r , x1 , ... , xn )(其中 r 是一个均匀的随机字符串) , 产生输出 y1 , ... , yn, 并将 yi 发送给 Pi 。 这一过程可能是 “交互性” 的 , 也就是说它可能重复许多次 。 由于这是在描述一个理想中的世界 , 因为我们总是假设各参与方与受信任的实体之间的通信信道是安全的 。
在下文中 , 我们认为绝大多数函数都属于以下五种类型之一:


推荐阅读