0462-578211736
12807045223
时间:2024-07-22 19:11:05
详述自学如何通过用于零科学知识证明方法答案数独,后用Python建构PoC。毫无疑问,我们当前生活在一个数据驱动的社会中,事实上,数据已沦为比黄金或石油更加有价值的资源。严肃考虑一下我们每天每分钟在线分享的个人数据量。方位,感觉,爱好,网卓新闻网,密码,消息……而且表格还在大大快速增长……幸运地的是,平面和非对称的加密技术使我们需要维护我们的数据免遭企图监听我们通信信道的蓄意输掉的反击。
但是数据控制器(我们合法发送数据的人)呢?消费者如何保证自己的数据不被错误处理或欺诈?一种确认的方法是首先拒绝接受发送数据。但实质上,并不是那么非常简单。这是一次互相交换。
我们为他们获取的某种服务互相交换了一些隐私权吗? 尽管如此,在很多情况下,从消费者的角度来看,这种互相交换并不公平,因为数据处理程序拒绝的数据比实际必须的要非常少。某种程度,密码学有可能回应有解决方案。如果我告诉您,可以防止分享您的数据怎么办。
例如与其将原始的薪水概览和工作详细信息发送给出租机构以展开信用检查,不如仅有发送到证明您每年收益多达4万的证明。这正是零科学知识证明(ZKP)所获取的!尽管有很多方法可以结构ZKP,但在本文中,我将得出一个演练(包括原始的代码片段),解释如何为仅有用于散列函数作为允诺的数独谜题解决方案创立ZKP。
ZKP一开始解读一起可能会让人望而生畏,因此我知道坚信数独积木是解读ZKP如何在很高的层次上工作的一个很好的例子。另外,数独是大多数人都熟知的东西。
但让我们紧贴正题。背景科学知识零科学知识证明零科学知识协议源于80年代,最初是由Shafi Goldwasser,Silvio Micali和Charles Rackoff在麻省理工学院明确提出的。更加精确地说道,他们叙述了一种交互式证明系统,其中牵涉到一个当事方(“证明方”)向另一方(“检验方”)证明某项陈述正式成立。将此背景化作少见的Alice/Bob示例,我们可以考虑到以下场景:Alice无意间找到了一个在线比赛,必须找出一个谜题,并取得100英镑的奖金。
她催促Bob的协助,如果他们中的任何一个解决问题了,他们表示同意平分奖金。旋即之后,Bob声称自己早已解决问题了问题,Alice请求他共享解决方案。
然而Bob不不愿共享,因为他指出Alice可以自己递交解决方案,而不共享奖金。因此,他正在找寻一种安全性的方法来向Alice证明他有解决方案,但又不必要与她共享。是的,你猜中对了!ZKP正是他所执着的!让我们更加完全地定义“安全性方式”一词的含义。
一般来说ZKP必需获取以下属性(最少具备很高的信心!):完整性:检验者必需拒绝接受所有违宪的证明健全性:检验人必需拒绝接受每一个有效地的证明零科学知识:检验程序除了断言外,不理会其它语句的任何信息请注意,这是交互式ZKP的十分基本的定义。有各种各样更加简单的交互式/非交互式ZKP,但是对于本演练而言,此定义就充足了。允诺方案(Commitment Schemes)允诺方案是ZKP的关键组成部分,总体而言,它是加密的关键部分。
简而言之,它们是密码原语,它容许当事方允诺特定的价值而需要透漏实际价值,同时获取一种方式来说明了价值并在以后的阶段中检验允诺。更加月地说道,让C作为允诺方案,它必需获取以下两个属性:隐蔽(Hiding):很难区分有所不同价值的允诺。约束力(Binding):一个人允诺后无法再行声称自己早已允诺了另一个值:创立允诺方案的一种方法是用于单向哈希函数和加密安全性的随机字节。
应当留意的是,在这种情况下,该方案的安全性由哈希函数本身的加密假设(即它是单向的)来掌控。为了更加确切地解释这一点,让我们来看一个少见嫌疑人的例子。Alice和Bob要求玩游戏一个石头,剪刀,布的数字游戏。
他们都作出自由选择并互相交换结果,以便确认赢家。在数字世界中,其中一个必需首先分享他/她的自由选择,这使她/他正处于有利的方位,因为他/她可以在查阅另一位玩家自由选择的结果后再行分享有所不同的自由选择。这正是允诺方案要解决问题的问题!另外,他们可以根据自己的自由选择创立允诺并分享允诺,而不是实际自由选择! 例如:设置一个:S = {“Rock”, ”Paper”,”Scissors”}Bob和Alice都分别从S中随机自由选择Pᴬ和Pᴮ。
现在他们计算出来:(||-回应串联)Cᴬ = sha256(Rᴬ || Pᴬ) and Cᴮ = sha256(Rᴮ || Pᴮ)Bob和Alice联合分享Cᴬ,Alice和Bob联合分享Cᴮ。请注意,到现在为止,它们都允诺了这些值。最后它们分享完整自由选择和随机字节Pᴬ,Rᴬ和Pᴬ,Rᴮ。有了这些信息,各方就可以通过对P||展开散列来检验允诺。
R并声明它们的等效性。根据他们的自由选择,可以确认获胜者,而且由于哈希值不给定,他们都无法变更其初始自由选择。数独ZKP现在是本文的主要部分。
数独是一个十分知名的难题,也被称作NP问题(实质上是NP-Complete),并被证明对于NP中的任何问题都有ZK。数独ZKP毕竟什么新鲜事物,但我还没寻找一个直观和明晰的说明协议与代码示例,所以最少这是本文目的获取的。实质上,这里叙述的协议是Gradwohl等人的这项十分有意思的工作的构建。
有意思的是,他们在论文中还叙述了一种物理协议,可以用于一副纸牌来继续执行打样,如果您想要特地展示ZPK,但现在还是坚决用于数字打样,这很有意思。Alice想要向Bob证明她有一个数独谜题的答案方案,但Bob不坚信她。假设她不了了之以下难题和答案方案。
本文来源:PG电子·游戏官方网站-www.szydbw.com