专栏名称: IOTA埃欧塔
IOTA中国社区欢迎您来到IOTA世界!关注我们,带您了解IOTA的一切!IOTAChina.COM
目录
相关文章推荐
文汇学人  ·  张巍 | 史家修昔底德的“艺术散文” ·  2 天前  
湖南市场监管  ·  今日雨水 ·  3 天前  
51好读  ›  专栏  ›  IOTA埃欧塔

关于缠结,白皮书,证明,飞机设计以及局部修饰

IOTA埃欧塔  · 公众号  ·  · 2018-07-02 21:37

正文


随着IOTA项目的研究,开发和生态系统开始蓬勃发展,从IOTA首次向全世界宣布以来已经过去了将近三年,我认为现在是回顾我们如何到达这里的好时机。 这篇博文旨在更多地阐述IOTA项目的历史,以及为什么我们选择了我们所采用的研究和开发方法。


Tangle(缠结)和IOTA项目历史介绍

大约四年前,2014年,围绕一个基于有向无环图(而不是链)的分布式总账架构的一些想法开始在Nxt和Bitcointalk论坛上有很多讨论 。许多年后真正出现的区块链扩展问题,其实在当时已经得到了很好的理解。不难想象,有限大小的区块只能以规则的离散时间间隔生成,会产生吞吐量瓶颈并导致需要支付给矿工高额交易手续费(系统设计的本质)。 如果你想取消费用并允许系统扩展,那么自然的想法就是消除瓶颈和矿工。



当然,这说起来容易做起来难 - 它提出了各种各样的新问题。应该在哪里附加下一个区块/交易/顶点?谁将审查交易的一致性,为什么是这样的?如何防止可能的攻击?如何达成共识?这些问题没有简单的答案。经过一年多的激烈思考,讨论和审议,IOTA创始人提出了一个可能解决这些问题的架构的想法。在该系统中,每笔交易(由图中的顶点表示)将验证通过特定的无规行走算法选择的两笔先前的交易。这成为了我们现在都知道的Tangle缠结数学模型,它是IOTA核心协议的基础。自从Tangle白皮书的初稿开始,描述这个数学模型已经差不多三年了,它已经有了自己的生命 - 原来的白皮书经过了许多修改,这得益于许多人的建议(参见最后的“致谢”部分 - 我借此机会感谢所有提供宝贵反馈的人),并且白皮书在其他研究论文中也被引用了很多次,同时也有越来越多的与Tangle相关的后续论文产生,这些论文和工作是IOTA基金会的研究人员以及独立研究人员进行撰写和进行的,这些论文进一步研究了这一独特架构的特性。



我们的目标是创建一个可以扩展的,并能够消除交易手续费用的分布式系统 - 这不是一件容易的事。 为了消除交易费用,我们必须首先消除矿工 - 毕竟,如果你想设计一个没有手续费用的系统,你就不能简单将服务于“一般用户”的“矿工”分裂掉。 矿工和交易用户之间角色的分歧自然会导致交易费用,因为矿工拥有其他人没有的某种资源,他们会利用这种垄断权力来提取租金(以交易手续费和/或区块奖励的形式)。 因此,为了消除交易手续费用,所有用户(比如您自己)都必须自己照顾自己。 我们的想法是提出一个系统,其主要原则是“帮助他人,其他人会帮助你”(你可以把它想象成前向付费模式)。


您可以通过验证他们的交易来帮助他人; 其他人可以通过验证您的交易来帮助您。让我们将尚未获得验证的交易称为“tips”; 所有新来的交易刚开始都是tips。我们的想法是,通过验证交易,您也间接验证这笔交易的所有“前续交易”。很明显,为了帮助系统推进,新增的交易必须验证tips,因为这会向系统添加新的交易信息。然而,由于网络延迟,强制要求这样做在这种情况是不切实际的 - 你怎么能确定你认为是tips的交易没有被其他人验证呢? 有可能刚刚0.1秒之前已经被其他人验证过了。


相反,它完全是关于验证策略 - 有时(好吧,实际上大部分时间)我们使用术语“tips选择”,但重要的是要注意到网络参与者没有义务进行tips选择; 我们想强制每个人都应该进行tips选择,只是我们不能这样做。如果每个人都与所有人合作 - 只验证最近和良好(非矛盾)的交易,那么我们就处于良好的状态。另一方面,对于只关心自己的人来说,一个自然的策略就是选择几笔旧的交易并一直验证它们,而不必做更多复杂的工作,即对新交易进行检查以保持一致性,从而增加新的信息到系统中。如果每个人都以这种方式行事,那么就不会验证新的交易,网络将有效地被停止。因此,如果我们希望验证策略能够发挥作用,我们需要激励参与者协作并验证彼此最近的交易。


是的,再一次,最后最重要的是激励措施。每个人都想得到别人的帮助,但并不是每个人都在关心帮助别人。为了解决这个问题,而不必引入金钱奖励的话,我们可以将奖励视为不被其他人惩罚。我们需要稍微修改我们的主要原则 - 它现在是这样的:“帮助别人,其他人会帮助你; 但是,如果你选择不帮助他人,其他人也不会帮助你”。当一个新的交易引用前面两笔交易时,它就是这样一个声明:“我保证这些以前没有担保验证过的交易,以及他们所有的前续交易,他们的成功与我的成功有关”。不幸的是,作为人类,我们无法选择我们的父母和祖先,但在IOTA的世界里,你却是可以的 - 所以你可以明智地进行选择😉。在物联网环境中,可以合理地假设网络参与者中的很大一部分将遵循“推荐”的tips选择算法(谁推荐的算法?当然是IOTA基金会)。因此,我们的任务是以这样一种方式来设计这种策略,即每个人都有利于使用它(前提是有很多人也这样做)。经过多次讨论和尝试失败后,我们得出结论:Tangle中的马尔可夫链蒙特卡罗(MCMC)tips选择算法(更确切地说,tips选择算法族)具有这种特性。


数学模型有什么用途?


Tangle作为一种数学模型既简单又复杂。这很简单,因为实际上只有一条规则:交易必须批准(验证)两笔较旧的交易。这是非常复杂的,因为网络的节点可以以他们喜欢的任何方式自由选择这两笔交易,这可以使Tangle的拓扑结构(即交易如何相互连接的方式)非常杂乱。即使我们假设每个人都遵循相同的tips选择策略,所得的拓扑图也是随机的,也很难获取其精确的结构。正如论文中所论述的,tips选择策略的一个很好的选择是“无规行走到tips”(又名MCMC) - 所以,从数学上讲,我们在随机环境中处理马尔可夫链,这类模型众所周知它的难度。相信我,在随机环境中的马尔科夫过程是我“纯数学”研究的主要课题之一,所以我对此有所了解。


如果有人认为它实际上并不那么困难 - 试着证明 alpha = 0 时 tips数量的稳定性。确切地说,假设通过简单随机行走算法来进行tip 选择(因此它与累积权重无关),并且证明在时间t时tips的预期数量为恒定常数限制。 它似乎几乎是直观明显的,这确实通过模拟得到了证实,但试图严格证明它,这可以做到 - 我的前学生Darcy Camargo最近才能做到这一点(他的数学能力非常令人印象深刻)。 而且,如果上述对你来说太容易了,那么试着证明 缠结中的均衡 这篇论文中的猜想1.1。


但就证明问题而言 - 正如您所知,我是一名研究马尔可夫过程和相关领域的研究数学家。我在生活中证明了很多定理。来自于我,这可能听起来特别令人惊讶,但仍然:不要过高估计数学证明在现实世界中的重要性。好的,证明很重要,而且更重要的是,证明经常很漂亮。但是,要证明什么,首先需要建立一个基于假设的数学模型,而这些模型从未以完全准确的方式反映现实。对于这些简化的假设,现实世界则过于混乱和复杂。 IOTA项目背后的其他创始人和我一直认为,为了为现实世界设计和构建一些东西,需要一个迭代开发过程,在此过程中使用某些安全措施(例如协调器)来引导开发,同时不断分析,批评和提高我们对系统的理解。这只是工程的本质。像IOTA这样的协议并不存在于纸上或白板上,但在现实世界中,抽象数学模型的许多假设 - Tangle - 都会崩溃。



数学模型,证明和定理可能非常有价值,但理解它们的局限性也非常重要。 任何声称已经证明系统行为的一切白皮书如果不是作为一个抽象的概念,而是作为一个真实世界的实现的话,那要不就是具有千里眼能够透视世界,或者(更可能)只是非常天真的。 人们可以尝试编写技术规范,并证明飞机的设计和各个方面的安全性,但直到实际建造并且你可以看到飞行之前,对飞行准备情况作出任何全面的声明都必须谨慎行事。


此外,即使在数学模型的背景下,人们普遍认为一种陈述是正确的,即使没有证据可知。 这在数学和数学物理中有很多这样的例子(也许,我可以谦卑地提醒大家,今天的公钥加密系统也是依赖于未经证实的假设?)。 为了使情况稍微复杂一点,在我们的背景下,需要定量结果。 例如,证明“概率为1,任何交易最终都会得到确认”并不足以证明这一点。 为了说明我的意思,请考虑“比特币已经被攻破了”的“证据”:实际上,给定一个地址,可以随意猜测相应的私钥; 因为它们中有很多,最终有一个成功,概率为1.😎


请不要误解我的意思:以上不是不关心证据的许可。

但是,当我们没有一个完全严格的数学证明来证明所述陈述的话,如“Tangle可证明是安全的”(或者我们可以,但是在过度简化的数学模型的背景下),这意味着我们必须更加努力工作,找到非数学的证明。 对所有情况进行多次模拟,构建更加充分和/或易于处理的其他数学模型,想象对系统的每种可能的攻击类型,找出它们为什么不起作用(或弄清楚它们为什么会出现,然后进行修正以防范他们),等等。 此外,我们需要激励所有这些外部研究(很快就会向这个方向发展,并有有趣的新闻)。


本地修饰介绍

谈到对数学模型的修正,你们中有些人可能已经注意到了“缠结中的局部修饰”这篇论文,该论文最近发表在www.iota.org的学术研究页面上。 这是一份已经在基金会内部传播了几个月的草案; 我们发布的版本删除了一些严肃但未完成的数学和“供内部使用”的评论。 该论文的摘要如下:


截至今天,有许多加密货币系统。 它们大多共享一个共同特征:网络的所有参与者以相同的方式解释相同的账本。 在本文中,我们介绍了局部修饰的概念:网络的节点可以以不同的方式与分布式账本交互,这取决于它们本地可用的各种信息。 然后我们认为这种方法可以提高Tangle的安全性和可扩展性。


我们在该论文中寻求做的是进一步加强tips选择算法,同时引入“节点的本地视图”(具体地,在节点接收特定交易的时间)。 这种方法似乎对许多“做什么秘密然后广播”之类的攻击非常有效(这些攻击包括双重支付的“寄生链”攻击以及Tangle白皮书中描述的“分裂攻击”)。 重要的是要强调我们不寻求替换MCMC tip 选择算法,而是在迭代开发的精神中,在我们永无止境的追求中修改它,以改进协议并使其更安全。







请到「今天看啥」查看全文