IOTA 学习笔记(一):IOTA 是什么?从区块链到 Tangle

提到分布式账本,大多数人首先想到的是比特币、以太坊这类传统区块链系统。它们通常采用"区块 + 链"的结构:交易先被打包进区块,区块再按照时间顺序一个接一个连接起来,形成一条不断增长的链。这个结构非常经典,也奠定了后来区块链系统的基本范式。

但 IOTA 从一开始就选择了另一条路线。它并没有把自己设计成一条传统意义上的区块链,而是提出了 Tangle 这一基于 DAG 的账本结构。理解 IOTA,首先要理解这一点:IOTA 的早期独特性并不只是"又一个数字货币项目",而是它试图用一种不同于链式区块结构的方式来组织交易和维护账本。

1. 为什么会出现 IOTA

传统区块链在安全性、去中心化和可验证性方面有很强的优势,但也带来了一些典型问题。例如,交易需要被打包进区块,区块生成需要时间;交易处理能力受到区块大小、出块间隔和共识机制影响;在很多公链系统中,用户还需要支付交易手续费。

这些问题在普通金融转账场景中可以被接受,但如果把视角放到大量设备频繁交互的场景中,问题就会变得更加明显。假设未来有大量设备需要不断交换数据、状态或价值,那么每一次交互都支付较高费用、等待较长确认时间,就不太适合高频、轻量、低成本的机器交互场景。

IOTA 正是在这样的背景下受到关注。它早期面向的核心设想,是为机器经济、物联网设备和低成本数据交换提供一种轻量级的分布式账本基础设施。也就是说,IOTA 想解决的问题不是单纯"再造一个比特币",而是探索一种更适合高频、小额、设备间交互的账本结构。

2. 传统区块链的基本结构

为了理解 IOTA,先简单回顾一下传统区块链的结构。

在传统区块链中,交易通常不会单独成为账本的主要组织单位,而是会被打包进区块。每个区块中包含一批交易,并且会引用前一个区块的哈希值。这样一来,区块和区块之间就形成了一条顺序明确的链。

可以简单理解为:

复制代码
Block 1 → Block 2 → Block 3 → Block 4

这种结构的好处是非常清晰。账本有明确的先后顺序,历史状态容易追溯,篡改某个区块会影响后续所有区块,因此安全性较强。

但这种结构也有局限。因为交易需要进入区块,区块又需要按照一定节奏产生,所以系统吞吐量和确认速度会受到链式结构本身的影响。尤其在网络拥堵时,用户往往需要支付更高费用,才能让交易更快被确认。

因此,传统区块链更像是一条"单线排队"的账本系统。它稳定、清晰、容易理解,但在高并发、小额、高频交互场景下,可能会遇到效率和成本方面的挑战。

3. IOTA 为什么没有采用传统区块链结构

IOTA 早期最重要的设计选择,就是没有沿用"区块 + 链"的模式,而是提出了 Tangle。

Tangle 可以理解为一种基于 DAG 的账本结构。DAG 的全称是 Directed Acyclic Graph,中文通常翻译为"有向无环图"。其中,"有向"表示图中的连接关系有方向,"无环"表示沿着方向走不会绕回到原来的节点。

如果说传统区块链更像一条线,那么 DAG 更像一张不断扩展的图。

传统区块链大致是这样:

复制代码
Block 1 → Block 2 → Block 3 → Block 4

而 DAG 结构更接近这样:

复制代码
      Tx2
     ↗   ↘
Tx1       Tx4
     ↘   ↗
      Tx3

在早期 IOTA 的 Tangle 设计中,交易本身就是账本结构中的节点。新交易不是等待矿工把它打包进区块,而是需要引用并确认之前的交易。这样一来,交易之间会逐渐形成一个相互引用、相互确认的图结构。

这就是 IOTA 早期与传统区块链最根本的不同:传统区块链强调"交易进入区块,区块连接成链";IOTA Tangle 强调"交易直接参与账本结构,交易之间形成图状确认关系"。

4. Tangle 的基本思想

Tangle 的核心思想可以概括为一句话:

每一笔新交易在加入账本时,需要引用并确认之前的交易。

这听起来很简单,但背后代表了一种完全不同的账本组织方式。

在传统区块链里,普通用户提交交易,矿工或验证者负责打包和确认交易。用户和维护账本的角色相对分离。

而在 Tangle 的设想中,发送交易本身也参与了确认过程。新交易进入网络时,需要选择一些尚未被后续交易确认的交易,并对它们进行引用。随着越来越多交易加入,旧交易会不断被后续交易间接确认,整个账本的可信度也逐渐增强。

这带来了一个很有意思的设计思路:系统越活跃,理论上参与确认的交易也越多。也就是说,交易增长不一定只是负担,也可以成为推动确认过程的一部分。

当然,这只是理解 Tangle 的入门视角。真实系统还需要考虑冲突交易、权重计算、网络延迟、攻击防护、最终确认等问题。但从学习角度看,第一步先抓住这一点即可:Tangle 不是把交易装进区块,而是让交易之间互相引用、互相确认。

5. IOTA 早期强调的几个特点

正因为采用了 Tangle,IOTA 早期经常强调几个特点:无区块、无矿工、无手续费、高并发潜力。

第一,IOTA 早期没有传统意义上的区块。交易不是先进入内存池,再等待被打包进区块,而是直接作为图结构中的节点加入账本。

第二,IOTA 早期没有传统意义上的矿工。确认过程不是完全依赖一类专门的打包者,而是让新交易在提交时参与确认旧交易。

第三,IOTA 早期强调无手续费。这个特点和它面向物联网、机器经济、小额高频交互的定位密切相关。因为如果每一次设备交互都需要支付明显手续费,那么很多小额交互就失去了经济意义。

第四,IOTA 早期强调并发扩展潜力。由于账本不是单线结构,而是图结构,因此它在设计目标上希望更适合大量交易并行发生的场景。

这些特点共同构成了 IOTA 早期最有辨识度的技术叙事:它不是传统区块链,而是试图用 Tangle 这种 DAG 账本来支撑新型分布式应用。

6. 但今天学习 IOTA,不能只停留在早期 Tangle

不过,学习 IOTA 时需要特别注意一个问题:IOTA 的技术路线经历过多次演进,今天的 IOTA 已经不能只用早期 Tangle 来概括。

早期 IOTA 为了保障网络运行,引入过 Coordinator 机制。Coordinator 可以帮助网络确认交易,但也带来了中心化争议。因此,IOTA 后续长期推进去中心化改造,希望逐步摆脱对 Coordinator 的依赖。

后来,IOTA 又经历了 Stardust、IOTA 2.0、Rebased 等技术路线变化。尤其是 Rebased 之后,IOTA 的技术重点已经不只是早期的 Tangle 账本叙事,而是进一步引入了新的共识机制、对象模型和 MoveVM 智能合约能力。

这意味着,今天学习 IOTA 要分清两个层次:

第一,历史层面的 IOTA。

这个层面重点理解 Tangle、DAG、无区块、无矿工、无手续费、Coordinator、Coordicide 等概念。

第二,当前架构层面的 IOTA。

这个层面重点理解验证者网络、共识机制、对象模型、MoveVM、Package、Object、Gas、CLI、Localnet 和智能合约开发。

如果只看早期资料,很容易把 IOTA 简单理解成"一个 DAG 项目"。这个理解并不完整。更准确的说法是:IOTA 早期以 Tangle 和 DAG 结构形成差异化,后来逐步演进为一个具备智能合约、对象模型和开发者工具链的区块链基础设施。

7. 本系列学习笔记准备怎么写

这个系列不会一开始就直接写命令,也不会只停留在概念介绍。我的计划是按照"概念 → 架构 → 工具 → 本地网络 → 合约开发 → 交易机制"的顺序,逐步理解 IOTA。

后续内容大致包括:

第一,继续理解 DAG 与 Tangle。

重点解释 DAG 是什么,Tangle 如何组织交易,Tip Selection 又是什么。

第二,梳理 IOTA 的技术演进。

从早期 Coordinator,到 Coordicide,再到 Stardust、IOTA 2.0 和 Rebased,理解 IOTA 为什么不断调整架构。

第三,学习当前 IOTA 架构。

包括验证者、共识、对象模型、MoveVM、交易、Gas 和链上状态。

第四,学习 IOTA CLI 和 Localnet。

通过命令行连接本地网络、查看地址、查询对象、提交交易。

第五,学习 IOTA Move 智能合约。

从最简单的 Counter 合约开始,理解如何创建对象、修改对象和查询对象状态。

第六,理解 IOTA 交易和 PTB。

学习可编程交易块如何把对象操作、函数调用和转账组合成一笔交易。

8. 小结

第一期先解决一个最基础的问题:IOTA 到底是什么?

简单来说,IOTA 最早的独特性来自 Tangle。它没有采用传统区块链的线性区块结构,而是用 DAG 组织交易,让交易之间形成相互引用、相互确认的图结构。这使得 IOTA 在早期就与比特币、以太坊等传统链式系统形成明显区别。

但是,今天学习 IOTA 不能只停留在早期 Tangle。随着技术路线不断演进,当前 IOTA 已经进一步引入对象模型、MoveVM 和智能合约能力。因此,理解 IOTA 需要同时看两个维度:一个是它从 Tangle 起步的历史逻辑,另一个是它在 Rebased 之后形成的当前架构。

下一期,我会继续梳理 IOTA 的核心概念:DAG 和 Tangle。重点回答三个问题:DAG 到底是什么?Tangle 如何组织交易?为什么 IOTA 早期认为这种结构更适合高并发场景?

相关推荐
学计算机的计算基1 小时前
LeetCode刷题笔记:数组专题四连击(LC53/56/189/41)
笔记·leetcode·排序算法
魔法阵维护师1 小时前
从零开发游戏需要学习的c#模块,第三十三章(暂停菜单)
学习·游戏·c#
小碗羊肉1 小时前
【Agent笔记 | 第五篇】LangChain&LangGraph
笔记·langchain
.千余1 小时前
【Linux】 TCP进阶详解:字节流、粘包问题、异常情况与UDP完整对比2
linux·运维·c语言·开发语言·经验分享·笔记·php
软件工程小施同学1 小时前
最新区块链论文录用资讯 CCF A--WWW 2026 12篇
区块链
Upsy-Daisy1 小时前
IOTA 学习笔记(二):DAG 与 Tangle 到底是什么?
笔记·学习
不羁的木木1 小时前
Form Kit(卡片开发服务)学习笔记05-进阶实战与性能优化
笔记·学习·harmonyos
段一凡-华北理工大学1 小时前
工业领域的Hadoop架构学习~系列文章05:Kafka消息队列 - 工业数据流传输
人工智能·hadoop·学习·架构·kafka·工业智能体·高炉炼铁智能化
零陵上将军_xdr1 小时前
后端转全栈学习-Day3-JavaScript 基础-1
开发语言·javascript·学习