PM组会区块链补充分享内容

2018.05.03

上一次 Meet Up 感觉区块链分享内容很空洞,尝试补充一下相关内容

区块链分享

概念(维基百科)

区块链(英语:blockchain 或 block chain)是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。中本聪在 2008 年,于《比特币白皮书》中提出“区块链”概念,并在 2009 年创立了比特币社会网络(英语:Bitcoin network),开发出第一个区块,即“创世区块”。

区块链共享价值体系首先被众多的加密货币效仿,并在工作量证明上和算法上进行了改进,如采用权益证明和 SCrypt 算法(英语:scrypt)。随后,区块链生态系统在全球不断进化,出现了首次代币发售 ICO、智能合约区块链以太坊、“轻所有权、重使用权”的资产代币化共享经济以及区块链国家(英语:Bitnation)。目前,人们正在利用这一共享价值体系,在各行各业开发去中心化电脑程序(Decentralized applications, Dapp),在全球各地构建去中心化自主组织(英语:Decentralized autonomous organization)和去中心化自主社区(Decentralized autonomous society, DAS)。

应用

分类

  • 国家货币
    e-Dinar 是突尼斯共和国政府用区块链技术发行的数字货币。也是第一个国家数字货币。
    eCFA 是塞内加尔共和国政府用区块链技术发行的数字货币。
  • 社区货币
    空卢(英文:Colu)公司在英国伦敦用区块链发行了东伦敦社区英镑( Local Pound, East London),主要为中小企业提供支付平台。2017 年 6 月止,空卢在全球发行了多款社区货币,共有 50,000 用户。
  • 私有链
    商业组织正在为各种应用开发分布式分类账和其他区块链启发的软件。由于这些软件被中心化机构控制,不具有区块链去中心化的属性,被称为私有链 (private blockchains)、区域链、或者联盟链。因为其应用范围与用分布式数据库处理信息的云端运算相似,2017 年 6 月止,不但没有任何私有链得到认可和使用,而且国际银行界纷纷退出所参与的项目;加拿大中央银行也在 2017 年 5 月放弃了国家私有链的开发,主要原因是与中央银行体系格格不入。相反,用现有区块链进行 ICO 众筹,来开发新型去中心化社区的项目,如雨后春笋般地涌现,得到不同凡响的结果。

以下是部分私有链开发项目:

  1. 德勤和 ConsenSys2016 年宣布计划创建一个数字银行 ConsenSys 计划
    R3 计划连接 42 家银行分布式分类帐,主要由以太坊, Chain.com, 英特尔和 IBM 牵头
  2. Microsoft Visual Studio 正在使 Ethereum
  3. Solidity 语言可供应用程序开发人员使用。
  4. SafeShare 保险提供一项区域链为基础的主打共享经济的保险,由英国保险巨头劳合社承保。
  5. 一家瑞士工业联盟, 包括瑞士电信, 苏黎世州银行和瑞士股票交易所, 以柜台买卖为原型的资产交易,基于以太坊科技的区域链。
  6. Context Labs a 2013 company developing blockchain enabled platforms
  7. R3 区域链联盟
  8. Digital Asset Holdings
  9. Satoshi Citadel Industries
  10. 方舟私有链 Arkblockchain 一个比特币并行区域链项目,特别面向供应链、电子商务、物联网、医疗服务、政务等应用开发的高可信任私有链。
    美国期货和期权交易所 11. CME 集团于 2017 年 4 月 11 日宣布,正在测试基于区域链的黄金期货平台的正处于最后测试阶段,该区块链是为比特币提供认证的对等网络。

  • ICO 代币
    首次代币发售(英语:Initial Coin Offering,简称 ICO),也称为 ICO 众筹,是用区块链筹集资金,以便开发新型区块链社区的项目。

  • 非营利组织
    比尔及梅琳达·盖茨基金会《基层项目/Level One Project》旨在利用区块链技术帮助世界各地 20 亿缺乏银行账户的民众。
    联合国世界粮食计划署的《区块建设/Building Blocks》旨在使粮食计划署越来越多的现金扶贫业务更快,更便宜,更安全。 “区块建设”于 2017 年 1 月在巴基斯坦开展了现场试点工作,将在整个春季继续进行。2017 年 6 月,该项目已经扩大到叙利亚等国,计划在 2030 年前在全球实现零饥饿。

  • 去中心化的社会网络
    回馈项目(Backfeed project)正在基于区块链分布式自治系统,开发共识主动性创建和分配价值的社会网络。
    亚历山大项目(The Alexandria project)是一个基于区块链开发的去中心化图书馆网络。
    它自主(Tezos)是一个根据它代币(token)持有者们的投票结果,让电脑程序自我演变,来实现区块链自主的开发项目。比特币区块链是一个去中心化的加密货币和支付的金融自主体系。以太坊区块链在前者的基础上增加了去中心化的智能合约的法律自主体系。它自主将在前两者的基础上增加去中心化的电脑程序开发功能,以便创建社会管理自主权体系。

  • 网络信息防删除

原理

基本原理

区块链的基本原理理解起来并不难。基本概念包括:

交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录;
区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;
链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。
如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中交易导致状态改变结果的确认

比特币中的区块链

客户端发起一项交易后,会广播到网络中并等待确认。网络中的节点会将一些等待确认的交易记录打包在一起(此外还要包括此前区块的哈希值等信息),组成一个候选区块。然后,试图算出一道难题(找到一个 nonce 串放到区块里,使得候选区块的 hash 结果满足一定条件(比如小于某个值))。一旦算出来这个区块在格式上就合法了,就可以进行全网广播。大家拿到提案区块,进行验证,发现确实符合约定条件了,就承认这个区块是一个合法的新区块,被添加到链上。

区块链的抽象特征:

分布式的数据记录本

  • 只允许添加、不允许删除
  • 其结构是一个线性的链表,由一个个“区块”串联组成
  • 新的数据要加入,必须放到一个新的区块中,而这个块(以及块里的交易)是否合法,可以通过一些手段快速检验出来
  • 维护节点都可以提议一个新的区块,然而必须经过一定的共识机制来对最终选择的区块达成一致
    比特币中的区块信息
  • 账户、地址:非对称加密
  • 交易信息:付款人地址、付款人签字、付款人资金来源、交易金额、收款人地址、收款人公钥、时间戳
  • 交易验证:是否已被处理过、信息是否合法
  • 区块:版本号、上一个区块 HASH、交易集合的 Merkle 树根 HASH、时间戳、难度指标、Nonce、交易个数


Hash 算法

  • 正向快速:给定明文和 hash 算法,在有限时间和有限资源内能计算出 hash 值
  • 逆向困难:给定(若干) hash 值,在有限时间内很难(基本不可能)逆推出明文
  • 输入敏感:原始输入信息修改一点信息,产生的 hash 值看起来应该都有很大不同
  • 冲突避免:很难找到两段内容不同的明文,使得它们的 hash 值一致(发生冲突)

Merkle 树


底层数据的任何变动,都会传递到其父亲节点,一直到树根

  • 快速比较大量数据
  • 速定位修改
  • 零知识证明

PoW 工作量证明

  • Proof of Work,通过计算来猜测一个数值(nonce),得以解决规定的 hash 问题。保证在一段时间内,系统中只能出现少数合法提案
  • 参与 PoW 计算比赛的人,如果有人恶意破坏,需要付出大量的经济成本
    分叉也能保证一致性:例如超市排队

hash 问题具有不可逆的特点,因此,目前除了暴力计算外,还没有有效的算法进行解决。反之,如果获得符合要求的 nonce,则说明在概率上是付出了对应的算力。谁的算力多,谁最先解决问题的概率就越大。当掌握超过全网一半算力时,从概率上就能控制网络中链的走向。这也是所谓 51% 攻击 的由来。

参与 PoW 计算比赛的人,将付出不小的经济成本(硬件、电力、维护等)。当没有成为首个算出的“幸运儿”时,这些成本都将被沉没掉。这也保障了,如果有人恶意破坏,需要付出大量的经济成本。也有设计试图将后算出结果者的算力按照一定比例折合进下一轮比赛考虑。

超市付款需要排成一队,可能有人不守规矩要插队。超市管理员会检查队伍,认为最长的一条队伍是合法的,并让不合法的分叉队伍重新排队。只要大部分人不傻,就会自觉在最长的队伍上排队。

SHA256D(Blockheader) < F(nBits)

  • 挖矿是参与维护比特币网络的节点,通过协助生成新区块来获取一定量新增的比特币
  • 每 10 分钟左右生成一个不超过 1 MB 大小的区块
  • 每个区块的成功提交者可以得到系统 12.5 个比特币的奖励(一定区块数后才能使用)
  • 每个区块的奖励一开始是 50 个比特币,每隔 21 万个区块自动减半,即 4 年时间,最终比特币总量稳定在 2100 万个

比特币的这种基于算力的共识机制被称为 Proof of Work(PoW)。目前,要让 hash 结果满足一定条件并无已知的启发式算法,只能进行暴力尝试。尝试的次数越多,算出来的概率越大。通过调节对 hash 结果的限制,比特币网络控制约 10 分钟平均算出来一个合法区块。算出来的节点将得到区块中所有交易的管理费和协议固定发放的奖励费(目前是 12.5 比特币,每四年减半)。也即俗称的挖矿。

很自然会有人问,能否进行恶意操作来破坏整个区块链系统或者获取非法利益。比如不承认别人的结果,拒绝别人的交易等。实际上,因为系统中存在大量的用户,而且用户默认都只承认他看到的最长的链。只要不超过一半的用户协商,最终最长的链将很大概率上是合法的链,而且随着时间增加,这个概率会越大。

评论