核心概念:什么是DAG?
我们理解一下什么是DAG。

-
传统区块链(如比特币、以太坊): 是一个链式结构,每个区块都指向前一个区块,形成一个线性的、单向的链条,新的数据(交易)必须被打包到最新的区块里,然后添加到链的末端,这导致了“区块”和“确认时间”的概念,有时会面临性能瓶颈(如交易排队)。
-
有向无环图: 是一种数据结构,它由顶点和边组成,满足两个条件:
- 有向: 边有方向,从一个顶点指向另一个顶点。
- 无环: 不存在任何循环路径,你不可能从某个顶点出发,沿着边的方向走一圈又回到这个顶点。
在Byteball中:
- 顶点:就是一笔交易。
- 边:代表一种因果关系,如果一笔交易A引用了另一笔交易B(A支付给B,或者A是B的回复),那么就有一条从A指向B的边。
这种结构的优势在于,交易可以并行确认,而不是像链式结构那样必须排队等待,新的交易可以同时连接到多个已存在的交易上,从而大大提高了系统的吞吐量。

Byteball如何利用DAG技术?
Byteball将DAG技术应用于其核心的数据账本和支付系统,它不仅仅是交易,还包括了所有系统数据(如资产定义、合约、消息等),都以交易的形式存储在DAG中。
关键机制:单元 和 父单元
-
单元:Byteball中的基本数据单位,相当于区块链中的“区块”,一个单元可以包含一笔或多笔交易,每个单元都有一个唯一的标识符。
-
父单元:每个新单元(除了创世单元)都必须引用至少一个(通常是多个)已经存在的单元作为其“父单元”,这个引用关系就是DAG中的“边”,通过引用父单元,新单元就与整个DAG网络连接起来,并继承了这些父单元所包含的信息。
如何解决“双花”问题?—— 确定最终性
这是DAG系统面临的最大挑战:由于交易可以并行,如何确定哪个交易是有效的,哪个是无效的(比如双花攻击)?Byteball通过一个名为“主要链”(Main Chain)的巧妙机制解决了这个问题。

主要链的构建过程(类似“最长链”规则):
-
单元权重:每个单元的权重不是固定的,而是根据其“祖先”的数量来计算的,一个单元的祖先越多,意味着它“看到”并确认的历史数据越多,它的权重就越大。
权重(单元A) = 1 + 所有父单元的权重之和
-
构建主要链:
- 系统会持续寻找当前权重最大的单元,这个单元被认为是“最可信”的,因为它建立在最多历史数据之上。
- 从这个权重最大的单元出发,沿着它的父单元路径,不断寻找权重最大的父单元,一直追溯到创世单元。
- 这样形成的一条路径,就是主要链。
-
确定最终性:
- 一个交易一旦被包含在主要链上,或者被主要链上的单元所确认,它就被认为是最终确认的。
- 攻击者想要篡改一个交易,就必须重新计算出一个比当前主要链权重还长的链,这在计算上是极其困难的(类似于比特币的算力攻击),因此保证了系统的安全。
简单比喻: 想象一个巨大的家族谱系(DAG),每个人(单元)都有父母(父单元),主要链就像是这个家族中最“显赫”的一支血脉,通过计算每一代人的“影响力”(权重)来追溯,最显赫的那一支,就是大家公认的“正统”。
Byteball DAG技术的核心优势
-
高吞吐量和即时确认:
- 并行处理:交易可以并行添加到DAG中,无需等待打包进区块,理论上,只要网络带宽允许,交易处理能力可以无限扩展。
- 即时确认:交易一旦发出,几乎可以立即被网络接收和验证,用户不需要等待“区块确认”,只需等待交易被纳入主要链,这种确认速度远快于比特币。
-
无需挖矿,交易费用极低:
- 由于没有像PoW那样的竞争性挖矿,Byteball不产生区块奖励。
- 系统通过一种名为“见证人”(Witnesses)的机制来维护网络安全,见证人是经过用户选择和信任的一组节点,它们负责将交易打包成单元,并从中获得少量费用。
- 用户发送交易时,可以选择支付给见证人一笔很小的费用(以字节或GBYTE计),也可以选择不付费,但这样交易可能不会被见证人打包,确认速度会变慢,这使得小额支付成为可能。
-
强大的数据存储能力:
不仅仅是支付,任何结构化的数据(如合同、身份证明、物联网数据)都可以作为交易被写入DAG,Byteball内置了简单的数据格式,使得去中心化应用的开发变得非常灵活。
-
去中心化的身份和资产系统:
- 身份:你的身份就是你的钱包地址,由你私钥完全控制,无需注册或第三方验证。
- 资产:任何人都可以在Byteball上轻松创建自己的代币(资产),定义其名称、总量、描述等,并通过DAG进行发行和交易。
Byteball DAG vs. 区块链DAG(如IOTA)
这里需要做一个重要的区分:Byteball的DAG和IOTA的Tangle(缠结)虽然都是DAG,但设计哲学和实现细节有显著不同。
| 特性 | Byteball | IOTA (Tangle) |
|---|---|---|
| 数据单元 | 单元:可以包含多笔交易、数据和元数据。 | 交易:通常指代一笔单一的支付或数据传输。 |
| 交易发起 | 用户驱动,用户创建一个单元,引用父单元。 | 节点驱动,节点在处理新交易时,必须做两次“随机”的确认工作(引用其他交易)。 |
| 安全性 | 见证人机制,由一组可信的实体维护主要链,抗量子攻击能力强(使用基于哈希的签名)。 | 完全去中心化,理论上没有中心化风险,但早期曾发现中心化问题,抗量子攻击较弱(使用WOTS+签名)。 |
| 代币 | GBYTE:总量固定,1GBYTE = 1000字节。 | MIOTA:总量固定,用于机器间的微支付和数据交易。 |
| 主要用途 | 支付、去中心化数据存储、通用DApp平台。 | 物联网机器间的数据和价值交换。 |
核心区别:IOTA的Tangle更像是一个“自下而上”的网络,每个参与者(节点)在发起交易时,都在为网络做贡献(确认其他交易),而Byteball的DAG更像是一个“自上而下”的模型,由专门的“见证人”负责打包和确认,普通用户主要发起交易。
Byteball的DAG技术是一次革命性的尝试,它成功地:
- 颠覆了链式结构:用DAG替代了区块链,实现了交易的并行处理和即时确认。
- 解决了最终性问题:通过“主要链”和“单元权重”机制,巧妙地在去中心化的DAG上建立了秩序和确定性。
- 构建了一个多功能平台:它不仅仅是一个加密货币,更是一个集支付、数据存储、身份和资产发行于一体的去中心化生态系统。
虽然Byteball的市场认知度和用户规模不如比特币或以太坊,但它在DAG技术领域的探索和实践,为后来的许多项目(如Hedera Hashgraph、Avalanche等)提供了宝贵的经验和借鉴,是区块链技术发展史上一个非常重要的里程碑。
