区块链:IOTA 交易,确认和共识 (DAG)

Tangle 初始状态
与区块链技术不同,IOTA 并不是一条有着时间序列概念,每个区块前后相连的链,链中的每个块包含一些交易。在 IOTA 中,每笔交易都可以其他交易连接(所谓连接,就是验证其他交易),并且可并行发生。下面的内容将就如何在 IOTA 中加入交易,验证交易及其共识机制展开。

Imgur
上图是 tangle 的一个案例,下面内容都会围绕该图展开。绿色交易代表已经被网络以高确定性(high certainty)地确认,蓝色交易是部分确认,也就是确定性较低。灰色(以及下面的黄色)方框表示还没有任何人验证过的 tip (tip 有尖端,尾部的意思,比如手指尖就可以用这个词,这里的 tip 表示 tangle 中最新的尚无人验证的交易)。红色交易,表示有冲突,或无效交易。
在上图中,交易 α 并非一笔普通交易。它引用了交易 h 和 l,由于交易 h 已经被交易 l 引用了, α 会选择一个 tip(l) 和 一个显然不是 tip 的交易(h)。这么做目前似乎并没有问题,网络也允许这样的行为。

 

加入一笔交易

Imgur

 

 

为了向 tangle 中加入一笔新的交易,用户必须从 tangle 中随机挑选出两个 tip(tip 就是尚未确认的交易),并对两个 tip 进行验证。所谓验证,意味着用户需要检查 tip 的签名,即所谓的 PoW,并确保所选的 tip 与之前的任何交易(无论是直接相关还是间接相关)都没有冲突。如果所选的 tip 是合法的,用户就对其进行引用,也就是加入新的交易。

如果交易既没有被所选的 tip 直接引用,也没有被间接引用,那么对于当前的验证过程来说,这些交易就是不相关的交易。对于不相关交易,会由其他人或是之后的交易来进行验证,并将它们加入到 tangle 中。

另一笔交易

Imgur

 

与此同时(其实不必同时,早一点晚一点都无所谓),另一个用户可能正在一个不同的位置加入新的交易。它选择了 tip z 和 y。如此一来,它就在更大的范围上验证了已经验证过的同样交易,即 a 到 k,m 到 n,加上额外的一些没有在交易 1 验证路径上的交易(l, o, r, t, v, y 和 z)。

新的 Tangle 状态

Imgur

 

交易 1 和 2 的验证路径有重合之处,我们可以看到有一些交易仅被确认一次,有些交易被确认两次。被当前所有 tip 验证和确认的交易就被认为是完全确认。因此,交易 n 进入 tangle 更深一层,现在变成了绿色。从现在开始,随后所有连接到 1 与/或 2 或者它的孩子,将会保持再验证和再确认的交易状态。

我们已经学到了什么?

没有人需要看到和验证所有的交易。每个用户仅需要选择和验证两笔交易及其父交易。如此一来,他们仅验证了 tangle 的一部分而已。当其他用户选择并验证不同的 tip 和路径,完整 tangle 的协同验证就出现了。

在某个时间点以后,一旦一笔交易在 tangle 中进入足够深的位置,无论从最新的 tip 中的任意一个,无论从直接或是间接路径上它都存在。这样的交易就被认为是完全确认,并且会被每一个新的交易再验证,再确认。我们可以认为它被所有用户(和机器)确认,并且确定性很高。

为了对确认进行检查,接收者只需要检查交易是否被已有的所有 tip 直接或间接引用(或者通过一个确定比率,如果确定性更低的话,比如 80%,也可以接受)。这时候就不需要再验证或是其他类似操作了。注意:可能会有上千个 tip。与其检查每个 tip 的父节点,更可能的是选择一个随机样本,并做一个统计评估。

注意交易 n 还没有被确认,因为现在我们的 tip 比较少。下面会展示更多 tip 的场景。

确认级别

Imgur

 

我加入了一些新的 tip 对上例进行了扩展。对于每个新的 tip,它的验证路径都被高亮了。通过颜色,你可以清楚地看到哪些交易被多少 tip 所验证,及其验证等级。

一个商家可能会根据自身情况设定个性化的确认/确定等级。如果交易速度比交易价值更重要(比如微支付或零价值支付),又或者发送方是一个朋友,一个人可能会以 75% 的确认等级接受交易。在 75% 的确定等级(3/4 tip)下,交易 l, o, 和 t 可能也会被确认。

传播延迟

Imgur

 

理论上,由于更慢的 PoW 或者传播延迟,可能在稍后出现一笔慢速交易 5。鉴于我们已经知道了交易 5,交易 n 就不会再被所有的 tip 完全确认。但是,他们的确认确定性(confirmation certainty)仍然很高,有 4/5 tip 确认(实际上会有上千而不是 5 个 tip)。记住,所有一切都是为了一个高概率的确定性 -- 就像在区块链里面,区块的每次确认就是增加了确定性的概率。

请注意,本例中的交易 5 的状态并非从 “确认” 转变为 “未确认”。它仅是从改变了数学上精确的确定性比率(比如,如果一共有 100 个 tip,从 100% 到 99%)。一旦一些随后的交易引用了交易 1 和 5,交易 n 就会被所有的 tip 再次完全确认。这样小的确认等级变化将不太可能会发生,更进一步的交易会进入 tangle。

请注意,100% 的确认/确定等级无论如何都很难达到,因为总会出现一些无正面贡献的 tip(比如,引用一些无用的交易,或是根本不遵守协议)。

双花

Imgur

 

想象这样一种情况,一个用户在 tangle 的两个不同的地方加入了两笔冲突的交易(w 和 y)。对于随后的用户,在他们的验证路径上可能只有这些冲突交易里面的其中一笔(取决于他们的 tip 选择,和一些可能的传播时延)。比如,加入了交易 1 和 2 的用户就不会看到冲突,并会确认他们所选的 tip。因此,双花就得到了第一次确认。但是,迟早必然会发生的是,这两笔冲突的交易会出现在一笔交易的验证路径上。比如,交易 5 就会看到冲突,继而不会确认选出的 tip。相反,为了确保它自身会是一笔有效的交易,它会重新选择 tip 直到找到不冲突的交易。

依赖于 tip 的选择和 tangle 的推进,在冲突变得逐渐清晰之前,可能会有更多的用户在 w 或 y 后面附加交易。取决于用户在哪里附加最多新的交易,w 或者 y 都会在某个点确认,但是其他会被丢弃。被丢弃交易(因为它们看不到即将到来的冲突)后面的所有交易也会被丢弃。但是,这些交易并不会丢失,而是可能被任何人(但最可能是交易接收方)接受,并为了新的确认机会再次附加到 tangle。这时,PoW 就需要重新来过,但是并不需要从发送方发送新的签名了。

解决双花

Imgur

 

上面已经说到,一个用户尝试将交易 5 与 tip 1 和 2 相连。由于冲突,它重新进行选择 tip,并且决定连接到 tip 1 和 4。另一个用户(也可能是同一个)选择 tip 2 和 3 连接到交易 7。虽然出现了多个分支,但是由于 w 和 y的双花,只有一个能够存活。基于 tip 的随机选择(和交易的累积权重),这两个分支的其中一个会接收更多的的子交易(独立的,权重)直到 tangle 进入一个状态,在这个状态里就不可能再合法地附加任一片段。在上面的示例中,用户可能继续与交易 5,6 和 8 相连,但是不会连接到交易 7。因此,交易 y,2,3 和 7 将永远也不会成为一个完全确认的状态。

正如上面所说的,交易 y,2,3 和 7 可能被再次加入 tangle 。只要他们(仍然)是有效的,就会新的机会被确认。交易 2,3 和 7 可能然后被确认,但是交易 y 仍然无效。

离线 Tangle

Imgur

 

tangle 能够让用户在离线的情况下,仍然能够继续构建交易,比如在公司内部的局域网,或者在断电的情况下与邻居继续交互。如此,依照协议规定创建交易,并相互连接。

在上面的案例中,交易 1 和 2 是首先离线的一批。它们与在线 tangle(online tangle) 最后已知的 tip 相连。随后的交易与往常一样不断地附加到后面。一旦有向主 tangle(main tangle) 的提交(commit),离线的子 tangle 就会通过创建交易 8 得到最终确定,它会将离线 tangle 与当前在线 tangle 的 tip 进行合并。随后,交易 8 变为一个合法的 tip,并且可供后面的在线交易进行选择和验证。在线连接到交易 8 的下一个用户,将会在他们的验证路径上包含所有的离线交易。

请注意,正如上文,只有当离线交易跟其他交易一样,被加入到主 tangle 中,离线交易才会被完全确认。如果离线分支中的任何交易与主 tangle 冲突,交易 1 到 8 就不会被确认。再一次的,它可能会花费随后几个交易的时间,直至冲突对于主 tangle 的所有(或者大部分) tip 都可见(也就是上面所说的 “双花”)。

本文对应的英文原文地址为:https://github.com/noneymous/iota-consensus-presentation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10320.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

非同质化代币(NFT)概述

非同质化代币(NFT)概述 前言一、NFT是什么?同质化——Fungible非同质化——Non-Fungible区别分析代码分析ERC20可选函数必要函数事件 ERC721事件必要函数可选函数于ERC721Metadata接口下的于ERC721Enumerable接口下的 二、历史与发展起源1993…

简析Starcoin在新一代公链方向的探索

文章来源:币圈百科 作者:一棵杨树X 据悉,Starcoin主网即将上线,项目方日前发起了为期一个月的《Starcoin区块链安全赏金计划》(3.24-4.24),为部署主网上线做最后一公里的检验与冲刺。&#xff…

中银国际在以太坊上发行代币化票据?三种可能,扑朔迷离!

* * * 原创:刘教链 * * * 号外:今天在“刘教链Pro”发表了一篇内参文章,《内参:对币本位高抛低吸策略的一点儿思考》(次条),以及一篇原创文章《他提案将SEC主席Gary Gensler撤职》(…

DAO概念板块代币大盘点,你又把握了几个?

你的认知决定你能够走多远! ​​ 大家好我是小哲,你的认知决定你能够走多远,元宇宙的火爆已成定局,下面就来聊聊DAO模块。你又认识多少呢? 火爆的dao大家应该都有听到过DAO这个概念,但是可能对于DAO具体是什么还不太了解。说白了,其实DAO很好理解,他是一个去中心…

Paradigm联合创始人2017年神文:区块链是元宇宙的基础层

这是一篇看完让我毛骨悚然,汗毛直立的文章。 作者Paradigm联合创始人Fred Ehrsam 发表于2017年2月,写的却是4年后当下的流行:元宇宙、区块链、Crypto、VR…… 这认知差距,远超我的想象,2017年2月,大多数人…

三款软件,让你的文字转语音更简单

文字转语音软件我使用过很多,其中也有我觉得非常好的,那我就从中挑选三个我觉得使用性、实用性都非常好的软件推荐给你们。 1:nopapp 这是一款在线文字转语音软件,只能网页端进行使用。 里面有四种类型的声音,女性&…

文字转语音怎么做?分享三种配音方法,真人语音很逼真

文字转语音怎么做?分享三种配音方法,真人语音很逼真 说到文字转语音或者配音,很多小伙伴都会习惯于自己配音,认为这样配出来的声音会更加的自然。但是不得不承认的是,如果没有一点点的配音功底,那么自己配…

如何将文字转化为语音?方法超级简单,立马就能学会配音

很多人问:声音不好听可以直接文字转语音配音吗? 当然可以了。 我可以放心的告诉你,配音完全不必担心声音不好听,虽然现在做自媒体短视频和广告的人非常多,但99%的人都不是专业配音员出身,自己配出来的音差…

如何将视频中的语音转成文字?3招教会你实现转换

有时候我们从手机或者电脑接收到的视频,需要对其中的文字内容进行整理,形成一份电子文档。如果大家还一直用传统的方式,通过观看视频进行手动整理,那未免有些浪费时间。想要快速得到视频中的文字内容,我们不妨试试一些…

怎么将视频里的语音转成文字?不妨试试这三款转文字工具

现如今,很多的学生会喜欢在网上看辅导视频,能够方便我们随时查看,快速学习。当你需要整理视频中的教学笔记的时候,是怎么进行操作的呢?还是在用边看边记录的方式吗?如果视频较长的话,那记录起来…

文字转语音效果哪家强?

文字转语音效果哪家强?小伙伴们不妨来听一段AI合成的朗读,这效果如何?是不是非常自然?是不是吊打市面上一大批文字转语音工具,这其实就是微软的TTS。解说音频:00:0000:32微软语音合成助手,直接白…

三招教你图片文字转语音怎么转

随着数字化时代的到来,人们对于数字信息的获取和处理需求越来越大,而图片文字转语音技术正是为了满足这一需求而诞生的。这项技术不仅可以辅助视力障碍者,让他们能更轻松地获取信息和理解内容,而且也可以帮助正在学习外语的人们练…

有没有把语音转为文字的软件?这几个转换软件你值得收藏

我们在日常的工作和生活中,应该经常会遇到需要将音频转换成文字的情况吧。相信大部分的小伙伴都会选择直接使用转换软件进行音频转文字的操作,但在使用的过程中就会发现,有些软件会在使用次数、音频时长上面有所限制,导致我们会转…

一款文字转语音工具

环境 ubuntu 18.04 64bitNvidia GTX 1070Ti 8G 简介 Tortoise 是一个开源的 Text-To-Speech 程序,具有强大的文本转语音功能和高度逼真的语音和语调。 搭建 创建一个全新的 python 虚拟环境 conda create -n tts python3.8 conda activate tts 然后,拉取…

怎么将语音转换成文字?这两种转换方法极其简单

怎么把语音文件转换成文字呢?大家在日常中可能不会经常使用到语音文件,但是不代表没有,在一些比较重要的会议场合下,我们可能会选择使用录音工具来将会议内容记录下来,防止自己会错过什么重要内容。当我们将录好的音频…

怎么把文字转语音?这三个方法教你搞定文字转语音

相信大家对这个问题并不陌生吧!当我们在写论文或者工作时,会有很多的文件需要查阅,长时间盯着文字看难免会觉得眼睛疲劳,其实这时候我们可以将文字内容转换成语音播放出来,就能解放双眼双手,那么我们怎么把…

CHATGPT,从入门到精通「常识篇」

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 「1、什么是 ChatGPT?」 通俗讲,ChatGPT 就是一个基于 GPT 模型的 AI 聊天机器人。 ChatGPT Chat GP…

拥抱还是革命,ChatGPT时代 AI专家给出15条科研生存之道

来源:专知 微信号:Quan_Zhuanzhi 你是学术机构的人工智能研究员吗?你是否担心自己无法应对当前人工智能的发展步伐?您是否觉得您没有(或非常有限)访问人工智能研究突破所需的计算和人力资源?你并不孤单; 我们有同样的感觉。越来越多的人工智能学者不…

【企业架构设计实战】应用架构设计

​​​​​​​ 目录 前言 企业IT架构概述 业务架构向IT架构转化的过程

企业数字化转型和升级:架构设计方法与实践

目录 企业架构整体结构 企业架构的驱动力 企业架构的基本概念