go之区块链

区块链入门

分布式账本

分布式账本(Distributed ledger)是一种在网络成员之间共享、复制和同步的数据库。分布式账本记录网络参与者之间的交易,比如资产或数据的交换。这种共享账本消除了调解不同账本的时间和开支

一个点对点网络是必需的,以及共识算法以确保在节点进行复制。分布式分类设计的一种形式blockchain系统,它可以是公共或私人的。但并不是所有分布式帐必须一定采用连锁块成功提供安全,有效的实现分布式共识:blockchain只是一种类型的数据结构被认为是一个分布式的分类帐。2016年,许多银行测试分布为国际收支帐  

中心化和去中心化

中心化

  • 中心化:几个经过认证的嘉宾在‘讲话’,所有其他人在听。(上课)

去中心化

  • 去中心化:每个人都可以‘讲话’,每个人都可以选择听或者讲。(英语角)  

区块链学习的结论

  • 比特币不是一种货币, 他是一个分布式的总账系统, 电子总账在每个参与者电脑上备份, 实时的同步和对账.

  • 总账记录这一定数量的比特币从一个参与者到另外一个参与者的过程, 每次记录都会广播到网络.

  • 比特币本身没有价值. 比特币的价值在于, 第一个通过去中心化的分布式信任系统实现了价值转移.

哈希函数hash

  • 世界上没有完全相同的两片叶子

  • 没一件事物都有自己的特征

  • Hash函数可以提取数据的特征

两个问题(hash函数的作用)

  • 隐私问题

    • 用hash函数来提取该事物的特征码,用sha256甚至以上来保证不被破解

  • 快速对账问题

    • 分布式现金系统,数字化货币一定要解决的问题

    • hash来解决快速对账问题,同样的内容的sha256一定是一样的

hash算法的安全性

  • 一般用sha256进行加密,遗传固定长度的特征码,64位,16进制,256位的二进制

可能性

  • 2的256次方,相当于1.157乘以10的77次方

hash碰撞

  • 指内容不同的两个事物取得了相同的哈希值,目前只有sha1出现了哈希碰撞

钱包的创建

  • 无需网络

  • 无需服务商

  • 甚至可以无需电脑(算盘)

分布式系统和一致性问题

分布式系统问题

  • 拜占庭将军问题

    含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。因此对一致性的研究一般假设信道是可靠的,或不存在本问题。

    此处指的就是如果需要同一时间行动或者执行的时候需要解决一致性的问题,否则就达成不了想要的结果.

  • 谁说了算, 听谁的

  • 由此可引申出如何解决一致性的问题

工作证明POW

  • 获取这个证明需要很长的时间

  • 但是验证它的真伪只需要很短的时间

  • 举例:高考的过程,和验证学历的真伪

  • 比特币采用了类似的方式, 他降低了信息传递的速率,增加了成为领导的难度, 通过区块链的短暂分叉。完美的解决了拜占庭将军的问题.

    • 比特币通过p2p技术实现账本的同步拷贝

    • 比特币通过增加发送信息的成本(pow)来增加信息传播的成本,降低信息传播的速率

    • 比特币通过区块链的长度,来判断数据的可信度

    • 交易中6个有效区块认为转账成功. 所以比特币的交易确认需要1小时

    • Pow通过sha256哈希来完成, 后面单独介绍

    • 工作证明的获取需要很长时间, 但是验证只需要很短时间.

    • 比特币的Pow算法导致大家通过矿池来挖矿, 矿池算力垄断. 有潜在的中心化风险.

    • 矿池挖矿只是在抢夺记账权,获得比特币,消耗大量电力,并无实际价值,我国计划取缔挖矿.  

比特币的价值

  • 价值转移

  • 区块链可以让物质的转移像信息流动一样快速便捷,同时又由全网的人一起来担保(全部参与的人一起担保就相当于天然存在存在不可证伪,除非其中51%的人统一口径违约),来保证在虚拟世界中的物质转移的可靠。

  • 价值转移,这就是“区块链”技术有望成为引领“第四次技术革命”的核心原因。

通货膨胀和比特币

什么是通货膨胀

  • 因货币供给大于货币实际需求,也即现实购买力大于产出供给,导致货币贬值,而引起的一段时间内物价持续而普遍地上涨现象。其实质是社会总需求大于社会总供给 (供远小于求)。纸币、含金量低的铸币、信用货币,过度发行都会导致通胀。

比特币的诞生

比特币的特点

  • 去中心化

  • 匿名交易

  • 避免双花(double spending)

  • 安全

比特币的启发和商业价值

  • 分布式账本

  • <!--价值-->专业的重要性

  • 金融,贸易,征信,物联网,共享经济等...

区块链解决的问题

  • 谁记账

  • 如何记账

  • 把信任某个组织或者人,改为信任某个机制

区块链技术的演化

区块链的演化

  • 区块链1.0 比特币

  • 区块链2.0 以太坊(智能合约)

  • 区块链3.0 hyperledger

数据结构 + 算法 = 计算机程序设计

区块链1.0 比特币

  • 数据结构

    • 张三

    • 李四

  • 算法(转账)

    • 张三 100 -10 = 90

    • 李四 55 + 10 = 65

  • 世界状态变化

    • 100, 55 -> function() -> 90,65

区块链2.0 以太坊

  • 数据结构

    • 整形,数组,map,结构体...

  • 算法(智能合约)

    • 图灵完备虚拟机中执行的函数

      • 图灵完备

区块链3.0 hyperledger

  • 数据结构

    • 任意数据结构

  • 算法(智能合约)

    • Nodejs , java, go, python编写的chaincode

  • 世界状态变化

    • 00110011 -> 全功能 function() -> 10110110

区块链与分布式技术

  • 区块链是一个自带对账功能的分布式账本

区块链的分类

  • 公有链

  • 私有链

  • 联盟链

区块链关键技术

  • 抗抵赖与隐私保护(密码学,hash,数字签名…)

  • 分布式共识(pow,pos,dpos,poe)

    • 共识协议(不止这么多)

      • POW:Proof of Work,工作证明。

        • 比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。

      • POS:Proof of Stake,股权证明。

        • POS:也称股权证明,类似于财产储存在银行,这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。 简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度,在股权证明POS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的利息(假定利息可理解为年利率5%),那么在这个案例中,利息 = 3000 * 5% / 365 = 0.41个币,这下就很有意思了,持币有利息。

      • DPOS:Delegated Proof of Stake,委任权益证明

        • 比特股的DPoS机制,中文名叫做股份授权证明机制(又称受托人机制),它的原理是让每一个持有比特股的人进行投票,由此产生101位代表 , 我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不了解也不关心比特币的人身上,类似演唱会的黄牛,大量囤票而丝毫不关心演唱会的内容。

      • POE: Proof of  elapsed time ,消逝时间证明

        • Intel 公司芯片级别的共识协议, 耗电量少

认识误区

  • 区块链不是比特币

  • 区块链不是数据库

  • 区块链并不是一个颠覆万能的技术

区块链应用场景

    • 减少共享的风险

  • 贸易管理

    • 跨境贸易

    • 物流供应链

    • 一带一路

  • 其他应用场景

    • 云存储

    • 医疗

    • 通讯软件

    • 电子游戏

    • 投票

我到底需不需要区块链技术

区块链不是万能的

  • 区块链应用有自己的使用场景

    • 有共享通用数据库的需要;

    • 流程设计的参与方存在激励冲突,或者在参与方之间没有信任;

    • 一个数据库有多方参与或者有多个写入者;

    • 现在由受信任的第三方参与流程, 托管服务、数据提供服务、发放牌照的权威以及公证人;

    • 密码学正在被使用或者应当被使用。密码学促进数据保密,数据完整性,权威性以及不可复制性;

    • 一个商业流程的数据在整个流程中被导入许多不同的数据库;

    • 系统中的参与者受到统一的规则制约;

    • 各方的决策是透明的而不是保密的;

    • 有对客观、不可更改的历史或者对各方指定的事实的日志的需求;

    • 交易频次不超过10,000次/秒。

  • 区块链不适合的应用场景

    • 业务场景设计机密数据

      机密数据

      区块链上的数据是在全部节点同步记账

    • 业务过程存储大量的静态数据,或者数据非常大

      区块链数据在每个节点上同步备份

    • 交易规则经常变化

      机器执行,重建信任

      code is law

    • 使用外部或者第三方服务来收集/存储数据

    • 需要跨链交互数据

      智能合约和先知(oracle)

    • 简单业务场景

      个人博客

      聊天室

      留言板

      日记本

区块链的错误说法

  • 区块链就是去中心化

  • 颠覆权威,颠覆中央...

区块链的应用?

  • 区块链名酒防伪(不可行

    因为酒厂是不可替代的,最终的验证指向都是酒厂,不能线下转为线上,且不能去中心化

  • 区块链电影票?

  • 区块链快递?

  • 区块链公司账务?

  • 区块链学生信息?

    重点

    • 区块链不能当成数据库使用

    • 增删改查都是链下信任体操作

  • 众筹

  • 投票

  • 发行货币

  • 发行ico,daico(此较好,但也未可知)

  • 汽车保险(人为因素较多)

  • 拍卖所

  • 赌马

如何鉴别区块化

  • 看是否能够变成代码语言

  • 即使可行也得判断是否盈利,此为区块链的代价

    计算成本

    存储成本

    安全成本

    隐私成本

    易用性成本

  • 另一方面是否符合政策规定(区块链微博)

IPO和ICO

IPO

  • IPO(Initial Public Offerings)英文翻译就是首次公开发行

  • 什么叫做发行呢,增发股票就是发行,换句话说就是让新的、更多的投资者把钱投资到公司里面来

  • 同时给这些投资者一些公司股份

  • 允许他们以后参加企业的分红

ICO

  • ICO(Initial Coin Offerings)英文翻译就是首次货币发行。

  • 这里先简单的理解一下, 货币就是固定充当一般等价物的特殊商品

  • 人民币是我国政府发行

  • 美元是美国政府发行

  • 理发店可能发行一个小红花, 剃头一次送一个小红花,集齐5朵小红花就可以送一次免费剃头

  • 便利店可能发行全家会员积分, 积分100可以当1元钱使用

  • 从广义上讲, 小红花和积分也是货币

  • ICO的方式就是, 企业先发布一个白皮书

  • 白皮书就是说, 我们打算干一件什么事, 现在没钱, 大家来买代金券。

新模式DAICO

  • 什么是DAO

去中心化自治组织

  • 什么是DAICO

    https://www.lianguwang.com/news/index/detail/id/461.html

    百度安全验证

    • 这是对ICO筹资模式的改进,它融合了DAO的某些方面。

    • 三元素

      首先,完全信任完全放在一个集中的团队上。从一开始就决定资金是由民主投票制度决定的。

      其次,资金不是一次性发放,而是实施一种机制来随时间推移。

      最后,有机会退还捐款。这个决定是基于“人群的智慧”,即如果团队未能实施项目,贡献者可以投票退还剩余的财务。

区块链的一些疑问

  • 区块链用于溯源,如果供应链上的参与方自己造假,在中途将实物替换掉,区块链宣称的不可更改不就无效了吗?

    这是一个非常常见的观点。我甚至听到过对区块链研究颇久的人将此观点摆出来,作为区块链的缺点之一。这是对区块链本质理解有误带来的典型问题,是一个非常好的问题,驱使我们去思考区块链的本质是什么。区块链是对信息传递的变革,对线上信息组织方式的变革,它和现有的其他互联网技术一样,可以对线下赋能,但不能指望它解决一切。换一种思考方式,现有的中心化溯源机制(依赖某个组织进行认证)同样解决不了“调包”问题。同样的,在初期淘宝也无法前置的解决假货问题,到今天也只是通过后发的处罚部分解决,而如果站在十年前、二十年前,因此就说淘宝没有未来,在今天看来必然是可笑的。那么区块链溯源究竟改变了什么呢?或者说去中心化的溯源机制相对于目前中心化的溯源机制本质的区别在哪里呢?我想,其根本在于从“相信某个机构”转变为“相信某种机制或制度”,从而杜绝了某个中心机构“犯错/被攻击”的可能性。

  • 区块链的挖矿浪费大量能源,是低效的机制。

    这是把区块链与比特币网络混为一谈而得出的结论。只有比特币 pow 共识机制。,从以太坊的PoS机制,到从上文的Sawtooth、Iroha、Fabric的共识机制都可以看到,并非所有区块链的共识都依赖于算力(本质是资源和能源)。进一步的,我们还可以想到,既然并非所有的共识都需要大量消耗能源,“挖矿奖励”在区块链网络或者说DLT技术中并非是必须的。token(即,币)并非是必须的。也就是说,并非所有与区块链相关生态都需要存在token,都可以ICO。ICO的成立意味着其生态体系至少存在着可交易的资源,此时token才有价值。当然,这是另外一个大命题了。但是另一方面,区块链因为共识机制的存在,因为分布式账本的存在,其效率方面确实难以和倾注巨量资源的中心化的机构匹敌。Oa网络其本质是拿效率换信任,所以在这个方面“低效”的结论倒不是全错。更进一步的思考,区块链的应用领域,如果在共识机制的效率上短期没有革命性的突破,就要主要考虑非高频的领域了。

  • 区块链是一场去中心化的革命,所以其必然颠覆当前的中心化机构!所以其必然受到中心化机构狙击而失败!

    一个“去中心化”的标签可以演化出截然不同的两个标签真的是非常有意思的结果。共有链变成私有链/许可链/联盟链之后,其去中心化的属性就已经被大大的限制了。此时,其链中依然存在着分布式账本,但整条链中的节点已经不对等了,或者说链存在一个/群至高无上的管理者,他们掌握着链的身份认证,虽然让渡了账本的记账权(分布式账本依然存在),但是同时获得了链中交易的可追溯性和不可篡改性。打个比方,就是将原来在一个黑盒中操作的账本开放出来,人手一份,通过共识机制来协调,这种开放是双向透明的(可以通过技术手段对于信息获取的权限进行限制,例如Fabric中的channel),中心机构无法作假,同样,其他节点也一样。所以,更直白的说,分布式账本增加了整个网络中的双向信息透明,这就减弱了整个网络中造假的可能性,其结果很可能是原来组织的中心节点的控制大大的强化,而非弱化!所以,我们就不难理解为何央行一直在大力组织研究区块链。事实上,从Hyperledger的会员机构就可以看出,一个号称要“颠覆中心化大机构”的技术,却有大量产业巨头热衷于投入力量资金资源,恐怕就是因为许可链/联盟链不仅是一种增信措施,更可以大大加强中心机构对于整个网络的控制力。同样一种技术,在作为“公有链”的时候是被作为打破寡头垄断的革命性武器,而作为“私有链/联盟链/许可链”的时候确实加强控制力的有力机制,真的是一件很有意思的事情。在做了这么多分析之后,我们发现,在整个区块链或者说DLT技术中,账本是“去中心化”的不假,但是整个技术路径的结果是否是去中心化恐怕还言之尚早。分布式的账本双向提升了网络中的透明度,不仅中心节点更透明了,其他节点也是如此,整个网络中的一举一动都可溯源、可追溯、可监控,这些分布在众多节点上的账本,监视和记录着整个网络中每个细微的动作。

分布式系统核心问题

区块链的本质

  • 区块链其实是一种分布式系统

分布式系统的问题

什么是一致性(consistency)一致性的通用解决方案和挑战一致性的安全问题强一致性和弱一致性

  • 一致性问题

    • 什么是一致性(consistency)

      在分布式系统中,一致性(Consistency,早期也叫 Agreement)是指对于系统中的多个服务节点,给定一系列操作,在协议(往往通过某种共识算法)保障下,试图使得它们对处理结果达成某种程度的一致。如果分布式系统能实现“一致”,对外就可以呈现为一个功能正常的,且性能和稳定性都要好很多的“虚处理节点”。举个例子,某影视公司旗下有西单和中关村的两个电影院,都出售某电影票,票一共就一万张。那么,顾客到达某个电影院买票的时候,售票员该怎么决策是否该卖这张票,才能避免超售呢?当电影院个数更多的时候呢?这个问题在人类世界中,看起来似乎没那么难,你看,英国人不是刚靠 投票 达成了“某种一致”吗?注意:一致性并不代表结果正确与否,而是系统对外呈现的状态一致与否,例如,所有节点都达成失败状态也是一种一致。

    • 一致性的通用解决方案和挑战

    • 一致性的安全问题

    • 强一致性和弱一致性

  • 共识协议

    • 人民代表大会制度

    • 提案(proposal)

      为了简化理解,仍然以两个电影院一起卖票的例子。可能有如下的解决思路:每次要卖一张票前打电话给另外一家电影院,确认下当前票数并没超售;两家电影院提前约好,奇数小时内一家可以卖票,偶数小时内另外一家可以卖;成立一个第三方的存票机构,票都放到他那里,每次卖票找他询问;更多……这些思路大致都是可行的。实际上,这些方法背后的思想,将可能引发不一致的并行操作进行串行化,就是现在计算机系统里处理分布式一致性问题的基础思路和唯一秘诀。只是因为计算机系统比较傻,需要考虑得更全面一些;而人们又希望计算机系统能工作的更快更稳定,所以算法需要设计得再精巧一些。共识算法解决的是对某个提案(Proposal),大家达成一致意见的过程。提案的含义在分布式系统中十分宽泛,如多个事件发生的顺序、某个键对应的值、谁是领导……等等,可以认为任何需要达成一致的信息都是一个提案。

  • 常见共识协议原理

  • 分布式系统的可靠性

FLP不可能原理

  • 在异步通信场景中,没有任何算法能保证到达一致性。

  • https://www.the-paper-trail.org/post/2008-08-13-a-brief-tour-of-flp-impossibility/

    三个人在三个不同房间里面投票,ABC,C经常睡着先别这么悲观,学术界做研究,考虑的是数学和物理意义上最极端的情形,很多时候现实生活要美好的多(感谢这个世界如此鲁棒!)。例如,上面例子中描述的最坏情形,总会发生的概率并没有那么大。工程实现上多试几次,很大可能就成功了。科学告诉你什么是不可能的;工程则告诉你,付出一些代价,我可以把它变成可能。这就是工程的魅力。那么,退一步讲,在付出一些代价的情况下,我们能做到多少?另外还有个博弈学上的概念, 科学上告诉你去赌场赌博从概率上总会是输钱的;工程则告诉你,如果你愿意接受最终输钱的结果,中间说不定偶尔能小赢几笔呢!?

常见分布式共识算法

  • Paxos

    1990 年由 Leslie Lamport 提出的 Paxos 共识算法,在工程角度实现了一种最大化保障分布式系统一致性(存在极小的概率无法实现一致)的机制。Paxos 被广泛应用在 Chubby、ZooKeeper 这样的系统中,Leslie Lamport 因此获得了 2013 年度图灵奖。故事背景是古希腊 Paxon 岛上的多个法官在一个大厅内对一个议案进行表决,如何达成统一的结果。他们之间通过服务人员来传递纸条,但法官可能离开或进入大厅,服务人员可能偷懒去睡觉。算法中将节点分为三种类型:proposer:提出一个提案,等待大家批准为结案。往往是客户端担任该角色;acceptor:负责对提案进行投票。往往是服务端担任该角色;learner:被告知结案结果,并与之统一,不参与投票过程。可能为客户端或服务端。Raft是paxos的一个简单实现

  • Raft  

区块链特点

区块链上数据的验证、记账、存储、维护和传输等均是基于分布式结构,采用数学和算法的方法而不是中心机构来构建分布式节点之间的信任关系,从而形成非中心化的、可信任的分布式结构。交易参与者可以自证并直接交易,不需要依赖第三方中介机构的信任背书。

不可篡改性

数据写入区块链后很难改动,区块链的算法确保了修改其上数据的极其苛刻的条件,而这一条件几乎不可能实现,保证了数据的真实性。分布式共享:区块链可以通过点对点网络同步记录数据,实现数据的分布式共享。

共识信任机制

区块链从根本上改变了中心化的信用创造方式,运用一套基于共识的数学算法,在机器人之间建立信任网络,从而通过技术背书而非中心化信用机构来进行信用创造。借助区块链的算法证明机制,参与整个系统中的每个节点之间,进行数据交换无需建立信任过程,在系统指定的规则范围和时间范围内,节点之间不能也无法欺骗其他节点,即少量节点无法完成造假。

开放性

区块链系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有参与者公开,任何参与者都可以通过公开的数据接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值