区块链简史:解读这场技术革命的前世今生
链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
真格基金徐小平的一个“内部讲话”被泄露,揭开了创投圈对区块链的新一轮热衷。
在这份微信群的“内部讲话”中,徐小平把区块链革命比喻为一场顺之者昌、逆之者亡的伟大技术革命,“我以全部的智慧呼吁大家,千万不要临渊羡鱼,而要冲到浪涛中去”。
几乎在同一天,峰瑞资本也传出消息,成立区块链小组,专注投资区块链行业,而就在几天前,火币网引来了一位前华尔街高管,开拓其美国市场。
仿佛突然之间,这个早已被发现了的新大陆,成为了众人争相蜂拥的淘金地。
谈及这波热潮,一位投资机构投资经理说,经历了2017一整年的区块链和数字货币的狂热,数字货币和区块链应用的第一波收获期来了。
时间回到2017年的倒数第二天,即12月30日,一个在此前并不耀眼的瑞波币突然刷新了人们的认识,价格在不到2天时间一度攀升55.9%,达到至2.23美元,而1个月前它的价格才仅为0.25美元。
虚拟数字货币是目前区块链技术最好的应用领域之一,即便国内的监管政策已经明确对ICO及数字货币的交易亮起红灯,但人们对于区块链技术的热情并不因此减弱。
区块链已然继撒币答题,成为了2018年的第二个“风口”了。随着越来越多地被提起,也有越来越多的人会问,什么是区块链。
本文即来问你解答。
区块链的本质:点对点的记账系统
区块链本质上是一个分布式的公共账本,将各个区块连成一个链条,实际上是一种点对点的记账系统(一个总账本),每一个点都可以在上面记账(记录信息)。(在此前《比特币简史 | 一文看懂这个价值3万元的数字黄金》一文曾作过阐述。)
传统的记账系统,记账权只掌握在中心服务器手中。比如所有QQ、微信上的信息,只能由腾讯的服务器来记账;淘宝、天猫的信息,只能由阿里的服务器来记账。
但在区块链系统,每台计算机是一个节点,一个节点就是一个数据库(服务器)。任何一个节点都可以记账,而且直接连接另外一个点(即P2P模式),中间无需第三方服务器。当其中两个节点发生交易时,这笔加密的交易会广播到其他所有节点(记账),目的是防止交易双方篡改交易信息。
打个比方,在一个100人的村子,张三买了李四家一头牛,向他支付1万元。普通的做法是,他可以告知中间人村会计赵六(总记账人),将自己账下1万元转到李四账下。
但在区块链系统里,张三无需再通过总记账人赵六,而是直接将自己账本的1万元记到李四账本;同时这笔交易信息也会传到全村(即整个区块链系统)。当村里其他人知道并确认了这笔交易,交易才算最终完成。因为这笔交易被加密处理,只有李四才能收到这1万元,而其他98人只能在账户内看到有这笔交易信息,但无法看到这笔信息是转给谁的。此外系统可以完整记录交易过程,整个交易可以溯源。
假如张三把这1万元误转给了王五,因为交易被加密,王五在没有密钥的情况下无法得到这笔转款。另外,如果张三转完这1万元后又重复转给李四1万元,因为其他98人已经收到过相同信息便不会再确认,这种情况下交易便不会成立。还有一种情况,张三发起1万元转款后突然后悔,想私自把转的1万元改成100元,他需要将其他98人账户内的信息都要由1万改成100元。如果全网节点足够大,这样的修改是需要极高成本(远高于交易成本),理论上这种修改是不能实现的。
这体现了区块链的几个重要特征:完全点对点,没有中间方;信息加密,注重隐私;交易可追溯;所有节点信息统一,交易不可篡改(修改一个节点信息,需要其他节点共同修改)。
所以区块链要解决的问题是:消除中介信用问题。当然比特币是目前区块链技术在数字货币领域最好的应用之一;此外在支付领域,区块链技术可以消除第三方而直接点对点支付,而且使支付更安全,溯源的特性可以监管洗钱等违法活动。随着研究的深入,区块链也已经开始在征信、版权、公证、证券、资产管理等领域逐渐得到应用。
区块链的产生
区块链(Blockchain)的概念最早可以追溯到2008年末,化名为“中本聪”的神秘人士在论坛中发表了一篇论文《比特币:一种点对点的电子现金系统》,首次提出了区块链的概念。
文中提到,为解决电子货币的安全问题,可由时间戳服务器为一组,以区块(Block)形式存在的数据实施哈希(Hash)后加上时间戳,并且广播该哈希,每个时间戳将前一个时间戳纳入其哈希中,随后的时间戳会对之前的时间戳进行增强,由此形成了一个“区块链”。
区块的产生可以这样理解:因为这种点对点的交易需要记录在一个账本,所以系统设置了一个功能:每隔10分钟就产生一张用于记录这些信息的账单(即区块),但是这个账单(区块)只能给最有能力的那个人记账,证明他有能力的方式,靠解答一道极为复杂的数学题(哈希运算)。这种方式,也被称为“挖矿”。
答题开始,每个人要在系统里预留一个地址,当最有能力的A率先解出难题后,他可以得到区块,当初预留的地址自动记录在区块上。同时为了奖励他,系统会向这个预留的地址发放一定数量的比特币。所有区块连在一起,形成区块链。
区块很像数据库的记录,每次写入数据,就是创建一个区块。每个区块包含两个部分: 区块头(Head),记录当前区块的元信息;区块体(Body),记录实际数据。
区块头的元信息,主要是区块生成时间,实际数据(即区块体)的Hash;上一个区块的Hash(哈希运算值)。
一个区块不等于一个节点:一个节点实际上就是一台接入区块链的计算机(服务器),任何联网的计算机都可以接入区块链,所以区块链上的节点是无数的;但是区块链上的区块是有限的,即每10分钟产生一个区块,达到一定数量后便不再新增。所以一个活跃(算力强)的节点可能有多个区块的记账权,而一个不活跃(算力低)的节点就只有很小一部分区块的记账权。
实际上在“挖矿”中,也有一些规则:比如为了保证各节点信息同步,所以新区块添加速度不能太快,系统设计为平均每10分钟全网才能生成一个新区块,产出速度不是通过命令达成的,而是故意设置了海量的计算;为了保证是正好10分钟产出一个区块,设计了难度系数的动态调节机制,每两周(2016个区块)调整一次,比如两周内区块平均产生速度如果是9分钟,则难度系数要调高10%,反之同理;如果区块链分叉了(一个区块上接入了两个区块),采纳的是最先达到6个新区块(称为“六次确认”)的链条。
其发展经历了三个阶段:
酝酿期:2009-2012年,经济形态以比特币及其产业生态为主;
萌芽期:时期为2012-2015年,区块链随着比特币进入公众视野,新生的钱包支付和汇款公司出现,区块链经济扩散到金融领域。区块链底层技术创新不断。区块链技术从比特币系统中剥离出来。
发展期:2016年开始探索行业应用,出现了大量区块链创业公司。2017年ICO的火热让区块链受到前所未有的关注。
区块链的价值:机器信任、价值传递、智能合约
产生的区块链,有什么价值呢?实际上这从区块链的特性上就可以得出结论:去中心化、交易点对点、不可篡改的特性可以实现机器信任;交易不可逆、信息加密的特性可以实现价值传递;此外信息点对点、不可篡改等还可以实现智能合约。
机器信任。比如在区块链上,不存在一个第三方的中心机构,而完全依靠点对点、不可篡改等交易机制保证双方信任。区块链技术不可篡改的特性,改变了中心化的信用创建方式,通过数学原理而非中心化信用机构来降低成本,建立信用。
此前寻找中国创客曾报道的布比区块链旗下壹诺金融(文章《用区块链重塑供应链金融模式,他如何做到企业信用可传递?》)便是一家借助区块链技术实现企业信用可传递的区块链应用项目。
价值传递。区块链是第一个能够实现价值传递的网络:一方面,简单的价值传输,让数字资产可以在区块链上自由流通;另一方面,发行代币,让融资更加便利,同时持有者还能享受整个生态的服务(比如一种代币是基于一种区块链应用而产生,拥有代币,代表了拥有应用服务)。
智能合约。这一条款以计算机语言而非法律语言记录,是指将电子合约与区块链技术结合,当一个预先编好的条件被触发时,智能合约执行相应的合同条款。
比如当A公司与B公司签署了一份合约,规定3个月后产品交付自动打款。当条件(3个月后、产品交付)触发后合约自动执行,钱款直接打到对方账户。
这种智能合约的好处在于,一方面降低签约成本、执行成本和合规成本等,尤其在大量日常交易情况下;另一方面还能防止单方面毁约,保障合同按规定执行。
区块链的劣势
实际上区块链作为一种新兴技术,价值固然存在,但也显现出了一些劣势。
其一便是效率低。数据写入区块链,最少要等待十分钟,所有节点都同步数据,则需要更多的时间。拿比特币举例,当前产生的交易有效性受网络传输影响,比特币交易每次的确实时间大约10分钟,6次确认的话需要一个小时。因此区块链的交易数据是有延迟性的。
其二便是能耗,区块的生成需要矿工进行无数无意义的计算,这是非常耗费能源的。英国一家电力信息网POWER-COMPARE提供的预测数据显示,按照目前比特币挖矿、交易耗电量的增长速度,至2020年比特币耗电量将会与目前全球用电量持平。尽管这一数据备受质疑,但是那些藏在深山老林的“矿场”则实实在在展现了这门生意的耗能景象。
此外,在区块链公有链中,每一个参与者都能够获得完整的数据备份,所有交易数据都是公开和透明的。如果想知道一些商业机构的帐户和交易信息,就能知道他的所有财富还有重要资产和商业机密等,隐私保障难。
当然,区块链的去中心、自治化的特点淡化了国家监管的概念。在监管无法触达的情况下一些,市场的逐利等特性会导致区块链技术应用于非法领域,为黑色产业提供了庇护所。
区块链的应用
但即使发展到现在,区块链目前最好的应用领域还是在加密数字货币,2017年那波ICO热潮也从一方面展现了这波应用到了一个新阶段。在产业应用上,则处于起步阶段。尽管如此,越来越多科技公司也在不断加码区块链项目。
附部分区块链项目应用
人人坊
成立时间:2018.1.02
应用领域:社交平台与区块链
所属公司:人人网
内容:人人坊为社交网络提供一个开源的区块链平台,利用去中心化的账本记录所有参与者在社交网络中的交互行为,利用智能合约技术实现和约束社交网络中特定场景下参与者的交易行为。
RRCoin是基于区块链和智能合约技术,针对社交网络激励机制和消费行为制定出来的数字加密虚拟货币。在这个区块链实现的社交平台上,RRCoin作为令牌,为平台的智能合约和交易行为提供运作媒介,应用于直播、商业推广、社交游戏、钱包应用等场景中。用户、PGC、开发人员、广告主、平台方等均可在系统内获得或支付RRCoin。
招财猫
成立时间:2018.1
应用领域:宠物游戏与区块链
所属公司:网易
内容:域名bi.163.com已经上线。官网首页显示“区块链宠物猫,限量收藏,即将开启!”。业内称网易招财猫限量发售“招财猫”,目前5000金币/只,每个人限购2只,但游戏的细节、特性目前完全不知。
链克
成立时间:2017.4
应用领域:视频产业与区块链
所属公司:迅雷
内容:链克是迅雷玩客云共享计算生态下的基于区块链的原生数字资产,它的产生过程与玩客云智能硬件、共享CDN的经济应用有强关联,必须通过玩客云智能硬件分享网络带宽、存储空间等资源来获得。前身为“玩客币”,2017年8月,玩客云正式发布,标志着区块链技术加入了共享计算,也标志着迅雷发力区块链C端应用。借助区块链技术,迅雷给通过玩客云智能硬件分享带宽、存储和计算能力等闲置资源的用户发放“链克”,建立公平、透明的奖励机制,激励普通个人参与到数据资源的分享和交换中来。
除此之外,暴风、快播也传出在该领域进行布局。暴风于2017年12月推出“播酷云”,基于此,用户可将闲置存储空间及带宽可用于赚取BFC积分。快播则在2017年8月推出“流量矿石”,搭建了一个基于区块链的分布式共享CDN平台
相关文章:

IncDec Sequence(codevs 2098)
题目描述 Description 给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一。 问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。 输入描述 Input…

C++ 中set
set特点: 所有元素不会重复,重复插入已经有的新值无效;所有元素按顺序排列;unordered_set除外键和值相同,所以set中的值是不可更改的set的各成员函数列表如下: 1.begin()--返回指向第一个元素的迭代器 // 如果当前容器…

python自动排课表_【python-leetcode210-拓扑排序】课程表Ⅱ
现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课…

简单粗暴告诉你什么是区块链
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链是什么?它是如何工作的? 比特币已经成为现代互联网的潮流 - 随之而来的是区块链。人们说区块链技术将导致互联网运作…

【Codeforces】Round #375 (Div. 2)
Position:http://codeforces.com/contest/723 我的情况 啊哈哈,这次raiting肯定要涨,接受过上次的教训,先用小号送肉,大号都是一发切,重回蓝咯 结果。。。 FST!! 不,这次是skip&…

python的matplotlib背景线_python中matplotlib的颜色及线条 控制
https://www.cnblogs.com/darkknightzh/p/6117528.htmlhttps://blog.csdn.net/qq_34337272/article/details/795555441.设置栅格(1)使用pyplot api命令打开栅格:plt.grid(true)设置栅格格式:plt.grid(colorr, linestyle--, linewidth1,alpha0.3)(2)使用axes类面向对…

系统权限设计思路
权限系统通常包括如下基本元素:用户、角色、权限、资源、操作。 角色分类:总经理、部长、员工。(在实际中一个用户可能存在多个角色,这就要考虑到权限累加处理) 权限分类:如”员工考勤权限”、”审核权限”…

“区块链”究竟是什么
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 什么是区块链? 说到区块链,就不得不说比特币。 2008年底,比特币之父中本聪发表了一个关于他研究的电子现金…

leetcode 179. 最大数
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。 自己写了很久的比较函数,时钟有…

cf-Sasha and Array
题目链接 http://codeforces.com/problemset/problem/719/E 解题思路 矩阵上的线段树。 因为矩阵有分配律(AB)C AC BC,所以计算总和时直接把增量矩阵乘上去就行了。用矩阵快速幂。 fib的计算尽量拉到主函数计算。 代码 #include<stdio.h…

实对称矩阵的性质_浅谈矩阵的相似对角化(一)
森屿瑾年:浅谈线性变换和矩阵之间的关系zhuanlan.zhihu.com通过前面的讨论,我们引出了线性变换在不同基下的矩阵之间的关系,知道了线性变换在不同基下的矩阵是相似的,进而我们可以通过选取不同的基,使得线性变换在这…

区块链技术未来可能用于哪些方面?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 当世界上从100比特币购买25美分的比萨饼,到一比特币兑换4800人民币的天价,在这风起云涌的纪念,我们见证了一个…

tomcat启动
tomcat的启动一般是从startup.bat/startup.sh开始,然后启动catalina.bat/catalina.sh,然后启动bootstrap.jar包 那么它们启动的时候都做了哪些事情呢? 首先是startup.bat,startup.bat做了什么? 第二是catalina.bat&…

ERROR: from PIL import Image ImportError: No module named PIL
ERROR: from PIL import Image ImportError: No module named PIL 到 http://www.pythonware.com/products/pil/ 下载相关支持的版本 我的是python2.7 直接打开,然后一路按“下一步”,就行 转载于:https://www.cnblogs.com/jakejian/p/8992…

python中font_Python ColorFont包_程序模块 - PyPI - Python中文网
控制台打印彩色字体0 黑色 8 灰色1 蓝色 9 淡蓝色2 绿色 A 淡绿色3 浅绿色 B 淡浅绿色4 红色 C 淡红色5 紫色 D 淡紫色6 黄色 E 淡黄色7 白色 F 亮白色格式:0x12高位代表背景色,低位代表字体颜色0x10 | 0x020x10代表背景色,0…

区块链技术到底有啥用?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 前言:关于区块链适合做什么和不适合做什么?一直都有争议。那么,通过什么方式来辨别呢?本文用详细的…

博客作业04--树
一.学习总结(2分) 1.1树结构思维导图 1.2 树结构学习体会 树的前中后序递归操作的访问路径都如下图 树的层次遍历的路径则如下图 操作{ 进队第一个节点, while(队不空) { 访问该节点, if(BT->lchild!NULL)进队。 if…

oracle数据如何获取游标中动态字段_如何实现报表数据的动态层次钻取(二)
上一篇《如何实现报表数据的动态层次钻取(一)》介绍了利用复杂 sql 实现动态层次结构的方法,但该方法依赖 Oracle 的递归语法,在其他类型的数据库中难以实现。要想通用地实现此类报表,可以使用下面介绍的“集算脚本 本…

使用jsonp跨域请求后可以获得数据,但是进入error方法,返回parseerror
$.ajax({ url:url, dataType:jsonp, jsonp: callback,//回调函数名字 jsonpCallback: success_jsonpCallback,//可以不写,也可以自定义,用来取代 jQuery 自动生成的随机函数名,不写将由jq自动生成,每次生成的结果都不…

EOS技术学习笔记
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 EOS.IO软件引入了一种新的块链架构,旨在实现分布式应用的性能扩展。这是通过创建一个可以构建应用程序的类似操作系统的架构来实现的。…

PHP的一种缓存方案静态化
1,解决的问题。 2.如何实现。 面对大流量网站频繁访问数据库的一种优化,比如博客网站。不可能每个人查看都访问一次数据库。为了解决大量不必要访问的问题。 可以把第一次的内容保存为html页面。再以后定义的过期时间内都访问该静态页面。 以下是一个小的demo index…

python获取机器唯一标识_开发中常用工具 - 获取设备的唯一标识、UDID、UUID、keychain保存UUID、判断网络...
UDID全名:Unique Device Identifie(设备唯一标识符)说明:UDID,即设备唯一标识符,这是除序列号之外每台iOS设备的独一无二的号码。UDID只是和设备相关的,是用来区分每一个唯一的iOS设备(包括iPhone、iPad等),…

区块链安全入门笔记
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 虽然有着越来越多的人参与到区块链的行业之中,然而由于很多人之前并没有接触过区块链,也没有相关的安全知识,安…

PHP程序员的技术成长规划
PHP程序员的技术成长规划 作者:黑夜路人(2014/10/15) 按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个…
【资源共享】RK3288 WiFiBT 开发配置参考说明
本文档主要介绍RK3288平台的WiFi&BT配置说明。 下载地址:http://dev.t-firefly.com/thread-13642-1-1.html更多开发资料请到社区精华系列“资源共享”专栏下载http://dev.t-firefly.com/forum-263-1.html转载于:https://www.cnblogs.com/TeeFirefly/p/9001757.h…

软件工程实训有必要吗_人工智能专业值得读吗?就业如何?
要说这几年的风口,人工智能首当其冲。热门是否代表了好就业?我觉得不是;那是不是就不好就业?我觉得也不是。先来看看这些耸人听闻的标题吧——“人工智能人才缺口超过500万,补齐人才短板乃是当务之急“人工智能就业前景…

区块链共识算法:PoS即权益证明 DPoS委托授权的权益证明
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 随着比特币价格暴涨,基于比特币的区块链技术引起各方关注,其核心就是共识算法。随着区块链技术的发展共识算法也在不断创新与…

【洛谷P1697】货车运输
首先,对于所有从x能到达y的路径中,限重越大越好 因此我们用Kruskal最大生成树得到一片森林(不一定都联通) 之后dfs维护森林的深度和LCA的预处理limit[x][0](x向上跳2^i步的边权最小值) 对于每个询问&…

win7上Docker使用
1、启动docker: Docker Quickstart Terminal (快捷键)启动docker 2、SECURECRT工具链接docker: 转载于:https://www.cnblogs.com/aibaiyang/p/9007074.html

qt4的quick程序升级到qt5_最新8月书单出炉!送给你程序员
8月好书赏不停,喜欢的就收藏一下。1、计算广告:互联网商业变现的市场与技术(第2版)作者:刘鹏、王超全球第一本全面讲解计算广告与互联网变现秘密的专业图书升级版北冥乘海生 刘鹏老师力作&#…