密码学是许多区块链协议的核心。从传统的工作量证明 (PoW) 到 L2 现代方法(如 ZK-rollups),许多高级加密方法为区块链运行时和协议提供了基础。因此,关于任何区块链架构的安全稳健性都存在一个无所不在的问题。天真地,我们假设在复杂攻击中幸存下来的区块链加密实现本质上是安全的,但这远非经验证明。有没有更好的方法来验证安全算法的鲁棒性。答案似乎在一篇刚刚赢得美国国家安全局 (NSA) 的「最佳网络安全研究论文竞赛」的新论文中,这在密码学研究界引起了很大的轰动。
这篇题为「单向函数和 Kolmogorov 复杂性」的论文为密码学中的一个 500 周年问题提供了答案。手头的问题与存在称为「单向函数」的数学结构有关,该结构可以证明 L2 区块链中的零知识证明等方法是否是加密安全的。
现代密码学的本质依赖于在数据上创建密码,希望它们保持安全。但是,我们如何确保它们是安全的?这个问题的理论答案出现在 1970 年代,当时密码学家提出了单向函数的概念,单向函数是易于计算但难以反转的数学函数。为了说明单向函数的工作原理,想想如果有人要求您将两个大素数相乘,如 485144 和 999983。得到数字 485,135,752,552 作为答案可能需要一些工作,但我们有一种方法可以做到这一点。现在让我们来回答反问题,从数字开始,尝试确定它的质因数。这是一项极其艰巨的任务。这是单向函数的本质。
图源:Codeprg
L1 和 L2 区块链中使用的密码技术的基础是以单向函数的存在为前提的。如果给定问题存在单向函数,那么它的加密保护,如果没有,它可能容易受到不同的攻击。然而,到目前为止,几乎不可能证明单向函数的存在。在他们的论文中,康奈尔大学的研究人员发现了一个与计算机科学的一个晦涩领域相似的答案。
输入 Kolmogorov 复杂性
康奈尔大学研究论文中提出的答案基本上表明,单向函数的存在与计算机科学的另一个基础问题有关,即 Kolmogorov 复杂性 (KC)。KC 理论与数字串的复杂性有关。如果您看到两个大数字 66666666666666666666 和 123948109102912,您无法完全证明哪个比另一个「更随机」,但直觉上您认为第二个数字生成起来更复杂。这是苏联数学家 Andrey Kolmogorov 用来开始计算复杂性新理论的想法。本质上,KC 理论将数字字符串的复杂性定义为产生该字符串作为输出的最短程序的长度。
回到我们的例子,KC 理论要复杂得多,但希望您掌握了核心思想。几十年来,KC 理论已经成为计算机科学许多领域的基础,但在密码学中却没有那么重要。直到康奈尔研究小组从帽子里拿出一只兔子,并证明单向函数的存在与给定问题的 KC 相关。简单来说,如果一个问题是 KC 复杂的,则存在单向函数,如果不存在,则很可能不存在。
这个简单的陈述可能成为现代密码学中最具革命性的发现之一。
图片来源:广达杂志
这对区块链世界意味着什么?
康奈尔论文提供了一种经验方法来评估 L1 和 L2 区块链中使用的密码技术的稳健性。考虑到基于加密技术(例如安全多方计算或零知识证明)的 L2 运行时的出现,这一点尤为重要。确定算法是否是 KC 复数从根本上说比确定单向函数的存在更简单。诚然,这个问题超出了区块链生态系统的范围,但是,如果我们谈论的是构建新金融系统的轨道,那么加密稳健性是一项基础能力。
原文标题:《The Paper that can Change the Foundations of all Blockchain Cryptography》
原文作者:Jesus Rodriguez
原文编译:蝉爷讲禅
来源:区块律动