Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

模块化区块链: 数据可用性DA

何幕之之rl
206 0 0

* H- p5 J* h7 {+ z- ?. ]) X讲到模块化区块链,数据可用性DA是一个绕不过去的主题。无论是 以太坊 大热的EIP-4844提案还是通用的DA层解决方案Celestia
5 _' X# V: _2 g! T; N% _: M
# A( T: T$ k- ]0 v, 都跟DA 有着密不可分的关系。 那DA 到底是什么呢?为什么DA 方案能提升区块链网络的性能?
' F. j+ n. J! I2 d; D  s4 h' ^
) t: o( i+ F, g! Q# C  f 1671869579420763.jpg
" F" Z$ }6 H( P9 |- |
' r- H! r# [) q& e$ I' ^在讲DA 之前,我们先来思考一个问题: 怎么确保区块中包含的交易是在链上实际发生的?换种说法,在区块链网络中实际发生的交易是否被真实地包含在区块中呢? DA 即保证数据在链上可用,让区块信息能真实反映实际的链上交易情况。3 V4 t, m% [% l- ]6 X1 C
/ \, k0 g' ]2 A& ~% Z0 b
在区块链网络中通常包含2类节点:全节点和轻客户端。
! N, v3 E! q7 ?4 [) d# w
% v- |/ \& Z3 h. G/ {' \  ^7 u1) 全节点;下载区块中的所有数据进行验证,能够最大程度地保证DA.5 ~  r# M. Y) X" E, W; q) [

8 S! K- A9 ]% ?; o5 w4 F1 Z2)轻客户端。只下载区块头进行验证,并假设区块包含的都是有效交易。 这里存在的问题是,恶意的区块生产者可以通过构建一个包含无效交易的区块,去欺骗轻客户端。
4 g! Y$ x% s; O0 Y, S/ J
$ e, a/ M! y4 E  ~6 j4 Z 1671869622227511.jpg
- |' m$ W* `/ X4 k* U; u: U4 S' F0 M5 L- @1 Y
那竟然轻客户端的安全性较差,网络中全部运行全节点不就好了吗? 理想跟现实之间的差距在于成本,运行全节点需要下载全部的区块数据(存储、带宽等要求高)。 因此,除了专业的节点运营商,普通用户没有动力去运行全节点。
5 J$ I# E! w& M" s
: ^, |8 |6 A' _) p# j, ~那轻节客户端还有什么办法可以保证安全性呢? 聪明的开发者想到用欺诈证明解决轻客户端的安全性问题,简单来讲,与轻客户相邻的全节点可以通过发送欺诈证明,告知轻客户端区块无效。 因此,从理论上讲,轻客户端+欺诈证明能实现全节点级别的安全性(前提是至少有一个诚实全节点发送欺诈证明)。
! v  a1 o. |2 [, K* _- O
5 V: z- S, v* a0 q 1671869629264713.jpg
' k4 w  _' a0 s3 @5 Q% A/ g/ u8 z  h0 L$ u" e& P
那轻客户端的安全性问题就解决了吗?不。 原因是,恶意区块生产者可以选择扣留一部分数据不发布,此时诚实全节点会发出警告。如下图所示,区块生产者在T3 补全所有区块数据。# u  O  P1 ?; u4 |
+ ?) K/ }1 d, D) }
1671869636109019.jpg
# U% D$ p! t1 ]4 _. x# A: N
$ S. C3 P% d0 _2 R) |! w4 G因此,欺诈证明并不是有效的解决方案。 选择不发布数据不是唯一可归因错误。比如在T3 阶段,很难去证明到底是恶意区块生产者扣留了部分数据,还是检验节点的恶意误报。+ u7 F( g5 Y# M5 c2 d) c& L0 ~% h

/ P9 i. d& v8 O2 c6 w+ d0 Y; t 1671869642619825.jpg
$ G+ I0 [( a4 _. i; q8 `& s$ a2 c! |7 J7 B' e, v5 H0 i. i3 s+ j
那么,验证节点对恶意区块的警告行为是否因受到激励? 此时就会面临一个三难困境。 1) 如果激励为正,此时恶意验证节点可以通过发出虚假警报获利; 2) 如果激励等于0,意味着恶意验证者能零成本发起DOS 攻击; 3) 如果激励为负,可能只有为爱发电的节点才愿意做。/ K& y/ w  G& Q  Y& v! ]3 `
1 y: u; J% `5 z1 m* U- J2 ~4 N0 k
1671869650780740.jpg 7 d: Y/ k! w  Q) B: ~; `/ H. r9 S  j% q7 E
! e& `( A) g+ c; i: `) B- r
说了这么多,到底有没有办法可以解决轻客户端的安全性问题?有。 就是我们接下来要讲的数据可用性抽样,即轻客户端只要随机下载一部分数据进行验证,就能确保数据的可用性。 关于DA Sampling 的底层技术实现,此推文不做深入探讨。通过一个简单的场景模拟,简单了解下它的逻辑实现。: V! M7 I5 ^/ g6 d* x4 T: L5 B, w

+ h# O) j; w" P场景如下: 现在有2枚硬币:1枚两面都是数字;1枚一面是数字,另外一面是图案。 现在2枚硬币给到你,怎么确认哪枚是两面都是数字的呢?( W- ~1 p( B3 K5 c( P

" Z2 I- |6 x* \/ L- p9 _3 G/ G 1671869661737029.jpg & T# @! g" a8 z( w$ [6 u8 W, V- f
  E# u5 b" S" A* e6 I
其实很简单,我们只需要无差别地掷硬币记录情况即可。 如果前2次掷的都是数字,意味着这枚硬币有(1-0.5^2)的概率是2面都是数字的那枚。同样地,如果前n次掷的都是数字,此时2面都是数字的概率是(1-0.5^n). 只要重复这个过程20次,上述可能性将变成99.9999%。
+ i$ G, g% X- o1 Q' Z1 @0 n6 u  T4 o$ i! t7 L; y) l1 W. k
1671869668022217.jpg
+ E" U. P" }/ n+ d; r8 i. r# [" n* p5 @& e: T5 e
DAS 的逻辑实现正是基于上述原理。 轻客户端无需下载所有的区块数据,只需要随机下载少量数据进行验证,就能保证数据可用性。 更直观地,如果区块的大小是4MB, 轻客户端进行随机20次1kb的数据抽样。意味着只需要下载0.5%的数据,就能够实现置信水平高达99.9999%的数据可用性。- }" K' {' c  j
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

何幕之之rl 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1