二,比特币系统 网络设计

BTC网络在设计时,主要考虑simple,robust的特性,而非efficiency。其在 应用层 执行的是 block chain,在 底层 执行的是 P2P overlay network。这样的网络设计,实现了 用户之间 点对点 的连接,而非通过第三方进行交易,有利于穿透 CP防火墙设置。
0.0 BTC网络 VS 其他网络
BTC网络中,所有节点均平等,没有所谓 super/master node 之说,一个用户要进入BTC网络,只需知道一个seed node 即可。
0.1 BTC网络,用户节点以 flooding的方式扩散Info
step1:用户节点 将info传播给其 邻居节点
在选取邻居节点时,并没有考虑底层的拓扑结构,而是随机进行选取,如:一个中国的用户节点可能将一个加利福尼亚州的节点 选作邻居节点。这种设计方式 以 牺牲系统 efficiency 为代价,增强了 网络的 robust。
step2:邻居节点 收到info后,在将info传播给其 邻居节点,对于已经接收过Info的邻居节点,将不再转发此Info。
通过循环以上2步操作,info将在整个BTC网络中扩散开来。
0.2 如果 待上链的交易 中,存在2个相互矛盾的交易,则视first上链的block不同,可能将这2笔交易中任意1笔写入block chain,而将另外一笔交易作废。
假定,待上链交易中存在2笔相互矛盾的交易:A->B , A->C,当待上链交易传播到网络中后,如果一个节点先收到A->B,并将其写入到block chain,其他节点在收到A->B时,则不会将其写入新发布的block,如果其first收到的是A->C,由于block chain中以有A->B这个交易,其会将A->C视为非法交易,也不会将其写入到新发布的block中。

BTC网络的 这一特性 会导致 double spending 的风险,如果 某恶意节点 算力足够强,将含 A->C(假设其为非法交易)的
分叉链 变为了最长的 合法链,则 A->C 将会被写入到 block chain中。为了防止这种恶意攻击,BTC系统规定,after某一交易被写到block,其后在跟6个block,该交易才会被 confirmation。

0.3 新发布的block 在BTC网络中的传输方式,与 新交易的 传输方式相同,均是通过 flooding的方式,在全节点中扩散。当block较大时,将影响其在BTC网络中的传播速度。
0.4 BTC网络存在问题
在 去中心化网络 中普遍存在几个问题:
1,BTC网络 采取的是 best effort 的传播方式,由于 网络传输延迟 的影响,可能某些交易在网络中 只能被部分 节点接受到。
2,BTC网络中的一些节点,可能会故意不转发 某些合法交易,也可能会 故意转发 某些不合法交易。
3,去中心化的网络,没有第三方服务平台,因此,当交易出现问题时,用户无法 对商家进行投诉,要求商家兑现交易内容,或,退款(回滚钱款)。

note that:即便是 有 第三方服务平台 的 那些 电商网站,其返还交易金额的方式,也不是通过 交易回滚
实现,而是通过产生一笔新的交易(商家->用户),完成 退款 操作。

猜你喜欢

转载自blog.csdn.net/u014765410/article/details/122611050
今日推荐