区块链杂记

        定义:区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案,分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,既然是一种模式,那就不局限于语言,只能说那种语言更适合.

        狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。

 

        广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式

架构

        一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。 其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点

 

        区块链 – 原始区块链 ,是一种去中心化的数据库,它包含一张被称为区块的列表,有着持续增长并且排列整齐的记录。每个区块都包含一个时间戳和一个与前一区块的链接:设计区块链使得数据不可篡改 — 一旦记录下来,在一个区块中的数据将不可逆。
 

        区块链的设计是一种保护措施,比如(应用于)高容错的分布式计算系统。区块链使混合一致性成为可能。这使区块链适合记录事件、标题、医疗记录和其他需要收录数据的活动、身份识别管理,交易流程管理和出处证明管理。区块链对于金融脱媒有巨大的潜能,对于引导全球贸易有着巨大的影响。

        2008年由中本聪第一次提出了区块链的概念,在随后的几年中,成为了电子货币比特币的核心组成部分:作为所有交易的公共账簿。通过利用点对点网络和分布式时间戳服务器,区块链数据库能够进行自主管理。为比特币而发明的区块链使它成为第一个解决重复消费问题的数字货币。比特币的设计已经成为其他应用程序的灵感来源。

        区块链格式作为一种使数据库安全而不需要行政机构的授信的解决方案首先被应用于比特币。2008年10月,在中本聪的原始论文中,“区块”和“链”这两个字是被分开使用的,而在被广泛使用时被合称为区块-链,到2016年才被变成一个词:“区块链”。在2014年8月,比特币的区块链文件大小达到了20千兆字节(20G)。

 

比特币

 

        想了解区块链,就不能不了解比特币。比特币是区块链技术的第一个实际应用,正是因为它在比特币应用上的成功,才让越来越的多人关注它。

        2008年底,比特币之父中本聪发表了一个关于他研究的电子现金系统的九页白皮书,2009年初,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了比特币的第一个区块——创世区块,并将当天泰晤士报头版一则关于救助银行的新闻标题写入创世区块,这也代表着比特币诞生了。

        最早的区块链开发便是基于比特币的区块链网络进行开发了,由于比特币是全球最广泛使用和真正意义的去中心化,就区块链应用来说,比特币就是世上最强大的锚,拥有最大的权威性。因此,围绕比特币的各种区块链技术非常多。

以太坊

        可以说除了比特币外,以太坊目前在区块链平台是最吸引眼球的。 以太坊是一个图灵完备的区块链一站式开发平台,采用多种编程语言实现协议,采用Go语言写的客户端作为默认客户端(即与以太坊网络交互的方法, 支持其他多种语言的客户端)

        最近,区块链技术被炒得火热的除了比特币屡创天价外,一种区块链撸猫的游戏突然火遍以太坊,短短一周时间就让以太坊网络几乎瘫痪。

        这款把以太坊网络“攻击”瘫痪的游戏就是CryptoKitties,俗称区块链撸猫。许多猫的售价高达数百至数千ETH,折合美元相当于几万多。

  CryptoKitties自己如何赚钱?

        CryptoKitties在以太坊上部署了智能合约,网站本身只用来展示以及为用户提供比较方便的交易平台。每隔大约15分钟,会产生一只Gen 0的创世猫,并通过合约自动拍卖,拍卖所得进入开发商的钱包。

        此外,用户繁殖猫通过智能合约实现,开发商收取每次交易金额的3.75%作为手续费。

        区块链撸猫和云撸猫有啥区别?最大的区别是,游戏规则确立后,你的猫永远是你的猫,开发商无权也无法剥夺任何人的猫。而云撸猫是一个中心化的游戏,所有的猫都登记在开发商的数据库中,开发商可以随时篡改、剥夺任何人的猫,开发商也可以任意给自己创建高价猫。想想看,在线游戏中的道具不过就是开发商自己创建并拿来出售的数字资产,没有任何方式可以保证开发商不作弊。

        说完了区块链撸猫的优点,我们再看看目前区块链撸猫的缺点。

        由于用户买卖猫,包括繁殖小猫,都是通过智能合约实现的,执行一次交易需要等待区块链打包,时间从1分钟到十几分钟不等。因为CryptoKitties导致的以太坊网络拥堵,等待几个小时都是常有的事,所以实时性很差。提交一笔买卖交易后,你可以先睡一觉,第二天早上再看交易是否成功。此外,以太坊交易的手续费随着拥堵的加剧而急剧增加,如果手续费设得太低,则交易根本不会成功。一次交易的手续费从0.1美元已经涨到了1~3美元,对用户来说显然非常不划算。注意这个手续费是给矿工的手续费,不是开发商收取的手续费。

        由此暴露出以太坊网络目前处理能力严重不足,还不足以支撑未来大量的区块链应用。

        另外,用户想要参与区块链撸猫,需要较高的技术门槛,即必须对私钥、地址、以太坊、以太币、钱包、挖矿、打包等比较熟悉。对区块链不熟的用户可能根本无法创建一个成功的交易,也不理解为什么一个交易需要几分钟甚至几个小时才能完成。

        目前,区块链相关技术,尤其是钱包,对普通用户来说易用性还非常差。如果解决了易用性问题,可以说用户会出现几个量级的增长。

        无论如何,CryptoKitties通过游戏向大众普及了区块链的概念。虽然目前区块链的应用还处于非常早期的阶段,但未来的潜力不可估量。

 

区块链特征

去中心化

        由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。可以理解为一种公共记账的机制(技术方案),它并不是一款具体的产品。其基本思想是:通过建立一组互联网上的公共账本,由网络中所有的用户共同在账本上记账与核账,来保证信息的真实性和不可篡改性。每当进行一次交易记账,交易双方就会广播给区块链系统的所谓"志愿者"进行记账,"志愿者"广播回区块系统,由系统所有参与者参与记账.在区块链系统中,每隔一段时间就会产生一个新的区块,用来存储刚刚产生的交易信息,参与者必须解决区块的密码难题才能然区块变得完整有效,内容唯一,答案会放在区块的末尾,并广播这个完整的区块,其他志愿者得知解决后转而去解决下一个区块密码,同时答案会放在下一个区块的开头,成为下一个难题的题干,就像成语接龙一样,不断连接链条的区块而成“区块”链,顾名思义,是因为区块链存储数据的结构是由网络上一个个“存储区块”组成一根链条,每个区块中包含了一定时间内网络中全部的信息交流数据。随着时间推移,这条链会不断增长,如要破解,除了要破解当前区块的难题,还要破解之前所有连接的区块难题加密.

虽然说现在的银行可能基于中心服务器的部署,但也肯定在很多地方很多节点上做了备份;

区块链的特点是每一个节点都保存完整的备份。


开放性

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

 

自治性

        区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。

 

信息不可篡改

        一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。

 

匿名性

由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方自己产生信任,对信用的累积非常有帮助。

 

区块链核心技术简介

        区块链主要解决的交易的信任和安全问题,因此它针对这个问题提出了四个技术创新:
 

        第一个叫分布式账本,就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。不同于传统的中心化记账方案,没有任何一个节点可以单独记录账目,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。另一方面,由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。
 

        第二个叫做非对称加密和授权技术,存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。
 

        第三个叫做共识机制,就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,在效率和安全性之间取得平衡。以比特币为例,采用的是工作量证明,只有在控制了全网超过51%的记账节点的情况下,才有可能伪造出一条不存在的记录。当加入区块链的节点足够多的时候,这基本上不可能,从而杜绝了造假的可能。
 

        最后一个技术特点叫智能合约,智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。以保险为例,如果说每个人的信息(包括医疗信息和风险发生的信息)都是真实可信的,那就很容易的在一些标准化的保险产品中,去进行自动化的理赔。

区块链分为公有链,私有链,联盟链

  • 私有链:封闭生态的存储网络,所有节点都是可信任的,如某大型集团内部多数公司。
  • 行业链:半封闭生态的交易网络,存在对等的不信任节点,如房地产行业A、B、C、D公司。
  • 公有链:开放生态的交易网络,这层主要是为行业链和私有链提供全球交易网络。

 

区块链是万能的吗?

 

        虽然区块链保证了数据的不可篡改,但是对于人录入的一些信息的真实性它是无法验证的。

        在防止信息的泄漏方面,引入的黑盒的机制,但具体怎么样,有待进一步了解。

        最适合的应用场景是金额,但目前大家也都是在探索阶段,很少有进入实际应用阶段,国家也是对它保持着高度的关注。

 

注释

        1.简单介绍一下“密码学难题”:有一个叫做随机散列函数的东西,任何长度的数据都可以通过这个函数转化为一个256位的0和1组成的代码,原数据任意一点小小的改动都会使最后的代码发生巨大的变化,并且不可能从某个已知代码逆推出原本数据是什么,所以,如果想要得到一个特定的代码,除了暴力穷举(一个一个地试之外没有别的办法。区块链密码学难题就是:找到一个随机数,把这个随机数添加到区块末尾之后,可以使整个区块的随机散列函数值的前N位变成0

        2.实际上,每个区块的开头并不是前一个的答案,而是前一个区块的随机散列函数值,文中这个错误的“类比”可能更方便人们理解区块是如何成链的。希望不会对那些想深入了解区块链的朋友造成误解

       3.志愿者们为了找到密码学答案,就要把一个又一个的数带入到题中,最后凑出所需的前N个0,完成这项工作需要巨大的计算量。这样,计算能力强的人就有更大的概率第一个凑出答案

        4.当然,志愿者可不是完全志愿的,系统会奖励那个解题成功的人。因此,解题的过程常被成为“挖矿”,解题的人被称为“矿工”,解题的专用电脑被称为“矿机(对,用电脑解题,这种工作是不可能用纸笔解决的…)挖矿是共识算法pow(工作量证明)特有的,
而今区块链又产生了新的共识算法如:pos(权益证明),dpos(股份授权证明),PBFT(投票选举)。一般的区块链都会有算法控制区块产生的速度,当参与人数较多,系统计算能力变强时,系统会增加难题的难度(也就是凑更多位的0)。不难看出:参与人数越多,题越难,黑客想要攻破这一系统就越难。

        5.区块链仅仅是一个技术而已,不同的人会拿它去做不同的事情,现在有许多聪明的人正在将其完善和优化,让区块链可以应用在更多的领域,发挥更大的作用。同时也有一些人,趁人们对区块链还不甚了解,鼓吹各种概念,毫无新意地发行各种数字代币圈钱。引用《纽约时报》的一句话就是:在现在看来,区块链似乎是最糟糕的投机资本主义,而且它还让人难以理解。但是,开放协议的美妙之处就在于那些在早期发现并拥护它们的人,能够以令人震撼的新方式来驾驭它们.

 

快速理解区块链流程

https://wenku.baidu.com/view/bc1edcc7f9c75fbfc77da26925c52cc58bd6907d.html

收集所有区块链(BlockChain)技术开发相关资料,包括Fabric和Ethereum开发资料

https://github.com/chaozh/awesome-blockchain-cn

 

 

 

 

 

 

 

 

 

 

 

 

 

阅读更多
个人分类: 区块链
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭