精华内容
下载资源
问答
  • 从四个技术层面理解区块链

    千次阅读 2018-12-04 17:41:05
    区块链到底是什么?很多对区块链不太熟悉的朋友问的关于区块链的第一个问题都是这个,下面本文就将从4个技术层面给大家做个简单介绍。  区块链(Blockchain)本质上是一个去中介化的数据库,同时作为比特币的底层...

            区块链到底是什么?很多对区块链不太熟悉的朋友问的关于区块链的第一个问题都是这个,下面本文就将从4个技术层面给大家做个简单介绍。

      区块链(Blockchain)本质上是一个去中介化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。下面我们一起从:数据结构、备份,POW(工作量证明)、时间戳(timestamp)理解一下吧 !

    1、数据结构

      区块链是由包含交易信息的区块从后向前有序链接起来的数据结构。区块被从后向前有序地链接在这个链条,每个区块都指向前一个区块。其实它就是链表(文档)。就像是一份PDF电子文档,其每一页都有「页码编号」,以保持字句及章节的有序性。只是区块链中的“页码”比较特殊,当前页的页码是上一页「内容的指纹」,因此修改任何一页的内容,都会导致后一页的页码不能与之对应。因此链式结构的有序数据集具备了一定的「自校验功能」,或者一定程度上的「防篡改功能(tamper-proof)」,但链式结构并不能防止最新的若干个区块被删除。

      区块链的设计中还引入了树状结构(比如Merkle Tree)与图状结构(DAG),其本质都是让数据自身含有严谨的结构,可以被工具软件识别处理。这一点很像我们听到一段声音,我们能分辨出是音乐,或是噪音,我们近距离观察一个物体,我们能分辨出是人造物,或者是自然物。

    2、数据备份

      区块链是由连接其中的所有电脑共同维护的,对于已经产生的区块,所有连接进来的电脑都有一份完整的区块链备份记录。仅仅让账本数据自身具备特殊的结构,做的还不够。若将同一份账本数据复制给跨越地域及文化界线的多个人存储起来,并且这些人之间不需要预先建立任何信任关系,则在最大程度上保障了账本数据的安全,也就是所谓的「去中心化存储」

      账本数据分布的越广泛,备份节点越多,则越安全,反之则容易被摧毁。除了账本数据之外,人们还在积极探索通用数据的去中心化存储及访问取回,IPFS就是一个示范项目。

    3、POW(工作量证明)

      工作量证明系统主要特征是客户端需要做一定难度的工作得出一个结果,验证方却很容易通过结果来检查出客户端是不是做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中的,对于验证方则是易于验证的。它与验证码不同,验证码的设计出发点是易于被人类解决而不易被计算机解决。

    POW (工作证明) 简单理解就是一份证明,用来确认你做过一定量的工作。

      对于 pow(工作量证明)这个词汇,人们比较熟悉了,而从自然语言的使用角度来看,对于特别熟悉的词汇,人们往往不会做深入的思考。人们看到、听到、说到 pow 这个词时,可能会立即想到“挖矿”、“算力”、“耗电”、“共识”等诸多概念,但也许很难想到,pow铸造出的账本,其实表达了一段难以磨灭的工作历史。pow 就像一个带有喷漆功能的车轮,被其碾压过的路面,必将留下车辙印记。账本中的每一个区块都需要付出制造代价,这些代价见证了真实的历史痕迹,若想伪造出另一份有竞争力的不同账本,就得付出同量级的制造代价。理解了这一点,就不难明白BCH-ABC、BCH-SV、BTC三套账本之间的本质区别:铸造难度相差悬殊,所以BTC仍然是BTC。耗费巨量算力创造的历史最难被伪造或篡改,这是PoW和PoC(Capacity,存储容量证明)、PoS、DPoS等共识算法的本质区别。

    4、时间戳(timestamp)

      时间戳(timestamp),百度百科这样解释:一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据, 签名的对象包括了原始文件信息、 签名参数、 签名时间等信息。广泛的运用在知识产权保护、 合同签字、 金融帐务、 电子报价投标、 股票交易等方面。

      区块链在P2P网络上通过节点间的共识算法实现了一个分布式的时间戳服务。

      区块链是在时间上有序的、由记录块(区块)组成的一根链条。一个区块包含两个部分:区块头(Block Header)和记录部分;区块中的所有记录通过默克尔树(Merkle Tree)组织起来,默克尔树根(Root)的哈希值做为本区块里所有记录的数字指纹被放入区块头。

      时间戳的设计,使得更改一条记录的困难程度按时间的指数倍增加,越老的记录越难更改。这是因为,如果改动某个区块里的一条记录,意味着该区块原来的默克尔树根失效了,需要改动区块头,该区块的数字指纹随之失效。又由于下一个区块的区块头包含这个哈希指针,这就意味着下一个区块也需要改动。如此直到最新的那个区块。

      每条数据都带有一个真实可信的时间戳(这条数据产生的真实时间点),这样造假行为就比较难奏效,因为假数据的时间戳一般都是最近的 。

      基于以上四点,我们可以思考思考人类文明发展演化的过程中,有哪些是富含结构的、冗余备份的、难以被篡改的?语言、神话、诗歌、族谱...,和区块链账本有很多类似的地方,区块链内含的世界时钟系统(时间戳),协调着大量的人工智能系统,会构筑出怎么的未来呢?

     

     

    作者:枫林庭晚

    千氪链接:https://www.kg.com/article/519539118368231424

    展开全文
  • 区块链系列」区块链技术与应用

    千次阅读 2020-03-03 09:01:02
    P1 Linux下Go安装 P2 搭建go-ethereum P3 搭建区块链底层技术 P4 区块链技术与应用 P5 搭建Fabric(实践中),...我首选的视频课程,肖教授的演讲公开课《区块链技术与应用》,课程内容讲述区块链原理和概念等,...
     
    

    未来的发展趋势,使得价值交换也会变得跟信息传播一样的方便。

    人人都是掘金者,他们所说的话将成为了掘金者说的话。我首选的视频课程,肖教授的演讲公开课《区块链技术与应用》,课程内容讲述区块链原理和概念等,引导我们进行学习研究,也有小伙伴把每一节课都细心的做了笔记分享。视频课程没有中文字幕,这里我是针对教授的课程进行转版文字,拿出其中一篇分享给大家,做了稍微调整的笔记。后期让自己回顾,能够加深印象。我花了些心思进行文本整理和排版尚且不足,其实视频更加精彩。语音转文本内容,肖老师课程演讲。独家文字版本分享。

    今天是最后一节暑期课,首先祝贺大家学完了区块链这门课,在这么炎热的一个夏天,我们花了很多时间和精力把这些技术学好,这是很有价值的。就像我在第1节课的时候说的,区块链目前还处于早起的发展阶段,所以,你们都是这个领域的先行者,这门课如果你们认真跟下来的话,那么你们现在的水平已经比社会上绝大多数人都要强了

    我们这门课的名字叫做《区块链技术与应用》,到目前为止,我们讲得比较多的都是技术相关的东西。今天是最后一节课,我们就讲了一些应用方面的东西。现在,社会上对区块链的争议是非常大的,有很多对区块链的质疑其实也是有道理的。但为什么有那么多人会质疑这个技术,其中一个原因是区块链的概念被滥用了,有些人把什么问题都往区块链上放,无论是效率上的问题,还是监管上的问题,好像区块链是解决一切问题的法宝,无论有什么问题你放到区块链上就都可以解决了,这个是不对的。

    做保险理赔业务

    那我举一个例子:国外有人提出了,把这个保险理赔业务放在区块链上,原因是现有的这个保险理赔过程非常的慢,可能需要几个星期甚至更长的时间。所以,他们觉得放到区块链上之后,因为区块链的转让速度,比如说:比特币等6个确认区块,也就是大概一个小时的时间就可以完成,这比现在的保险理赔几个星期的速度好很多了。大家想想这个应用场景有什么问题吗?

    保险理赔的速度慢,并不是支付技术本身的局限性。 只要你决定了理赔的金额需要给对方多少钱,就用普通的银行转账,很快能够把钱转到对方的账户上。那么他为什么会慢呢?主要是因为理赔的内容需要人工审核,就是说你这个需要理赔,你是汽车保险也好,出了什么剐蹭事故也好,还是说健康保险也好,这个理赔的内容很多时候是需要人工审核的,这就是为什么它会比较慢,而这方面呢?区块链并没有什么好的优势,也就是说支付技术本身不是瓶颈

    做防伪溯源

    还有一些人提出用区块链做防伪溯源,比如:有人提出把有机蔬菜生产的全过程放到区块链上,从这个蔬菜是哪块地里生产出来的写在区块链上。采摘之后运输的每一个环节也都记录到区块链上,到最后到销售的时候,到那一个市场进行销售的也都是放到区块链上。那么他们的观点是:因为区块链是不可的篡改的,区块链上可以查到这个有机蔬菜生产销售的全过程,所以这是一个很好的应用场景,大家觉得这个应用场景有什么问题吗?

    这个应用本身没有问题。但是,是不是说只要你用区块链把整个过程记录下来了,就能保证你买到的蔬菜真正是有机的,这个是不一定的。如果这块地是施过化肥的,或者是这个蔬菜本身是洒农药的。被人当作有机蔬菜记录到区块链,那么区块链技术本身是检测不出来的。同样的,在运输销售过程中,如果被人调包了,把某些不是有机的蔬菜换当作有机蔬菜拿上去卖。那么这个也不是区块链能够检测出来的。区块链的不可篡改性只是说,这个内容写到区块链之后是没有办法篡改的,但是如果你写入的时候本身写的就是假的内容,那么这个是没有办法检查出来。

    信任机制

    还有一些这个区块链技术的争议是跟信任机制相关的,区块链的一个共识机制它的目的是要在互不信任的实体之间建立共识。 那么有些人认为,这个本身就是一个伪命题,因为互不信任实体之间是没有办法进行交易的。比如说:网上购物,假设有某个电商网站,它是去中心化的。那你不信任他,你怎么能够在上面买东西呢?比如说:你把比特币赋给这个电商网站。对方不给你发货怎么办,或者是发货之后,你发现他的商品有质量问题怎么办?

    在一个中心化的世界里,你可以通过各种机构,比如说:信用卡有一些保护措施,线上和线下之间的信任关系,但是在去中心化的世界里,这些都是没有办法做到的。那么,这个质疑有没有道理呢?有一定道理,但同时大家要注意:中心化和去中心化的界限并不是黑白分明的,在一个成功的商业模式里面,既可以有中性化的成分,也可以有去中心化的成分。

    比特币只不过是一种支付方式,并不是说采用比特币作为支付方式的商业模式本身也得是去中心化。 这个大家听明白了吗?比如说:亚马逊美国很著名的电商网站,中心化的一个网站,但是,在将来也可以采用比如说比特币作为一种支付方式,他可以接受比特币支付。那么,这种情况下就属于中心化的商业模式中,接受了非中心化的支付方式,这是完全正常的。所以,不要因为区块链是去中心化的,就认为所有用到区块链作为支付方式的商业模式一定是去中心化的,这个其实是两码事。

    区块链的不可篡改性

    与之相关的一个问题就是:区块链的不可篡改性。我们知道一个交易一旦发布到区块链上之后,是没有办法撤销的,你已经决定转账转给谁了,你说你后悔了,想把这个转账交易取消掉。那么,共识协议里没有设置这样的机制,有些人认为这是有问题的,比如说:前面说的网上购物的例子,你在网上买一个东西,付款之后对方没有给你发货,或者是发货的质量有问题,如果你是使用信用卡支付方式的话,你可以找对方申诉要求退款,对方可以把钱还给你。但是,比特币转账交易写到区块链上之后就没有办法撤销了,这是有些人对技术的一个质疑,那么大家想想,这种说法有什么问题吗?

    我们要分清一点,就是所谓的退款,包括使用信用卡用银行转,让用其他方式退款,并不是把原来的付款交易取消掉,而是说在应用层发起一个新的交易,把原来付出去的钱还给你。 比如说:你用信用卡在网上买东西,支付完成之后,你发现有什么问题要求对方退款。对方把钱退到你的信用卡上,这个时候你信用卡记录上是有两笔交易,一笔是当初你把钱付给对方的交易,另一笔是对方把钱退给你的交易。大家听明白了吗?

    法律的监管保护

    这实际上是两笔不同的交易,那么用比特币支付,其实也可以达到同样的效果,比如说:你购物的时候你付给对方,然后对方退款的时候可以把这个比特币再退给你。这样跟信用卡是一样的,并没有什么问题。这个跟区块链的不可篡改性,实际上是没有关系的。还有一些质疑跟法律的监管保护相关。有些支付方式,对这个用户对消费者是有一定的法律保护,区块链目前的状态是处于一种缺乏监管的状态,有些人认为这是一个好事情。因为他觉得去中心化的发方式的一个好处就是可以不受到中心化的一种管理方式。监管本身不一定是坏事,没有法律监管,同时也意味着没有司法保护,出了问题之后没有人能够保护你。

    比如说:用信用卡支付,美国法律规定信用卡如果被盗刷的话,只要你及时报告,那么你最多承受50美元的损失,就比如说你信用卡的号码泄露出去了,别用你的信用卡买了一大堆东西,只要你在两个月以内向信用卡公司报告,那么你自己承受的损失最多是50美元,剩下的损失由信用卡公司来承担。如果是储蓄卡的话,那么你最多承受500美元的损失。

    比如说:你的银行储蓄卡被别人给偷了。然后别人用你这个储蓄卡在ATM机上取了好多钱出来,如果你在两个月以内向银行报告的话,那么你自己最多承担500美元的损失,剩下的损失由银行来承担。如果你用比特币支付的话,那么这些保护的功能就都没有了,这也是有些人反对比特币的一个原因。你用比特币有啥好处,这里我们要注意的一点是,这些法律上的监管和保护跟支付的技术手段,其实是没有什么关系。

    比如说:我们前面说的信用卡被盗刷之后的保护,各个国家的法律规定差别是很大的,我前面说的是美国的法律,有些国家的法律就不提供这样的保护,比如说欧洲有些国家,他就没有规定的信用卡被盗刷之后会有什么样的保护措施。即使是美国各个洲法律规定不是完全一样的。我前面说的是美国的联邦法,那么美国的不同的州,那么还有一些进一步的法律保护措施,美国加州做的比较好的一个州。所以,法律上的监管和保护措施,跟信用卡这种支付手段,在技术层面上的设计,其实是没有什么必然联系。更重要的是比特币本来就不应该用于已有的支付方式进行竞争,就我们国外讲过国外有些餐馆接受比特币作为支付方式,有些咖啡店有些比萨饼店他们接受比特币,我的观点是这样做没有什么实际意义,因为你也可以付现金、可以使用信用卡,这是属于支付方式已经解决得很好的领域,没必要引入加密货币作为一种新的支付方式。

    今天信用卡有那么好的保护功能,你干嘛不用信用卡了?那么加密货币应该干嘛用?应该用在已有的支付方式解决的不是很好的领域。大家能想想是什么样的场景吗?有什么样的场景,是已有的支付方式解决的不是很好的。有人说在这个互联,是过去一个世纪以来最伟大的发明,那么它的最大作用是什么?它(互联网)使得信息传播非常的方便,信息能够无国界的传播者到世界上的每一个角落。 但是,支付方式并没有跟上。如果你仅仅是想获取信息,比如说你想在网上查一些资料,查一些跟区块链相关的资料。那么这个是比较容易的,网上有各种文章论坛博客,视频资料,包括我们这门课的视频也会放到网上,这个是比较容易的。

    但是,如果你想要支付的话,难度就会大很多。就比如说,巴西有一个人觉得我是某个领域的专家,想要聘请我当技术顾问,他觉得我是分布式系统领域的专家,他有一些问题想请我做技术咨询,这个咨询的过程是可以完成的,我们网上可以交易,可以网上聊天,还有一些视频通话软件,这些都是比较方便的,但是到了支付的时候,他们怎么把钱给我,这个没有什么很方便的途径,如果是走现有的银行体系是比较麻烦的周期很长,而且手续费也很贵。

    以前曾经有一次,香港一所大学请我去作报告,我做完报告之后,对方给了我一张支票,那天正好是比较忙,我没有来得及在香港那边把他给兑换成现金,然后我就回到北京之后,要把这个港币的支票存到银行里。实际上是很麻烦的,手续费也非常贵,这个票本身没多少钱,存一张支票手续费非常贵,而且周期很长。这样的例子还有很多,包括有的时候去国外开会,碰到某一个领域的专家谈的比较好,交换一下联系方式,我会到北京之后我还可以跟他联系,但是如果你想请他做一些具体的工作,那么这个支付就是个问题,比如以色列专家,你要让他做一些具体工作,把钱给他,没有什么很方便的支付方式。比特币被称为:Worldwide Currencies 是有一定道理的,因为缺乏一种能够在全球范围内流通的电子货币,而且这个货币的支付方式要能够跟信息传播的方式融合在一起。

    价值交换网络

    现有的体系当中支付渠道跟信息传播的渠道是分开的。有人说下一代互联网是:价值交换网络,叫做:Internet of value。我们现在的互联网可以认为是:信息传播网络。现在的问题就在于。信息传播很方便,信息交互也比较方便,但是价值交换是不方便的。Information can flow freely on the Internet, but payment cannot.那么未来的发展趋势就是支付渠道跟信息传播渠道将会逐渐融合,使得价值交换也会变得跟信息传播一样的方便。

    支付方式的效率

    还有一些对区块链技术的质疑,是跟这个支付方式的效率相关的,有些人认为加密货币的支付方式是非常低效的。我们前面也看过一些这个能耗的分析。就是我们以前课上对比一些,无论是比特币还是以太坊,平均到它的能耗都是很大的,比信用卡的交易要大得多。所以,有些人觉得你用这种方式。有什么好处?又不能做到绿色环保耗费那么多的电能,因为信用卡上就好很多。

    关于能耗三个方面来讲述

    • 第1点:
      加密货币本来就不是跟已有的支付方式做竞争,我刚才已经说过一遍了,如果你觉得信用卡能耗方面、绿色环保方面都很好的话,那么能用信用卡支付的,你就可以用信用卡支付,没必要用加密货币。

    • 第2点:
      随着这个区块链技术的发展,共识协议的不断改进,一些新的加密货币在支付效率上已经是大大提高了。我们知道比特币,原始版本的比特币,每个区块只能1兆字节,然后时间平均是10分钟,我们推算大概每秒钟支持的交易是7笔交易。现在有些新型的加密货币,号称每秒钟能够支持几百万个的交易,就这个效率,有了质的飞跃,其实就是以太坊跟比特币相比,以太坊的支付效率也已经比比特币高很多了,这是一个发展大的趋势。

    • 第3点:
      也是最重要的一点,我们评价一个支付方式,它的效率的好坏。要在当时特定的历史条件下去看,要跟当时存在的支付方式相比较。以前我在美国AT&T实验室工作,American telephone and telegraph,美国电话电报公司,咱们有谁发过电报呢?同学们当中还有发过电报的吗?你们这一代人已经没有这种生活体验,我那个时候还是有发电报的。一直到我上大学的时候。那时候我在北大读本科的时候,同学说买不到火车票,那个时候还要用电报,现在因为有了更方便的通讯方式,你可以用手机打电话,你可以发短信可以发微信。比方说:我要到深圳去出差,想约我在深圳的大学同学一起吃个饭的。你发电报得到电报局去。家里没法发电报到深圳,然后说我要到深圳去,要呆多长时间,然后问对方有没有时间一起吃个饭,收到之后要通知我的大学同学,跟我商量的话,比如说:具体是哪天吃饭在哪吃饭,发个电报过来,我然后我要回复行还是不行,我还得再去发个电报过去。你们听着都觉得好像很可笑,好像是一种非常低效的通讯手段。

    其实,电报在我们国家历史上试用了很长一段时间。电报是清朝末年就传入我国的。我上大学的时候还有人在用。可以见到它的生命周期有多长。这样低效的一种通讯方式,能够在中国存活这么长的时间了。因为在当时没有更高效的通讯方式,你如果不用电报的话,你还能怎么办?要写信的话太慢了。打长途电话的话呢比较贵。电报相对来说还是比较便宜的,收费是按照每个字多少钱收费的,所以你看电报的内容都是非常简短。而且你打长途电话的前提是对方得有电话,普通老百姓电话那样才行。那我上大学的时候,我上北大的时候,我申请到国外去留学,找老师写推荐信,那个时候有些北大老师的家里还是没有电话的。所以当时的情况下,电报就变成一种相对高效通讯手段。我说这个什么意思呢?

    我们判断一个通讯手段的效率好坏,要再当时的历史环境条件下看待,当时存在着其他的通讯手段做对比。同样的,我们判断一种支付手段效率的高低,也要再当时的历史条件下看,也需要跟当时存在的其他支付手段做对比。加密货币在某些应用场景下已经是相对的高效的。 就比如说我刚才讲的那些应用场景,有一个人要把咨询费付给我,专家聘请做一些什么工作?货币的话,现有的金融体系,这个支付的效率是更低的。而且能耗也不一定少,大家不要觉得光是挖矿是是消耗能量,银行体系也是要消耗能量的,你要安排一个办公室,里面有人上班,这都是要消耗能量。所以支付手段的好坏要在特定的历史条件下去评判,将来随着技术的发展,会有更高效的支付手段出现,这个是正常的,这是一个大趋势。

    智能合约相关

    还有一些质疑是跟智能合约相关的,智能合约出现了一系列的安全漏洞之后,有些人就觉得有什么好处。不如用传统的法律合同,法律合同是用自然语言书写的,老百姓还能看的懂,当然里面有一些法律术语,但至少他写这个合同的语言是给普通老百姓看的。智能合约是用编程语言书写的。除了程序员之外,别人都看不懂,反而不利于检查安全漏洞,对于这种观点,首先我们要意识到程序化是个大趋势。大家有有没有听到一种说法?Software is eating the world.软件将会改变世界,也有人把它翻译成:软件将会颠覆世界。任何技术任何领域在转型的早期都会有一些问题,这是正常的。说到智能合约,我在那节课曾经举过,一个现实世界中智能合约的例子,大家还记得吗?我打过一个比方就是物理世界中的智能合约。我用的是ATM机的例子,自动取款机可以看作是物理世界里的智能合约规则,按照使用固定规则进行操作,你把银行卡插进去,输入密码它会自动的把钱取出来。这就是一个的物理世界里的智能合约。那么ATM机会不会出问题,当然会出问题,像北大校园里的这个几个ATM机,我看见过好几次有人在维修。ATM机出现多少年了,出现了几十年,到现在还会发生故障,可以想象当初发送的故障的频率肯定是要高很多的。

    软件将会改变世界

    那么我们是不是因为ATM机出现过各种各样的故障,就不应该用它了,不是。智能合约其实也是一样,智能合约的历史相对是比较短的,只有两三年。所以他在早期的时候出现一些安全漏洞,其实也不是很奇怪。很多软件都出现过各种各样的安全漏洞,随着时间的推移,技术的不断完善,将来会出现一些智能合约当中常用功能的一些成熟的模板。 软件将会改变世界这是个大趋势,这个大家要意识这一点。但是,另一方面呢也不要以为智能合约能解决所有的问题,或者以为去中心化能解决所有问题,这就变成另外一个极端。大家还记得例子吗?我们讲那个投资基金再到这个投资基金。即使不出现黑客盗币的事件,商业模式是不是就没有问题?

    那到这个基金刚刚开始众筹的时候,曾经引起了很大的一种兴奋,因为以前从来没有过这么民主的投资基金。投哪个项目不是几个合伙人说了算,一起投票来决定,非常是民主,当时民主一定是好事情吗?大多数人的决策就一定是正确的吗?据说丘吉尔曾经说过这样一句话。
    Democracy is the worst form of Government except for all those
    other forms that have been tried from time to time…

    大家想象这话是什么意思呢?同学们都经历过高考,高考是一种很完美的。如果发牢骚的话,每个人都可以说出高考的很多弊病。不重视素质教育,选拔出来的学生可能是高分低能的。但是,没有高考的话怎么办呢?如果不搞高考,还有什么更好的选拔人才的方法吗?以前WH大革命的时候搞过工农兵大学生那样更糟糕。所以说:高考不是一种最好的制度,而是一种最不坏的制度。跟其他的制度相比,高考是一种相对公平的选拔制度。

    丘吉尔说的这句话其实也是这个意思:民主制度不是一种最完美的制度,它跟过去的奴隶制度、封建制度相比,它是一种历史的进步。 但是,民主制度也是存在各种各样的缺陷的,也有它的弊病,包括效率上的弊病,也包括决策的正确性这方面的问题,不要以为任何问题用民主投票的方法都可以解决,如果真是这样的话,那这个世界就太简单了,不论社会上存在什么样的问题,让大家投一次票就都解决了,太好了。国外有些地方zf就是尝试过这种方法,就是有事情就是大家都投票,连议会都不用开就直接老百姓投票,结果发现一个现象就是凡是收税的提案,都通不过;凡是社会福利的提案都能通过。那这样带来的问题就是,没有税收怎么提供社会福利?然后回过头来说我们这个基金的例子:去中心化一定是好事情吗?Is decentralization always a good thing?这个其实是不一定的,我们想想在现实生活当中,这些投资基金决定要投某一个项目,该怎么进行判断?得考察一下跟几个创始人进行谈话,看看这些人是不是靠谱。如果这个公司已经运行了一段时间。还要去检查一下这个公司的财务状况,叫尽职调查。适用一下公司的产品,然后看看这个公司的技术路线,员工的工作状态,所有这些都不是简单的通过智能合约投票就可以完成了。

    所以,不要以为去中心化能解决所有的问题,不要以为去中心化商业模式就一定是好的。这种跟风的现象在以前也出现过,98年99年的时候,互联网淘金热,就叫Internet bable,那时候跟互联网相关的概念相关的股票都是一飞冲天。所以现在区块链的很多币价一样,在互联网淘金热的时候,有些人就是把所有的概念都往互联网上套。包括有在互联网上卖狗食的,就卖那个Dog food。结果赔的是一塌糊涂,你们想想为什么?卖狗食是很沉了,在互联网卖邮费很贵。所以,当时就有人总结说:
    If the business model is bad, it’s still bad on the Internet.
    这句话对区块链也是适用的。不要因为某种商业模式用去中心化的概念包装一下就把他捧上天,中心化的管理方式和去中心化的管理方式其实是各有利弊的,要具体问题具体分析。 这样的投资基金,本来就不应该受到那样子的热捧到。

    这暑期课结束了,这个是北大第一次公开课强调:我们这么课程目的讲述区块链的技术和应用的,不是教大家如何炒币,这么课上所有的加密货币的例子,都是作为教学目的,不构成任何投资建议。
    谢谢大家。

    法律声明:
    这门课程中使用的例子只是做为教学目的,不构成任何投资建议。
    炒币有风险,投资需谨慎。.

    在此,我是对自己说的话:文章还会继续排版和纠正部分文字错别字。新事物批判性的看待,而不是感性的片面的对待。去拥抱新趋势的到来,不要保守思想禁锢某些局限性领域,逃离舒适区思维定式。老师的话,字句真金白银,是我们学习的核动力。

    参考地址:
    肖教授的演讲公开课《区块链技术与应用》

    展开全文
  • 区块链开源代码什么意思 在从事开源工作的10多年中,我参与了一些具有创新思想的小型项目,这些创意后来发展成为具有牢固社区的大型项目。 我还见证了功能失调的社区如何从项目中汲取能量。 我最近还通过编写项目...

    区块链开源代码什么意思

    在从事开源工作的10多年中,我参与了一些具有创新思想的小型项目,这些创意后来发展成为具有牢固社区的大型项目。 我还见证了功能失调的社区如何从项目中汲取能量。

    我最近还通过编写项目并为项目做出贡献而活跃于区块链。 我注意到,区块链项目就像具有开放开发和开放业务模型的初创公司。 因此,要成功,区块链初创企业必须学习如何以开源方式构建社区。

    区块链与其他开源项目不同的4种方式

    开源代码

    区块链的基本前提之一就是去中心化-将控制权和数据回馈给用户。 没有透明度和开放性就不可能实现权力下放。 如果区块链的源代码是封闭的,则与昨天的集中式封闭系统没有什么不同-除非它是开放的,否则无法读取和确认系统正在执行其应做的工作。

    即使是试图避免开源的项目也必须承认代码必须处于最低水平。 例如,Hedera Hashgraph(这不是一个区块链项目,而是一个类似的软件类别)将不会自由分发用于fork的代码,而是将其打开以供审查 。 根据开源倡议的定义 ,我们是否可以将其归类为开源尚有待商bat。 底线:如果源代码不可读或不可验证,则在不受信任的区块链平台上运行某些内容是没有意义的。

    打开运行时

    开源区块链项目与其他类型的开源项目的不同之处在于,它们打开其运行时(以及其源代码)。 其他开放源代码项目可以在开放环境中开发,但可以运行,并且可以作为开放核心,服务或封闭系统的一部分使用。 公共区块链是未经许可的,也就是说,任何人都可以加入网络,离开网络或运行一两个节点。 这代表了具有开放治理的不受信任和无边界的运行时。

    打开数据

    开源区块链项目使其数据公开。 任何人都可以派生代码(客户端应用程序)或数据(区块链历史记录)并启动新网络。 这最终使区块链项目成为有史以来最开放的软件系统。 开放代码,开放数据,开放运行时和开放业务模型可确保跨多个维度的开放性。

    开放商业模式

    区块链初创公司是开源开发和开放价值获取模型在源代码级别混合的独特组合。 虽然基于非区块链的开源项目通过协作开发和开放采用来创造价值 ,但通过单独的业务模型(例如SaaS,开放核心,订阅等)来获取价值却可以在以后确定。 对于区块链项目,白皮书中描述了业务模型,而捕获价值的令牌模型则预先在源代码中实现。 这使区块链项目独特地融合了价值创造,即时捕获和分配。

    为什么这么开放?

    大多数区块链项目旨在成为具有开放标准和协议的平台或枢纽,这些标准和协议将首先吸引开发人员并被其采用,然后再由用户使用。 他们吸引开发人员的主要方式不是通过相对于非区块链技术的技术优势,而是通过开放性实现的独特去中心化特征。 这些平台必须开放才能变得比封闭系统开发人员和用户一直在使用的更具吸引力。 开放不仅是区块链透明度的先决条件,而且是其分布和采用的先决条件,尤其是在吸引开发人员使用平台或协议方面。 开源使开发人员能够探索,学习和开始使用项目。

    “开放”不是弱点吗?

    曾经有一段时间,由于竞争对手可能复制和窃取您的代码或构想,因此认为打开您的代码具有风险。 如今,开源是吸引开发人员的主要方式,尤其是对于以开发人员为中心的平台,工具和库而言。 但是,由于区块链还使运行时和数据开放,因此任何人都可以派发代码和数据并启动并行网络。 这使得项目更容易受到分裂,分叉和价值抢夺的影响(正如我们在流行的区块链网络(如比特币和以太坊)的分叉中所看到的)。 即便如此,开放项目的表现要比封闭项目好,后者试图防止分叉并且不能轻易吸引追随者。 这是因为开放被认为是力量的标志。 如果网络是如此开放,并且仍然能够经受住分叉和攻击,那么它的社区将变得更加强大。

    开放性的概念已经扩展到项目之外,包括渴望通过开放源代码,会议讨论,博客,推特等分享知识的人员和组织。 创新在某些领域发生得如此之快,以至于发明人已经创造了一个新的想法,而其他人都无法理解和复制旧的想法。 在赢家通吃的市场中效仿,对社区发展产生负面的网络影响。 在征服封闭和集中式系统的过程中,开放是主要武器。

    炒作不同于社区

    成功的初始代币发行( ICO )投资者通常在进行早期投资之前先评估项目的炒作。 (这通常仅在提早投资后又提早退出的情况下才起作用。实际上,这意味着确定最被炒作的ICO,并在交易所上市后立即出售所有代币。)炒作通常使用围绕ICO的简单统计数据进行衡量。在Twitter,Facebook,Reddit,Telegram等网站上关注。但是,由于以下原因,这些指标对于衡量社区实力没有太大价值:

    • 指标会被虚假帐户,付费关注者和订阅者等人为地夸大。
    • ICO开展空投活动并分发代币以用于关注,订阅,加入等。
    • 这些是衡量以开发人员为中心的社区的错误指标

    开发人员将使用的开源项目(例如,作为平台或协议)应衡量开发人员的活动,而不是空投猎人的活动。 上面提到的任何动作都不会在项目社区中产生粘性。 实际上,他们都使用临时激励措施有意歪曲了社区的指标。

    市值超过社区

    Apache软件基金会( ASF ,我是其中的成员,提交者和项目管理委员会的参与者)是最大,最古老的软件基金会之一,是数百个受欢迎的开源项目的所在地。 它有一个非常基本的信念:“ 代码之上的社区” 。 尽管没有该代码,ASF没有理由存在,但此口号将组织的运作方式编成代码。 首先,ASF是社区的家,而不仅仅是代码存储库。 该规范是一个良好而健康的社区的副产品,ASF致力于围绕项目团结起来发展健康的社区。

    例如,一个ASF项目通过邮件列表订阅者的数量,发送的电子邮件,打开/关闭的问题,创建/合并的拉取请求,完成的软件发布,提交者和PMC投票来衡量其活动和进度。 最后一个是项目健康的重要长期指标,因为它衡量社区成员对项目成功的承诺水平。 所有这些指标都是关于技术人员执行的活动的,而不是暂时激励空投猎人的活动。 这些活动很难伪造,因为它们要求某人为项目做某事(通常会消耗脑力和时间),而不仅仅是单击“喜欢/关注”按钮(这样更容易外包)。

    区块链项目的生态系统比典型的开源项目更为复杂。 有开发人员,也有矿工(或运行网络的任何人),投资者和用户。 仅仅衡量开发人员的活动并不能充分表明整个生态系统的实力,但是关注正确的指标将是一个好的开始。

    与ASF的“基于代码的社区”类似,我认为加密货币将从“基于市值的社区”中受益。 一个健康的社区是比暂时大的市值更重要的长期措施。

    代币或硬币的价格及其市值可以被熊市人为操纵或暂时影响。 一个强大而健康的社区可以经受跌宕起伏的考验。 一个不健康的社区,对项目没有任何粘性,无论如何都会崩溃。

    翻译自: https://opensource.com/article/18/11/what-blockchain-can-learn-open-source

    区块链开源代码什么意思

    展开全文
  • 什么区块链

    2020-04-11 21:20:53
    作者:知乎用户 ...首先不要把区块链想的过于高深,他是一个分布在全球各地、能够协同运转的数据库存储系统,区别于传统数据库运作——读写权限掌握在一个公司或者一个集权手上(中心化的特征),区块...

    作者:知乎用户
    链接:https://www.zhihu.com/question/37290469/answer/293890531
    来源:知乎 著作权归作者所有。
    商业转载请联系作者获得授权,非商业转载请注明出处。

    前言:

    首先不要把区块链想的过于高深,他是一个分布在全球各地、能够协同运转的数据库存储系统,区别于传统数据库运作——读写权限掌握在一个公司或者一个集权手上(中心化的特征),区块链认为,任何有能力架设服务器的人都可以参与其中。来自全球各地的掘金者在当地部署了自己的服务器,并连接到区块链网络中,成为这个分布式数据库存储系统中的一个节点;一旦加入,该节点享有同其他所有节点完全一样的权利与义务(去中心化、分布式的特征)。与此同时,对于在区块链上开展服务的人,可以往这个系统中的任意的节点进行读写操作,最后全世界所有节点会根据某种机制的完成一次又依次的同步,从而实现在区块链网络中所有节点的数据完全一致。
    在这里插入图片描述
    上图中,高亮的点就是区块链系统中分布在全球各地的一个个节点;而这些节点可以简单理解为一台服务器服务器集群

    一、问题的由来

    我们反复提到区块链是一个去中心化的系统,确实,「去中心化」在区块链世界里面是一个很重要的概念,很多模型(比如账本的维护、货币的发行、时间戳的设计、网络的维护、节点间的竞争等等等等)的设计都依赖于这个中心思想,那到底什么是去中心化呢?在解释真正去中心化之前,我们还是先简单了解下什么是中心化吧。

    中心化?

    回忆一下你在网上购买一本书的流程:

    第一步,你下单并把钱打给支付宝;
    第二步,支付宝收款后通知卖家可以发货了;
    第三步,卖家收到支付宝通知之后给你发货;
    第四步,你收到书之后,觉得满意,在支付宝上选择确认收货;
    第五步,支付宝收到通知,把款项打给卖家。流程结束。

    你会发现,虽然你是在跟卖家做交易,但是,所有的关键流程都是在跟支付宝打交道。这样的好处在于:万一哪个环节出问题,卖家和买家都可以通过支付宝寻求帮助,让支付宝做出仲裁。这就是一个最简单的基于中心化思维构建的交易模型,它的价值显著,就是建立权威,通过权威背书来获得多方的信任,同时依赖权威方背后的资本和技术实力确保数据的可靠安全。
    你一定会摆出一个巨大的问号脸 ⊙.⊙?——“通过权威背书来获得多方的信任,同时依赖权威方背后的资本和技术实力确保数据的可靠安全”,真的可以嘛?!
    假如说,支付宝程序发生重大BUG,导致一段时间内的转账记录全部丢失,或者更彻底一点,支付宝的服务器被ISIS恐怖组织的一个导弹全部炸毁了。而我刚刚转出去的100元找谁说理去,这个时候,你就成了刀殂上的鱼肉;支付宝有良心,会勉为其难承认你刚刚转账的事实,但他不承认你也没辙,因为确实连他自己也不知道这笔转账是否真实存在。
    上述就是中心化最大的弊端——过分依赖中心和权威,也就意味着逐渐丧失自己的话语权。

    去中心化?

    那么去中心化的形态是什么样子呢?还是拿刚才那个例子继续,我们构建一个极简的去中心化的交易系统,看看我们是如何在网络上从不认识的卖家手里买到一本书的。

    第一步,你下单并把钱打给卖家;
    第二步,你将这条转账信息记录在自己账本上;
    第三步,你将这条转账信息广播出去;
    第四步,卖家和支付宝在收到你的转账信息之后,在他们自己的账本上分别记录;
    第五步,卖家发货,同时将发货的事实记录在自己的账本上;
    第六步,卖家把这条事实记录广播出去;
    第七步,你和支付宝收到这条事实记录,在自己的账本上分别记录;
    第八步,你收到书籍。至此,交易流程走完。

    刚才“人为刀俎我为鱼肉”的情况在这个体系下就比较难发生,因为所有人的账本上都有着完全一样的交易记录,支付宝的账本服务器坏了,对不起卖家的账本还存在,我的账本还存在;这些都是这笔交易真实发生的铁证。
    当然,在这套极简的交易系统中,你已经发现了诸多漏洞和不理解,比如说三方当中有一个是坏人,他故意记录了对他更有利的转账信息怎么办;又比如说消息在传递过程中被黑客篡改了怎么办等等等等。这在以往的计算机概论或者计算机网络书本上中可能都有提及到——“类两军”和“拜占庭将军”问题。这里就不打算赘述,因为暂时跟主线不相关,感兴趣的同学可以去Google或者百度一下,你只需要知道,在我们下面即将展开讲到的区块链系统中,通过巧妙的设计,足以解决上述存在的BUG。
    既然话已说到这份上,相信了解一点技术、特别是有运维背景的同学大概能够从极简交易系统中窥视到了更多区块链的一些影子:

    1.分布式存储,通过多地备份,制造数据冗余
    2.让所有人都有能力都去维护共同一份数据库
    3.让所有人都有能力彼此监督维护数据库的行为

    在我看来,你猜测的基本上没错。其实这些就是区块链技术最核心的东西,外人看起来高大上、深不可测,但探究其根本发现就是这么简单和淳朴。当然,这里面肯定会有很多很多很多细枝末节的技术需要重构。
    如果你差不多认同上面的观点,那我们应该基本上可以达成共识,分布式部署肯定是构建去中心化网络理所当然的解决方向——通过P2P协议将全世界所有节点计算机彼此相互连接,形成一张密密麻麻的网络;以巧妙的机制,通过节点之间的交易数据同步来保证全球计算机节点的数据共享和一致。
    哈哈,说的轻巧,“交易数据这么重要的东西,在一个完全不信任的P2P网络节点中以一种错综复杂的方式传递,数据的一致性和安全性谁来保证,如果说互相监督,他们到底怎么做到?”好了,不卖关子了,下面让我们围绕这个最最最最直接的问题开始进入到真正区块链的世界,抽丝剥茧看看它到底是如何一步一步形成的,又是如何一步一步稳定运转。

    从全球节点到交易数据

    在这里插入图片描述
    这张图的制作的意义为的是帮助你在宏观上先快速理解区块链中所涉及到的相关名词以及他们的层级关系。同时,文章的知识结构和设计思路也大抵上也会按照:

    1.首先,将区块作为最小单位体,讲述极简区块链系统是如何运转的;
    2.接着,进入到比区块更小单位体——交易记录,理解区块链是如何处理数据的;
    3.最后,将所有知识点柔和在一起,重回到区块和区块链,完整讲述整个工作流程。

    区块,混沌世界的起源

    既然已经达成共识,所以,我们事先构建好了一个去中心化的P2P网络;同时,为了让读者朋友们听起来更轻松,我先粗暴的规定在这个极简的区块链系统里,每十分钟有且仅产生一笔交易。
    故事继续,在节点的视野里,大概每十分钟会凭空产生一个建立在自己平行宇宙世界的神奇区块(你可以将区块想象为一个盒子),这个区块里放着一些数字货币以及一张小纸条,小纸条上记录了这十分钟内产生的那唯一一笔交易信息,比如说——“小A转账给了小B100元”;当然,这段信息肯定是被加密处理过的,为的就是保证只有小A和小B(通过他们手上的钥匙)才有能力解读里面真正的内容。
    这个神奇的区块被创造出来之后,很快被埋在了地底下,至于埋在哪里?没有一个人不知道,需要所有计算机节点一起参与进来掘地三尺后才有可能找到(找到一个有效的工作量证明)。显然,这是一件工作量巨大、成果随机的事件。但是呢,对于计算机节点来说,一旦从地底下挖出这个区块,他将获得区块内价值不菲的数字货币,以及“小A转账给了小B100元”过程中小A所支付的小费。同时,对于这个节点来说,也只有他才有权利真正记录小纸条里的内容,这是一份荣耀,而其他节点相当于只能使用它的复制品,一个已经没有数字货币加持的副本。当然这个神奇的区块还有一些其他很特别的地方,后面我们会再细细聊。
    为了更好的描述,我们将计算机节点从地底下挖出区块的过程叫做「挖矿」,刚才说了,这是一件工作量巨大、运气成分较多、但收益丰厚的事儿。
    过了一会儿,来自中国上海浦东新区张衡路上的一个节点突然跳出来很兴奋的说:“ 我挖到区块了!里面的小纸条都是有效的!奖励归我!” 。虽然此刻张衡路节点已经拿到了数字货币,但对于其他计算机节点来说,因为这里面还涉及到其他一些利益瓜葛,他们不会选择默认相信张衡路节点所说的话;基于陌生节点彼此不信任的原则,他们拿过张衡路节点所谓挖到的区块(副本),开始校验区块内的小纸条信息是否真实有效等等。在区块链世界里,节点们正是通过校验小纸条信息的准确性,或间接或直接判断成功挖出区块的节点是否撒谎。(如何定义小纸条信息真实有效,后面会讲解,这里暂不做赘述)。
    在校验过程中,各个节点们会直接通过下面两个行为表达自己对张衡路节点的认同(准确无误)和态度:停止已经进行了一半甚至99.99%的挖矿进程;将张衡路节点成功挖出的区块(副本)追加到自己区块链的末尾。
    你可以稍微有点困惑:停止可能已经执行了99.99%的挖矿行为,那之前99.99%的工作不是就白做了嘛?!然后,区块链的末尾又是个什么鬼东西?
    对于第一个困惑。我想说,你说的一点没错,但是没办法,现实就是这么残酷,即便工作做了99.99%,那也得放弃,这99.99%的工作劳苦几乎可以视为无用功,绝对的伤财劳众。第二个困惑,区块链和区块链的末尾是什么鬼?这里因为事先并没有讲清楚,但是你可以简单想象一下:区块是周期性不断的产生和不断的被挖出来,一个计算机节点可能事先已经执行了N次“从别人手上拿过区块 -> 校验小纸条有效性”的流程,肯定在自己的节点上早已经存放了N个区块,这些区块会按照时间顺序整齐的一字排列成为一个链状。没错,这个链条,就是你一直以来认为的那个区块链。如果你还是不能够理解,没关系,文章后面还会有很多次机会深入研究。

    走进区块内,探索消息的本质

    上面我们构建了一个最简单的区块链世界的模型,相信大多数同学都已经轻松掌握了。但是别骄傲也别着急,这还只是一些皮毛中的皮毛,坐好,下面我们准备开车了。
    前面我们说到“大概每十分钟会凭空产生一个神奇的区块,这个区块里放了一张小纸条,上面记录了这十分钟内产生的这唯一一笔交易信息”。显然,十分钟内产生的交易肯定远不止一条,可能是上万条,这上万条数据在区块链世界是如何组织和处理的呢?另外,为什么在纸条上记录的只是某一次的交易信息,而不是某一个人的余额?余额好像更符合我们现实世界的理解才对。
    既然存在这样那样的疑问。现在我们就把视线暂时从“区块”、“区块链”这些看起来似乎较大实体的物质中移开,进入到区块内更微观的世界里一探究竟,看看小纸条到底是怎么一回事,它的产生以及它终其一生的使命:

    1.发起交易的时候,发起人会收到一张小纸条,他需要将交易记录比如说“盗盗转账给张三40元”写在纸上。说来也神奇,当写完的那一刹那,在小纸条的背面会自动将这段交易记录格式化成至少包含了“输入值”和“输出值”这两个重要字段;“输入值”用于记录数字货币的有效来源,“输出值”记录着数字货币发往的对象。
    2.刚刚创建的小纸条立马被标记成为“未确认”的小纸条。从地下成功挖出区块并最终连接到区块链里的小纸条一开始会被标记为“有效”。若这条有效的小纸条作为其他交易的输入值被使用,那么,这个有效的小纸条很快会被标记为“无效”。因为各种原因,区块从链上断开、丢弃,曾经这个区块内被标记为“有效”的小纸条会被重新标记为“未确认”。
    3.区块链里面没有账户余额的概念,你真正拥有的数字资产实际上是一段交易信息;通过简单的加减法运算获知你数字钱包里的余额。

    上面的1、2、3仅仅作为结论一开始强行灌输给你的知识点,其中有几个描述可能会有点绕,让你觉得云里雾里,没有关系,因为我们立刻、马上就开始会细说里面的细枝末节。
    在这里插入图片描述
    上图,是区块内,盗盗在一张小纸条上记录下的交易信息,后被格式化的呈现
    上图就是从无数打包进区块内的小纸条中,抽取出来的一张,以及它最终被格式化后的缩影。单看右侧的图可能很容易产生误会,虽然看起来有多行,但实际上就是“盗盗转账给张三40个比特币”这一条交易数据另外的一种呈现形态。因为区块链世界里面这么规定,每一条交易记录,必须有能力追溯到交易发起者 发起这笔交易、其中所涉及金额的上一笔全部交易信息;即这笔钱从何而来的问题。这其实很容易理解,在去中心化的网络中,通过建立交易链、和通过交易链上的可溯源性间接保证数据安全和有效。
    我们继续看,在区块链世界里,我们是如何仅通过“盗盗转账给张三40个比特币” 这条交易信息完成转账流程的。其实跟现实中你在路边买一个包子的流程大抵上相同。

    第一步:判断是否有足够的余额完成交易

    这里我们再一次重申,在比特币的区块链世界里是没有余额的概念(以太坊的底层区块链有余额概念),余额是通过简单数字的加减最终获得,你拥有所谓的数字货币实际上是因为你拥一条交易记录,即 “盗盗转账给张三40个比特币”!这里,我们还是拿这条记录说事:
    追溯“输出值”是“盗盗”相关的全部有效交易记录作为,对有效交易中的数字进行简单求和,判断是否大于等于40,如果确实大于等于,则将这些有效的交易记录合并形成一条新的交易记录(如下图)。如果小于40,其实可以不需要再继续往下探讨。
    在这里插入图片描述
    就上图的例子,我们追溯到曾经转账给盗盗的有效交易记录有“小A转账给盗盗10 btc”、“小B转账给盗盗20 btc”、“小C转账给盗盗 25 btc”,我们需要将这三条交易记录合并成一条更复杂描述的交易记录,即 “( 小A转账给盗盗10 btc + 小B转账给盗盗20 btc + 小C转账给盗盗 25 btc ) 转账给张三40 btc ”

    第二步:判断是否需要找零交易

    对追溯到的有效交易数字求和,如果发现大于需要支付的金额,需要将多出的数字重新支付给自己,相当于找零。对应生成了一条全新的交易记录。
    就上图例子来说,我们最后合并成的交易记录 “( 小A转账给盗盗10 btc + 小B转账给盗盗20 btc + 小C转账给盗盗 25 btc + 盗盗转账给盗盗15 btc ) 转账给张三40 btc ” 事实上等同于“盗盗转账给张三40 btc”。其中“盗盗转账给盗盗15 btc”就可以理解找零。

    第三步:发出去,让全球节点认同和备份小纸条

    这条内部重新处理过的复杂交易记录被塞进区块,埋到地下,等待节点挖出来,一旦区块被挖矿成功,并且该区块最终被连在了区块链的主链上。张三将最终拥有了这条交易记录,而先前的“小A转账给盗盗10 btc” 、“小B转账给盗盗20 btc” 、“小C转账给盗盗25 btc”都将被视为已经使用过的交易记录——从此被贴上“无效”的标签,意味着这些交易记录将永远不会再被追溯到。
    我们最后一次重申,只是希望让你加深印象:拥有数字货币=拥有交易记录!

    通过设计巧妙的精巧密码学保证数据安全

    记录着交易信息的小纸条借助区块这个载体,在分布式的网络中以不同的轨迹错综复杂的传递,我们前面说了,你真正拥有的数字资产实际上是一段交易信息,而不是你常规意义上理解的货币。所以这个过程就需要重点解决两个问题:

    接受到的这条交易记录在传输过程没有被其他人所篡改
    接受到的这条交易记录确实是由发起交易的人所创造

    在这里,我们需要事先引入两个知识点,可能稍微有点难消化,但都是计算机领域较为成熟的和基础的概念。
    第一个知识点:SHA256()函数。你只需要知道,任意长度的字符串、甚至文件体本身经过SHA256函数工厂的加工,都会输出一个固定长度的字符串;同时,输入的字符串或者文件稍微做一丢丢的改动,SHA256() 函数给出的输出结果都将发生翻天覆地的改变。注意,SHA256()函数是公开的,任何人都能使用。上图,仅仅一个小数点的变化,输出的结果已经翻天覆地了。

    第二个知识点:非对称加密。你也只需要了解,任何人手里都有两把钥匙,其中一把只有自己知道,叫做“私钥”,以及一把可以公布于众,叫做“公钥”;通过私钥加密的信息,必须通过公钥才能解密,连自己的私钥也无解。公钥可以通过私钥生成多把。
    有了这些知识点的加持,上面两个问题开始变得有解。下面我们来看下内部是如何扭转和工作的吧,这里拿“小A 转账给了小B 100元钱” 举例:
    在这里插入图片描述

    第一步:小A会先用SHA256函数对自己的小纸条进行处理,得到一个固定长度的字符串,这个字符串就等价于这张小纸条。
    第二步:小A使用只有自己知道的那一把私钥,对上面固定长度的字符串进行再加密,生成一份名叫数字签名的字符串,这份数字签名能够充分证明是基于这张小纸条的。你可以这么理解,在现实中,你需要对某一份合同的签署,万一有人拿你曾经在其他地方留下的签名复制粘贴过来怎么办?!最好的办法,就是在你每一次签名的时候,故意在字迹当中留下一些同这份合同存在某种信息关联的小细节,通过对小细节的观察可以知道这个签名有没有被移花接木。步骤一和步骤二的结合就是为了生成这样一份有且仅针对这条小纸条有效的签名。
    第三步:小A将「明文的小纸条」、刚刚加密成功的「数字签名」,以及自己那把可以公布于众的「公钥」打包一起发给小B。
    第四步:当小B收这三样东西,首先会将明文的小纸条进行SHA256()处理,得到一个字符串,我们将其命名为“字符串2”。然后,小B使用小A公布的公钥,对发过来的数字签名进行解密,得到另外一个“字符串1”。通过比对“字符串1”和“字符串2”的一致性,便可充分证明:小B接受到的小纸条就是小A发出来的小纸条,这张小纸条在中途没有被其他人所篡改;且这张小纸条确实是由小A所编辑。

    可以看得出来,加解密的过程几乎是一环套一环,中途任何环节被篡改,结果都是大相径庭。借助这一连串的机制,其实已经能够很好的在公开、匿名、彼此不信任的分布式网络环境中解决数字交易过程中可能遇到的很多问题。这个环节可能确实有点难理解,现在,我需要你停下来,静下心,花上几分钟闭目慢慢回味其中设计精湛的地方。

    掌握了这部分知识以后,我们在这里回答一下前面没有解释清楚的问题,「节点对区块的检验」检验的到底是什么?实际上就是:

    检验区块内的交易记录签名是否准确(是否被篡改)
    检验区块内的交易记录输入值是否“有效”(是否使用过)
    检验区块内的交易记录输入值的数字之和是否大于等于输出值的数字

    重回“区块”和“区块链”的世界

    好了,对小纸条和交易记录的研究我们点到为止,其实信息量已经是巨大的了,让我们合上盖子,重回较大的实体、继续聊聊“区块”和“区块链”的话题。还记得,咱们在一开始讲到关于区块的特征吗?区块创造后被埋在地下,需要经过节点们马不停蹄的挖采、而且是凭运气的挖采才有可能获得——不仅仅如此,事实上他还有其他很多神奇的地方,比如说:

    1.凭空产生的区块在刚刚创建的时候会形成一股强大的黑洞效应,它会尝试将这段时间全世界各个节点上产生的所有小纸条(交易记录)统统吸进来;在合上区块盖子之前,同时会在区块内放上一些数字货币以及其他一些东西。

    2.区块拥有一个唯一的ID,但它只会在这个区块被节点成功从地下挖出来之后创建。这个ID至少会跟「区块内所有小纸条的集合」、「即将与之相连的上一个区块ID」以及「挖矿节点的运气值」等因素相关。既然前面我们已经简单了解了“SHA256()函数”这个东西,这里不妨透露给大家:“区块ID
    = SHA256(‘区块内所有小纸条的集合’+’即将与之相连的上一个区块ID’+‘挖矿节点的运气值’+’…’)” ;基于先前掌握的知识,然后你应该知道区块内任意一张小纸条的信息稍微做改动、或者节点挖矿运气好一点坏一点等等,当前区块的ID都会 “ biu~
    ”的发生改变。

    基于上述1、2点,如果阅读足够仔细的同学可能会有些头大。在文章开头为了更好的描述,我在设计简化区块链系统的时候故意模棱两可了几个概念,这也许已经误导到了部分同学。这里不得不停下来和你一起修正下之前在你大脑中已经构建的区块链世界观。我们前面讲道,“在节点的视野里,大概每十分钟会凭空产生一个建立在自己平行宇宙世界的神奇区块”。如何正确去理解这句话呢?——拥有上帝之眼的你,可以这么拆解问题、看待问题:

    1.同一个周期内,全网并不是产生唯一的一个区块等待挖掘;每个节点事实上都在周期性的创造区块和挖出区块;只是在某一个节点的视野里,它不能感知到另外一个节点上区块的产生。为何这里要特别强调“在某一个节点的视野里”,就是因为我们刚刚讲到,从区块的视角来说,区块的凭空产生,是基于即将与之相连的上一个区块ID;而从节点的视角来看,区块的凭空产生是基于当前节点区块链末尾的那个区块ID产生的。
    2.全网会尽力控制在一个周期内只有一个节点能够成功挖出区块,但是不能够完全避免多个节点同时挖出区块的可能性;如何尽力控制?比如说,当大伙挖矿的热情高涨、工作效率提高,区块会被埋在更深更广的地方等。简而言之,通过提高工作难度,来维持这个平衡。另外,值得注意的:产生区块、挖出区块、校验区块,他们的时间周期近乎相同。

    分叉

    现在,我们终于对“区块”这个概念有了更全面的认识,文章开头讲的故事就可以继续展开来絮叨絮叨:
    假如几乎同一时间,「中国上海浦东新区张衡路」上的节点和「美国纽约曼哈顿第五大道」上的节点异口同声喊出来:“我挖到区块了!里面的小纸条都是有效的!奖励归我!”。其他节点也几乎同时参与了对这两个区块的校验,结果发现这俩都没毛病,各节点也开始犯困,因为在他们的视野里他们并不清楚最后哪一个区块应该会被主链接纳。算了!都连在自己区块链尾巴上吧,这时尴尬了,区块链硬生生的被分叉了!

    产生分叉

    你肯定在想,那还得了,这种情况继续下去,每个节点的区块以及他们整理维护的小纸条都将变得不一样,这已经严重违背了区块链世界里第一大最基本原则——所有节点共同维护同一份数据。所以,为了解决这个问题,区块链世界引入了一条新的规则——拥有最多区块的支链将是真正被认可有价值的,较短的支链将会被直接Kill掉。
    我们大伙都知道挖矿的过程存在巨大的工作量(如果没有任何难度,把区块扔在人群中,必然同一时间发现区块的节点数量将大大增加,也就会产生无数的支链,通过这个例子,你大概也就能够明白,比特币的区块链世界为什么需要设置工作难度了吧),并且在计算机的硅基世界里,不可能出现所谓 “同时” 的概念,哪怕纳秒的差别,那也总是会有先后顺序。所以理论上,“分叉”的这种僵局很快会在下一个区块被挖掘出来(以及校验区块)的时候被打破,实在不行下下个,或者下下下个……总之机制可以让整个分叉的区块链世界迅速稳定下来。
    “分叉”这种僵局在确认下一个区块(以及校验小纸条)的时候被打破,从而整个区块链世界迅速稳定下来。

    双花”与“51%攻击”

    你可能已经开始困惑或者有点兴奋,末尾几个区块的排序在修复过程中,因为时间差肯定会产生一些模棱两可的地方,这往往会给数据安全埋下一颗雷。一个最简单的假设——我记录的一张小纸条很不巧地被归在了一条较短的支链上,这条支链在竞争过程中理所当然输掉了比赛,区块被丢弃、小纸条被无情的贴上“未确认”的标签。在等待下次区块重新确认的过程中,这个时间差内,我,好像、似乎可以做点什么坏事 ԅ(¯﹃¯ԅ) ,就比如说“双花”(双花,花两次,双重支付的意思)
    你脑海中也许很快浮过的这样的构想,可不可能通过下面这种方法触发双花问题的产生,从而让我不劳而获:
    在这里插入图片描述

    1.假设有一个名叫X-Man的坏家伙,他控制了一个计算机节点,这个节点拥有比地球上任何一个节点算力都强大的计算机集群。
    2.首先,X-Man事先创造了一条独立的(不去广而告之)、含有比较多区块的链条。其中一个区块里放着“X-Man转账给X-Man 1000元”的纸条。3.接着,X-Man跟张三购买了一部手机,他在小纸条上记录下“X-Man转账给张三1000元”。张三已经比一般的卖家谨慎了,他在这条信息被三次确认后(即三个区块被真实挖出、校验和连接)才将手机给了X-Man。按照我们之前的理解,这条交易记录已经板上钉钉永远无法被串改。
    4.X-Man拿到手机之后,按下机房的开关,试图将先前已经创造的区块链条连接在自己这个节点区块链的末尾。
    5.大功告成,X-Man拥有了一条更长的区块链条,那些较短、存放着“X-Man转账给张三1000元”的区块链,以及在区块链世界里那则真实转账行为被一同成功销毁。(???)

    事实真的如此吗?在这里我可以很负责任的说,too young too simple,区块链世界规则的制定远比我们想象的要健全很多,还记得我们之前讲的“区块的ID至少会跟区块内所有小纸条的集合、即将与之相连的上一个区块ID、当前产生区块的时间戳以及挖矿节点的运气值等因素相关”。 在这里,正是因为打算连接到主链的过程中,主链会立马意识到,那条事先准备的链子(的第一个区块)的时间戳存在异常,不属于当前区块链世界里线性增长的时间戳,于是马上意识到这个事先准备的链子(的第一个区块)是无效的,需要重新计算。

    在这里插入图片描述

    在区块链的世界,重新计算的行为等同于把自己(节点)置身于同一个起跑线,跟世界上其他所有的节点一同竞争挖矿。你会说,我拥有更强大的计算能力,但是对不起,跟你竞争的对象并不是第五大道、南京西路、香榭丽舍大道上的某一个节点,而是全球所有算力的集合,在这个集合中,你拥有的算力永远都只是一个很小的子集。所以,根据区块链算力民主、少数服从多数的基本原则,这个构想将永远不会成立。

    除非…

    你控制着全球51%的算力,这也就是区块链世界里另外一个著名的概念,叫做“51%攻击”,但这也仅仅是一个理论值,在真实世界里这样的攻击我个人觉得是很难发动起来的,这里面就牵涉到很多经济、哲学甚至政治的因素。举个最简单的例子:X-Man为了回滚刚刚发生的一笔交易记录,成功发起了51%攻击,这意味着很快整个区块链系统将会崩盘,因为这次攻击已经严重伤害到人们对这套系统的信任,接着比特币开始暴跌至几乎一文不值;但是这个拥有51%算力的X-Man原本完完全全可以通过挖矿的方式获取更多收益,购买无数的iPhone手机。那他不是脑袋不是坏了还能是啥?对51%攻击话题感兴趣的同学可以阅读这篇文章《什么是比特币51%攻击?》。

    展开全文
  • 什么区块链?字面上看:区块链是由一个个记录着各种信息的小区块链接起来组成的一个链条,类似于我们将一块块砖头叠起来,而且叠起来后是没办法拆掉的,每个砖头上面还写着各种信息,包括:谁叠的,什么时候叠的,...
  • 什么区块链

    2018-03-13 18:00:09
    最近区块链这么火,我也大概了解了一下什么事区块链。总得来说区块链就一句话:“分布式去中心化的数据存储解决方案(系统)”它是一门技术的运用方式。另外还有一个特点就是数据不可更改。包括数据的拥有者(除非你...
  • 昨天《 区块链什么能防伪、防篡改?》一文,又请出5位皇帝来帮你理解比特币的底层技术区块链什么能防伪、防篡改。 今天,我们延续昨天的话题,讲讲区块链的记账方式是如何让其成为制造信任的机器的? 01 传统的...
  • 本小节我们讨论下区块链的分类, 区块链的分类可以从2方面进行划分,分别是以参与方分类和以链与链的关系分类。 1. 公有链  公有链,顾名思义,公有链对外公开,用户无需注册和授权就可以访问网络和区块链,公有...
  • 什么区块链?从字面上看:区块链是由一个个记录着各种信息的小区块链接起来组成的一个链条,类似于我们将一块块砖头叠起来,而且叠起来后是没办法拆掉的,每个砖头上面还写着各种信息,包括:谁叠的,什么时候叠的...
  • 什么区块链?

    2019-10-26 21:35:48
    1、什么区块链区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作...
  • 区块链什么呢,本质上讲,区块链是一种分布式、去中心化的网络数据库系统,这个系统会让数据的存储、更新、维护、操作变得不同。 我们今天要讲的区块链呢,它有四项不可缺的核心技术,分别是:分布式存储、共识...
  • 我们知道国内现在的区块链以联盟链为主,而且阿里,腾讯,百度,华为,各大银行都有在区块链领域内布局,在国外,区块链的一些实际的应用也都有一些落地的案例。比如:航运巨头马士基和科技巨头IBM于...
  • 什么区块链Layer 2扩容

    万次阅读 2019-03-18 14:51:57
    约瑟夫•潘解释这一概念时说,“基本上这就相当于你想做一些数学运算,但这个运算相当复杂,需要很长时间才能做好,所以你请别人(子链)为你做这件。”并且,世界上任何人都可以见证这个过程,并指出错误。若有...
  • 知乎高赞 | 区块链什么? (一)

    千次阅读 2019-08-28 17:07:27
    首先不要把区块链想的过于高深,他是一个分布在全球各地、能够协同运转的数据库存储系统,区别于传统数据库运作——读写权限掌握在一个公司或者一个集权手上(中心化的特征),区块链认为,任何有能力架设服务器节点...
  • 区块链什么

    2018-02-26 12:12:22
    首先要搞清一个问题——比特币是区块链,但是区块链并不是比特币。于是,在区块链的这个问题回答里,提到“矿工”,“挖矿”,“最长链”,“分叉”等等词的,其实都不准确。写一点上个月讲课的内...
  • 什么区块链即服务BaaS?

    千次阅读 2018-06-15 14:25:19
    区块链即服务BaaS主要是由微软、IBM两个巨头提出的概念,说白了它其实就是一种新型的云服务,一种结合区块链技术的云服务。比如微软的Azure云计算平台、IBM的Bluemix Garage云平台都提供区块链即服务BaaS。区块链即...
  • 什么区块链概念

    2018-09-06 10:54:42
    比特币成功的最大原因是它在技术上成功实现了数字货币的去中心化。而去中心化这一特性对...讨论理论是一回,但是在现实中如何实现是另一回。任何由比特币和区块链技术所引发的去中心化的改进都需要考虑现实情...
  • 区块链钱包:不管现实世界的钱包还是区块链钱包,只要是钱包,就具有钱包最本质特性:装钱。区块链钱包也不例外。简单来说,区块链钱包是一个存储加密货币的软件程序。从形式上看,非常像网络银行的账户,也有客户...
  • (点击上方公众号,可快速关注)来源: 阮一峰 ...区块链到底是什么,有何特别之处,很少有解释。下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也不是很难的东西,核心概念非常
  • 区块链 Michael Nofer • Peter Gomber • Oliver Hinz • Dirk Schiereck 关键词:区块链 商业模式 解题 数字货币 1区块链——颠覆性的技术 区块链技术和分布式账本吸引了大量的关注,并在不同的行业引发了多...
  • 目录 目标 链式结构 一系列的区块串在一起形成的链 区块链是一种去中心化的记账技术 什么是账本 ...只要您对区块链感兴趣,想要了解区块链什么,想了解区块链的基础概念和原理,都可以...
  • 区块链钱包分类根据私钥的存储方式,即用户是否掌握了私钥,我们可以把钱包划分为,“中心化钱包”及“去中心化钱包”。存储方式是指存在哪,只有用户持有私钥导入钱包后私钥仅存储在用户设备上的才叫“去中心化”,...
  • Part 0绪论 今天我要介绍的主题是区块链,分为如下三部分进行: 首先介绍一些区块链的基础知识,接着... 区块链是个什么东西呢?在2016年发布的区块链白皮书中给出了如下的定义:它是一种分布式存储技术、点对点...
  • 为了便于大家理解区块链在元宇宙中的作用,需要先了解元宇宙发展史及需要的技术支撑,我从网上...我们从物理世界几个重要的因素人、物、、钱和经济做下列举说明区块链技术是如何在虚实之间进行映射转换的。 1、人...
  • 什么是“区块链ICO”?

    千次阅读 2017-08-14 00:00:00
    本文从以下六个方面介绍ICO的基本知识及投资技能:①什么是“区块链”,“以太坊”和“智能合约”;②什么是ICO;③ICO的运作方式;④参与到ICO运作的途径;⑤了解ICO的回报;⑥ICO的相关规定。本文来源于chipin.com...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,332
精华内容 9,332
关键字:

什么事区块链