<cite id="kZJ7Hr" ></cite>

<samp id="kZJ7Hr" ><sub id="kZJ7Hr" ><dd id="kZJ7Hr" ></dd></sub></samp>

<del id="kZJ7Hr" ></del>
<ruby id="kZJ7Hr" ><xmp id="kZJ7Hr" ><samp id="kZJ7Hr" ></samp></xmp></ruby>

  1. <small id="kZJ7Hr" ><s id="kZJ7Hr" ></s></small>

    1. 加密钱币中的“加密”:为什么一切又怪又难

      • 时间:
      • 浏览:58

      本文为手艺公司Blockstream研究主管Andrew Poelstra在纽约MCC集会中揭晓的演讲。他在演讲中从密码学讲到了数字署名的宁静,指出署名机制的设计从理论和现实应用情形来看是完全差别的,因此对于许多自称能缔造神奇效果的项目来说,用户应该更多选择保持小心。同时,在他看来,比特币的生长速率惊人,因此从手艺角度来看,适当地放慢脚步并没有错。

      以下为演讲全文:

      我没有准备PPT。我想要尽可能地让这次演讲不是那么手艺,我试图剥夺自己在屏幕上写下方程式的权力。我演讲的主题是为什么在加密钱币中所有的一切都是希奇和难题的。从数学和科学角度来看,什么是密码学?其在实践中是怎样运作的?

      加密

      从历史上看,密码学的用途是加密,就像试图想出一些随机的工具。这里的宁静性很简朴:若是你有一个密钥,那么你就可以解密一些工具,而使用一个宁静模子或风险模子来形貌它的想法现实上没有意义。

      在现代,密码学已经取得了长足的前进,包罗零知识证实。零知识证实是由盘算机法式证实的,这些法式只对输入举行状态说明,而不泄露输入的细节。

      数字署名和加密是相关的。署名类似于对两个密钥的加密,一个公钥和一个私钥。任何拥有公钥的人都可以加密数据,任何拥有解密密钥或私钥的人都可以解密数据。这也意味着经由加密的数据可以通过不宁静的通道举行发送。

      数字署名

      数字署名正好相反——只有拥有私钥的人才气天生署名,只有拥有公钥的人才气验证署名。若是你想讨论这里方案的宁静性,那就更难做到,也更难做出界说。我要讲的是学术配景下的数字署名,然后我要讲的是随机数天生的现实问题,然后若是我有时间,我要讲的是怎样将其扩展到多重署名设置。

      没有密钥的人就不能伪造新闻和公钥的署名。从学术上来说,将其形式化是相当难题的。这里所说的形式化指的是做一个界说清晰的状态说明。

      多年之后,我们实验了许多次来找出这些界说——我们得出了这样的结论:若是不存在任何多项式概率时间算法可以成为主导,那么数字署名方案就是宁静的。我们将绝对清除任何算法存在的可能性(只要其界线合理),绝对不能伪造。纵然这样,在界说的时间,也很难证实其宁静性。在现实生涯中,有一个知道密钥的人,这小我私家应该能够天生署名。以是你怎么能明确清除一切但依然包罗特殊情形?

      假设在一场角逐中你有一个对手,你的对手无法赢得下面的角逐:我随机取一个私钥和一个公钥,我把公钥给了你的对手。若是他能天生一个署名,那么这个署名就是伪造的,这个方案是不宁静的。

      直观地来看,这是有原理的。你天生了一个随秘密钥,对手没有私钥。对手唯一知道的要害只有公钥。然而,这种想法是错误的。这个方案的问题在于,对手掌握了这个公钥的大量署名,而类似GPG的工具可能在区块链上举行过电子邮件或者过往的比特币生意业务署名。这个公钥包罗了一堆署名。现有的署名方案对能够看到公钥的对手是宁静的,但对看到署名的对手是不宁静的。这不应该是其运作方式,但现实仍然云云。这工具很难。有一种竞争币就有这个问题。有许多人声称能解决不行能解决的问题。但大多数人都在对你说谎,这才是这次演讲的真正目的。

      假设这个对手更强盛,他可以向挑战者索要信息,而挑战者必须在这条信息上署名。现在,对手不仅可以伪造信息,而且是在我们给出了险些所有可能给出的信息的情形下。我们想提供尽可能多的信息。因此,在恣意新闻上署名就足够了。当对手伪造信息时,他必须在一条新的信息上天生署名。

      这宁静吗?这在通例的宁静观点下是宁静的,又被称为选择信息攻击下的存在性不行伪造性。可是在更庞大的系统中,由于一些缘故原由,这是不宁静的。我们在比特币中发现,通过允许对手只在一条新新闻上提供署名,我们清除了对手可能使用现有的署名并在保持其有用性的同时对其举行调整的可能性。模子中没有捕捉到这一点。一旦某条新闻署名完成,谁在乎对手可以针对统一条新闻产出差别的署名?

      在比特币中,我们使用的ECDSA和txid都是基于这些署名的。以是攻击者有能力改变署名,允许他们改变生意业务的txid,这将保持生意业务的有用性,但会使任何引用该txid的生意业务无效,由于txid是有延展性的。以是我们需要一个更强的模子。

      我们现在需要一个对手,我们说,若是其在某个新闻上提供署名,新闻可以是相同的,但署名也必须是始终相同的。这就是所谓的“强署名”。这是宁静的吗?不。

      假设你有一个署名方案——假设你正在使用Schnorr署名,这些署名特殊容易受到攻击,好比1989年的原始Schnorr算法……攻击者获取了你的一个署名,他没有对署名举行调整,而是以一种保留新闻有用性但更改公钥的方式对署名举行调整。他将获取一个针对一个公钥举行验证的署名,并天生一个与第一个公钥相关的署名。通过比特币,某种水平上你可以天生与代数相关的密钥,好比bip32分层确定性天生的密钥。

      理论上来说,有人可以天生一个署名,其他人可以拿到这个署名的生意业务,在另一个生意业务上建立一个署名,这是针对差别密钥的代数关系攻击。

      在现实情形中,这对比特币来说不是一个问题,由于基于比特币的设计,在比特币生意业务中署名的数据不仅包罗有关生意业务的所有细节,还包罗之前的生意业务(以及其公钥)。以是效果就是你获得了一个看起来像Schnorr署名的工具(除了公钥)……但事实证实,这比“强署名”更宁静,这就是对署名信息和统一署名密钥的零知识署名。这比我想讲的要庞大得多。

      在每一个步骤中,我都在强化宁静的观点,并彻底消除伪造的可能性。我们花了一些时间来探索这个设计,研究伪造行为以及其在现实情形中的体现。对于署名,我能够在舞台上形貌一个宁静角逐,而不需要随处使用图表和箭头。多重署名则越发庞大。

      当你谈论零知识证实——包罗一个零知识证实和一个模拟器和所有差别的规则——试图证实这些庞大系统的奇特性,部署更理想的模子等等,直到你获得一些详细的工具。然而,在现实生涯中,拥有可证实的宁静性具有庞大的价值。

      可证实的宁静性

      接下来我想谈谈可证实宁静的观点,只管我告诉过你们这很难。其中一件事就是随机数天生的观点。我将把话题从界说宁静性切换到部署宁静系统实操。

      基于ECDSA或Schnorr,天生这些署名需要天生一致随机数据。一致随机是指你可以选择所有可能的随机数——现实上是在0和某个牢固的大素数之间。若是你没能随机天生数字,你在多个署名中重复使用相同的数字或相同的nonce,那么你的币就会被盗。这种情形已经发生过频频了,好比有人用这个小问题破解了ps3。2012年比特币就发生了这种情形,一些安卓钱包重复使用了nonces,而且天生了一个糟糕的随机数天生器。最终许多人的密钥及币都丢了。

      并不是nonce被重用了。随机的nonces是存在的,可是有一些软件天生的nonces在某种水平上是有误差的,好比前几位始终是0。纵然与随机数无关,只要有足够的署名,也足以泄露你的私钥。以是我们有这些在学术模子中被证实是宁静的署名方案,但他们总是需要一致的随机性。直觉告诉我们随机不能被猜出来,但这里随机和一致随机没有区别。把两者区离开来就足以打破学术证实,而在实践中,你会丢失密钥和币。

      总结

      这些工具是难题而玄妙的,对于那些自称能够缔造神奇事物的新项目,你不应该感应兴奋,而是保持嫌疑态度。比特币的生长速率很是快。我们需要慢下来,保持小心。(巴比特资讯)

      中国的比特币门户

    2. <mark id="wolrrt" ><td id="wolrrt" ><big id="wolrrt" ></big></td></mark>
      <code id="wolrrt" ></code>
      <progress id="wolrrt" ><strong id="wolrrt" ><pre id="wolrrt" ></pre></strong></progress>
        <del id="wolrrt" ><optgroup id="wolrrt" ></optgroup></del>
      1. <bdo id="wolrrt" ></bdo>
        <rt id="wolrrt" ></rt>
      2. <i id="wolrrt" ><u id="wolrrt" ></u></i>