欢迎莅临 IEEE HotICN 中文社区,IEEE HotICN 国际学术会议网站: https://hoticn.com, https://hoticn.cn。

ByShard: Sharding in a Byzantine Environment

区块链 韦帆

传统区块链系统往往选择:

  • 全量复制(所有节点存全部数据)
  • 每笔交易全网共识

结果是:安全有了,但吞吐量惨不忍睹

一旦数据量或交易规模上来,系统直接“卡死”。

那有没有可能:

既能分片扩容,又能抗拜占庭攻击,还能支持数据库级事务?

ByShard给出了一个非常系统且工程可落地的答案。

ByShard: Sharding in a Byzantine Environment插图

一、问题分析

真正的难点在于跨分片事务。对于交易“从 A 转 100 给 B“

如果:

  • A 在 shard1
  • B 在 shard2

那这笔交易必须:

1、 两个 shard 都成功
2、要么一起 commit,要么一起 abort
3、不能出现「扣了A钱但B没到账」

也就是必须满足:原子性 + 一致性 + 隔离性(ACID)

但在 拜占庭环境(恶意节点/网络攻击/崩溃) 下:

  • 不能简单用 2PC
  • 不能信任任何单个 shard
  • 不能中心协调

传统数据库方法直接失效

二、Orchestrate-Execute Model(OEM)

把跨分片事务拆成两阶段:
Orchestrate全局达成 commit/abort 共识
Execute 执行数据更新

优点:每个 shard 最多只需 2 次共识。

三、Byzantine 版 Two-Phase Locking

数据库经典的:

Two-Phase Locking(2PL)

也移植到了拜占庭系统!

实现:Serializable、Read Committed、Read Uncommitted

多级隔离

也就是说:这是少见的「真正支持数据库级事务语义」的区块链/分布式账本系统。而不是只支持 UTXO 那种简化模型。

四、实验效果

ByShard: Sharding in a Byzantine Environment插图1
ByShard: Sharding in a Byzantine Environment插图2

1、高吞吐:低冲突时所有协议都有 excellent throughput

    2. 真正可扩展:增加 shard 数量,每个 shard 工作量下降

    3. 可自由权衡不同协议在:latency、isolation、abort rate之间形成 trade-off

    喜欢 (0)