Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

困扰加密货币的硬核难题五年后都怎么样了?(被严重低估的加密货币)

区块链 加入收藏
今天给各位分享困扰加密货币的硬核难题五年后都怎么样了?的信息,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!写在前面:本文为以太坊联合创始人VitalikButerin发布的硬核长文。文章中列出了他五年前认为加密货币应该解

今天给各位分享困扰加密货币的硬核难题五年后都怎么样了?的信息,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

写在前面:本文为以太坊联合创始人Vitalik Buterin发布的硬核长文。

文章中列出了他五年前认为加密货币应该解决的问题,并且给出了五年后的进展。

这些问题主要被分为了密码学问题、共识理论和经济学这三个方面。

最后,Vitalik还补充了一些我们今天需要关注的新问题,并且指出,基础层的问题肯定会越来越少,而应用层的问题才刚刚开始。

以下为全文:2014年,我发表了一篇文章和一次演讲,列举了数学、计算机科学和经济学领域的难题,我认为这些问题对于加密货币领域的成熟是很重要的。

在过去的五年里,情况发生了很大的变化。

但我们当时认为重要的事情究竟取得了多大进展呢?我们在哪些方面成功了?在哪些方面失败了?我们对于重要性的改观在哪些方面有了变化?在这篇文章中,我将逐一讨论2014年列出的16个问题,看看我们今天在每个问题上的进展如何。

最后,我将列出我对2019年难题的新定义。

这些问题可分为三类:(i)密码学问题,因此如果可以解决的话,预计将纯粹通过数学技术来解决:(ii)共识理论,主要是PoW和PoS的改进:(iii)经济,面向不同的参与者创建涉及激励机制的结构,而且通常涉及的应用层问题多过协议层。

我们看到,在上述所有领域都取得了重大进展,尽管具体的成效参差不齐。

密码学问题1. 区块链可扩展性当前加密货币领域面临的最大问题之一是可扩展性……(容量较大的区块链)的主要担忧是信任:如果只有少数实体能够运行全节点,那么这些实体可以密谋,并同意给自己大量额外的比特币,其他没有处理整个区块的用户就没有办法查看区块是否有效。

问题:创建一个区块链设计来维护类似比特币的安全保证,但是需要强大节点的存在来确保网络运作能够适应交易的数量。

现状:较大的理论进展,需要更多现实世界评估。

可扩展性是一个技术问题,在理论上已经取得了巨大进展。

五年前,几乎没有人考虑分片(sharding):现在,分片设计很常见。

除了以太坊2.0之外,还有OmniLedger、LazyLedger、Zilliqa(等项目都在用分片),几乎每个月都会公布相关的研究论文。

在我看来,这方面的进展是渐进式的。

从根本上说,我们已经有了一些技术,与单个验证者的环境相比,这些技术允许验证者群体安全地在处理更多数据的同时达成共识,甚至允许客户端在51%攻击的条件下间接地验证区块的有效性和可用性。

这些可能是最重要的技术:随机抽样,允许一个随机选择的委员会代替全验证者集:https://github.com/ethereum/wiki/wiki/Sharding-FAQ#how-can-we-solve-the-single-shard-takeover-attack-in-an-uncoordinated-majority-model欺诈证明,允许个人节点得知错误后,将其存在的信息广播给其他人:https://bitcoin.stackexchange.com/questions/49647/what-is-a-fraud-proof托管证明,允许验证者概率性地证明他们单独下载并验证了一些数据:https://ethresear.ch/t/1-bit-aggregation-friendly-custody-bonds/2236数据可用性证明,当区块头不可用,允许客户端检测他们的区块内容:https://arxiv.org/abs/1809.09044,参见更新的编码Merkle树提案。

还有其他更小的进展,如通过收款进行跨分片(Cross-shard)通信,以及“常数因子”增强,如BLS签名聚合。

尽管如此,完全分片的区块链仍然没有在实际操作中出现(部分分片的Zilliqa最近已经开始运行)。

在理论方面,剩下的主要是关于细节的争论,以及与分片网络稳定性、开发者经验和降低中心化风险相关的挑战:对基本的技术可能性似乎不再有疑问。

但是仍然存在的挑战是不能仅仅通过思考就能解决的挑战:只有开发出一个系统和见证以太坊2.0或一些类似的能够运行的链才能证明这项技术真的可行。

2. 时间戳问题:创建一个分布式的激励兼容系统,不管它是一个覆盖在区块链之上还是在自己的区块链之上,它都能保持当前时间的高准确度。

所有正当用户的时间都是正态分布在某个“真实”时间,标准差为20秒……不允许两个节点之间的间隔超过20秒。

解决方案可以依赖于现有的“N个节点”概念:在实践中,这将通过PoS或非女巫(non-sybil)token来强制执行(参见第9条)。

系统应该持续提供一个时间,这个时间应该在内部时间的120秒内(如果可能的话,可能更少),大于99%的诚实节点的时间。

外部系统可能最终依赖于此系统:因此,不管激励机制如何,它都应该保持安全,防止攻击者控制小于25%的节点。

现状:有一些进展。

实际上,以太坊的出块时间只有13秒,而且运作顺利,没有特别先进的时间戳技术:它使用了一种简单的技术,在这种技术中,客户端不接受时间戳早于客户端本地时间的区块。

也就是说,这还没有经过严重攻击的考验。

最近的网络调整时间戳提案试图改善现状,允许客户端在不知道当前时间的情况下,在时间上达成一致:这还没有经过测试。

但总的来说,时间戳目前还不是研究挑战的前沿:也许当PoS链(包括以太坊2.0以及其他链)真正上线之后,我们才能看到问题所在,这一点也将再次改变。

3. 任意计算证明问题:创建程序POC_PROVE (P, I) - > (O, Q)和POC_VERIFY (P O Q - >{0,1},这样POC_PROVE在输入I时运行程序P并返回程序输出O,计算证明Q和POC_VERIFY用P, O和Q和输出(证明)是否Q和O 是通过P用POC_PROVE算法产生的。

现状:较大的理论和实际进展。

这基本上是说搭建一个SNARK(或STARK,或SHARK,或…)的过程。

我们已经做到了!SNARKs现在已经被越来越多的人理解,甚至已经被用于多个区块链(包括以太坊上的tornado.cash)。

作为一种隐私技术(参见Zcash和tornado.cash)和扩容技术(参见ZK Rollup、STARKDEX和STARKing擦除编码数据根),SNARKs非常有用。

在效率方面仍然存在挑战:创造算法友好的哈希函数是一个重要挑战,而有效地证明随机内存访问是另一个。

此外,还有一个未解决的问题,即在证明时间内O(n * log(n))的放大是否是一个基本的限制,或者是否有某种方法可以只使用线性开销来做一个简洁的证明,就像bulletproofs那样(不幸的是,这需要用线性时间来验证)。

此外,现有方案存在缺陷的风险也一直存在。

总的来说,问题在于细节,而不是基本原理。

4. 代码模糊化关键在于创建一个模糊处理器O,这样面对任何程序P,模糊处理器可以产生第二个程序O(P)= Q, 如果给出相同的输入,P和Q可以返回相同的输出。

重要的是,无论如何Q不会公布任何有关P的内部构件信息。

本文到此结束,希望能给网友您带来不错的体验。

图集详情底部广告位