Hegel2011的博客

读书 - 工作 - 生活 - 笔记

区块链功课

https://www.igvita.com/2014/05/05/minimum-viable-block-chain/

Google的工程师讲解的P2P去中心化现金交易的底层技术—区块链(Block Chain),然后发现区块链的一大基石 是公钥私钥的加密技术,所以作者拿出了经典的Alice Bob来作为举例。

中心化的支付技术

目前的支付系统流行的是triple-entry 记账方式。三联为Alice Bob 和Chuck(中心节点,比如银行)都记录着交易记录, 以保证交易的可靠性和非重复性。 这套系统运作的前提是大家都信任Chuck。

去中心化的难点

1. 一致性问题

去中心化后,系统变成了分布式的,而分布式在一致性方面先天弱于中心化的。处理Double-spending的问题是一个难点。 因为一个交易发生后,系统中的其他参与者往往并不知道已经发生,可能还认为Bob拥有大量的钱财。在一个小的系统里, 可以通过全部完成通知后才认可交易成功,而这对一个大规模系统基本不可行。CAP理论表明P2P系统很难支持强一致性,但是,区块链技术 的亮点在于实现了weak(er) consistency。

2. Sybil attacks (西比尔攻击)

该攻击的特色在于虚拟出许多虚假的交易者,让真实的交易者误以为消费已经坐实。解决办法是增加造假的成本,同时保持验证的 成本够低,通过经济杠杆来从结构上阻止有人愿意造假,因为得不偿失就是傻事了。

但这带来的一个问题就是单个交易成本会很高,如果交易的手续费高于交易本身,那么这套系统也是没法运行的。

Block的概念

Block就是一组交易的集合,不单如此每个Block还记录了前一个Block,从而构成了Block Chain区块链。 每个交易者都可以将有效的交易集合生成一个block,生成block需要耗费大量的计算资源。 而将验证成本集中成Block的好处就是降低了每笔交易的成本,或者说交易集合共同承担了手续成本。而对交易有效性的、一致性、Sybil attacks的 防范都基于Block来进行。

Block Chain的冲突

因为所有的参与者都可以生成Block,所以一笔交易可能会加入在多个Block里。此时就构成了冲突,出现了chain fork。Block Chain对此的解决方式很简单粗暴, 永远选择最长的那个chain fork作为“真实的”交易链,并丢弃之前的交易分支。

使用的技术都是现成的:

  • accounting
  • cryptography
  • networking
  • proof-of-work

然而集合起来就又构成了一个新的精巧的方案。

Included file 'twitter_sharing.html' not found in _includes directory