fdc区块链(区块链技术详解及其商业应用初探)
1 前言
在2017年的中国A股市场,有一只被金融机构称为“互联网的诗和远方”的概念股:区块链(Block Chain)。截止到2018年1月12日收盘,2018年以来,A股的Wind区块链指数上涨了506。47点,涨幅高达15。89%,远超同期上证综合指数(3。68%)和沪深300指数(4。82%)的涨幅。在Wind区块链概念板块的26只成分股中,2018年以来涨幅超过30%的有6只,超过20%的有11只,易见股份、壹桥股份、新晨科技等三只股票涨幅超过50%。
在美国股市,迅雷、人人等互联网公司宣布应用区块链技术之后,股价应声大涨,就连拥有100多年发展历史的柯达,在宣布将发起区块链业务的消息之后,股价也出现飙涨。
区块链概念板块被二级市场热炒的原因主要有:
- 比特币等数字货币爆发增长,催热作为数字货币技术基础的区块链主题。据股市行情报价平台数据显示,比特币从2017年1月1日的998。99美元,上涨到12月31日的13,800美元,年内暴涨逾13倍。
- 区块链技术发展势头迅猛。区块链技术本身的去中心化(decentralized)、公开透明、不可篡改、无法伪造、方便追溯等技术优势为重塑金融行业基础架构提供了技术可能性,从技术角度来讲,业界普遍认为:区块链技术应用于数字货币以及改造金融机构支付、结算和交易等应用场景,可以有效降低成本、提高交易效率、降低交易风险。
- 股权投资市场的传导效应。2018年以来,真格基金创始人徐小平、创世伙伴资本创始合伙人周炜等私募股权基金投资人都表示看好区块链的发展前景。2017年,全球金融科技领域至少发生了649笔融资时间,同比增长8%,其中,中国有328笔融资事件,排名第一。
根据权威咨询机构Gartner在2017年7月发布的新兴技术成熟度曲线,区块链当前已经越过期望膨胀期,进入幻灭期。随着中国政府正式将区块链列入十三五规划纲要,越来越多的企业也在积极摸索区块链技术的实际应用场景并从中获利,我们有理由相信,区块链技术将逐渐从一项新兴技术走进普罗大众的生活。
新兴技术成熟度曲线(Gartner,2017年7月)
本文不打算探讨区块链相关概念股在一级市场和二级市场的未来价值走向问题,而是希望从设计的角度分析区块链底层技术原理、基于区块链技术的数字货币以及区块链在商业应用中的探索方向。
2 技术详解
区块链不是指某一项技术,而是一个集成了多方面技术研究成果的综合性技术体系,其中,有三项必不可缺的核心技术:共识机制(Consensus)、分布式数据存储和密码学。
2。1 共识机制
共识机制的本质是解决信任问题,或者说从技术层面提供一种高可靠的信任机制。
在日常生活中,信任问题无处不在,如果没有信任,经济生活将无以为继。比如,通过淘宝等电子商务平台购物,如果买家与卖家之间无法建立信任,电子商务模式就会成为空中楼阁,买家不敢付款,卖家不敢发货,支付宝的角色就是在买家和卖家之间充当信任中介,买家和卖家都信任支付宝,买家下单后付款给支付宝,卖家发货给买家,买家确认收货之后,支付宝再付款给卖家,从而完成一笔电子交易。但是,第三方信任中介的成本是非常高的,以支付宝为例,支付宝利用收款和付款的时间差赚取资金沉淀产生的利息,同时还向商家收取店面佣金产生收益,拥有支付宝的蚂蚁金服年利润超过百亿人民币。如果能够消除因为信任问题而产生的第三方信任中介,就能一定程度上降低买卖双方的交易成本。
共识机制解决的核心问题之一就是去信任中介,可以说,共识机制是区块链技术的灵魂,它就像一个国家的法律,维系着区块链整个技术体系的正常运转。
要搞清楚“共识机制”,就不得不提著名的“拜占庭将军问题(Byzantine Generals Problem)”。
2。1。1 拜占庭将军问题
拜占庭将军问题是由2013年图灵奖得主、微软研究院首席研究员莱斯利·兰伯特(Leslie Lamport)在1982年提出的点对点通信中的基本问题,很简单的故事模型,却困扰了计算机科学家们数十年。
故事大概是这么说的:
拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个弱小邻邦垂涎已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。
为了军事行动的一致性,各个邻邦决定通过投票达成进攻或撤离两种军事策略,即要么所有军队一起进攻,要么所有军队一起撤离。
由于各个邻邦分处城市的不同方向,相互之间只能通过信使相互联系。在投票过程中,每位将军都将自己的投票结果通过信使通知其他所有邻邦的将军,这样一来,每位将军根据自己的投票和其他所有将军送来的信息就可以知道共同的投票结果而决定行动策略。
问题在于,某些邻邦的将军可能是叛徒,他们可能采取不反映其真实想法的策略投票,也可能半途截杀其他邻邦的信使,篡改其投票结果,这样,各支军队的一致协同就遭到了破坏。
假设那些忠诚的将军仍然能通过多数投票结果来贯彻他们的战略,便称达到了拜占庭容错(Byzantine Fault-Tolerant,BFT)。
拜占庭将军问题被认为是容错性问题中最难的问题类型之一。在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动,但有的时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。
在拜占庭将军问题中,各邻邦需要解决的核心问题是:所有将军如何能够达成攻打拜占庭帝国的军事共识。达成共识并非坐下来开个会那么简单,有的将军心机深不可测,口是心非,如果有叛徒,可能还会出现各种“异常”问题。
拜占庭将军问题延伸到现代互联网中,其内涵可概括为:当需要与不熟悉的人进行价值交换时,人们如何才能防止不会被其中的恶意破坏者欺骗和迷惑从而做出错误的决策。进一步将拜占庭将军问题延伸到技术领域,其内涵可概括为:在缺少可信任的中心节点和可信任的通道情况下,分布在互联网上的各个节点应如何达成共识。
解决共识问题的技术方案就是“区块”+“链”,这也是“区块链”一词的由来。
2。1。2 “区块” + “链”
如果把军队类比为互联网中的计算节点,把信使类比为承载互联网消息的通信网络,那么,各个将军的进攻或撤退决策结果就是区块。
在区块链技术中,存储数据的记录文件被称作“区块”,全网所有的交易记录都以区块为单位存储在全网唯一的区块链中。区块按照时间顺序一个一个先后生成,每个区块都记录了它在被创建期间发生的所有价值交换活动,而且每个区块通过特定的信息链接到上一个区块(父区块)的后面,从创世块(Genesis Block,第一个区块)开始,到最新产生的区块为止,前后顺连形成了一条长链,存储了系统全部的历史数据,这也是区块链名称的底层技术由来。
区块数据结构及链接关系
区块由区块头(Header)和区块体(Body)组成。区块头用于链接到前一个块,为区块链提供完整性保证;区块体则包含了经过验证的、块创建过程中发生的价值交换的所有记录。区块链的大部分功能都由区块头实现。
区块头的大小为80字节,由4字节的版本号、32字节的上一个区块的Hash值、32字节的Merkle Root Hash、4字节的时间戳(当前时间)、4字节的当前难度值和4字节的随机数组成。
区块头数据结构
2。1。3 Hash算法
Hash算法是区块链的技术基础。所谓Hash,就是将原始信息转换成具有相同长度的、不可逆的杂凑字符串(或者称之为消息摘要)。Hash算法具有一系列的特殊性质:
- 等长性:不管原始信息多长,计算出来的Hash值都具有固定的长度。
- 单向性:由原文获得Hash值很容易,但是根据Hash值逆向反推原文是不可能的。
- 确定性:同一个原始信息使用相同的Hash算法永远得到同一个Hash值。
- 分散性:原始信息的微小改动(即便只改动一个比特位),都会导致Hash值面目全非。
Hash算法的上述特性使得它特别适合于用作真实性审核的用途。例如,Red Hat公司发布一个Red Hat Enterprise Linux操作系统版本,用户从网络上下载的时候,怎么保证下载过程中数据没有被篡改或丢失呢?一个通用的做法就是在发布操作系统版本时,同步发布一个针对该版本文件的Hash值,用户下载完成之后,使用相同的Hash算法计算和对比,以此就可以很方便地判断文件的完整性。区块链正是利用了Hash算法的这些特质来保证区块的安全性。如果一个攻击者试图篡改一个历史区块,由Hash算法的“分散性”就可以知道,这个区块的Hash值会变得面目全非,而这个Hash值又是下一个区块的一部分,也就是说,下一个区块的内容也被篡改了,这又将导致下一个区块的Hash值面目全非,依此类推,对一个历史区块的篡改将形成连锁反应,波及其后的所有区块,这使得篡改历史记录变得几乎不可能。
区块链采用的Hash算法为SHA256,这是构造区块链所用的主要密码Hash函数,无论是区块的头部信息还是交易数据,都是用这个Hash函数去计算相关数据的Hash值。SHA256是著名的SHA(Secure Hash Algorithm,安全散列算法)中的一员,是由美国NIST(National Institute of Standards and Technology,国家标准与技术研究院)发布的一类密码Hash函数。对于长度小于2^64位的消息,SHA256算法会产生一个256位的消息摘要,其计算过程分为两个阶段:消息预处理和主循环。在消息预处理阶段,主要完成消息的填充和扩展填充,将所输入的原始消息转换成N个512比特的消息块,然后对每个消息块利用SHA256压缩函数进行处理。SHA256的计算流程如下图所示。
SHA256 Hash计算流程
由于区块链网络中的节点之间必须同步,所以,新区块的增加速度不能太快。试想一下,如果一个节点刚刚同步了一个区块,正准备基于这个区块生成下一个区块,此时别的节点又有新区块生成,该节点不得不放弃已经进行的计算,再次去同步,因为每个区块的后面,只能跟着一个区块,你永远只能在最新区块的后面生成下一个区块,所以,只要接收到同步的消息,就必须立刻开始同步。为了控制新增区块的速度,区块链故意设计了海量的计算,也就是说,只有通过极其大量的计算,才能得到当前区块的有效Hash,只有满足条件的Hash才会被区块链接受,这个过程俗称为挖矿(Mining),用于形象地描述在庞大的矿山之中寻找有价值矿藏的艰难过程,而参与挖矿的计算节点被称作矿机。
区块链通过“难度目标(Difficulty Target)”来控制计算Hash的难度,区块链协议规定,使用一个常量除以难度系数得到“难度目标”,显然,难度系数越大,难度目标就越小。难度系数是一个动态变化的值,每两周(约2,016个区块)调整一次,如果在这两周之内,区块的平均生成速度是9分钟,则意味着比设计的速度快了10%,此时,难度系数就会调高10%;如果区块的平均生成速度是11分钟,则意味着比设计的速度慢了10%,此时,难度系数就会调低10%,准确的难度系数计算公式如下所示。总而言之,动态调整难度系数的目的是使得预期完成下一个区块的时间依然在设计的时间范围内。
新难度值 = 旧难度值 * (过去2016个区块花费时长 / 20160分钟)
Hash的有效性与难度目标密切相关,只有小于目标值的Hash才是有效的,否则Hash结果无效,必须重新计算。难度目标越小,Hash小于目标值的机会就越渺茫,可能需要计算上亿次才能符合,这就是为什么挖矿如此之慢的原因。
区块头中还有一个Nonce值,用于记录Hash重算的次数,例如,第100,000个区块的Nonce值为274,148,111,即计算了2。74亿次才得到一个有效的Hash,该区块才能加入区块链。
区块Nonce值
2。1。4 工作量证明
在区块链技术体系中,计算和验证符合条件的Hash值的过程被称作“工作量证明(Proof of Work,PoW)”。通俗地讲,PoW的机理就是“根据付出工作量的多少来决定获得的成果,用成果来证明曾经的付出。”在我们的日常生活中,经常使用工作量证明,例如,学生考试成绩、公司财年销售额等等。这种证明方式的一个显著特征是往往需要付出很大的劳动才能获得好的成果,但这个成果很容易验证(例如,学生考试成绩分数的高低、公司财年销售额的多少等)。因为我们一般很难去实时监督一个人是否真的付出了工作量,所以,只能用工作量的结果来证明。
区块链中的工作量证明就是给全网络的节点出一道难题,让它们去计算正确的解。工作量证明有三个要素:证明函数、区块和难度值。例如,我们设计的工作量是这样的:给定一个基本的字符串“Hello, world!”加上多大的随机值Nonce(X)可以得到以“0000”开头的Hash结果?为了达到这个工作量证明的目标,计算机需要不停地递增Nonce值,对新字符串进行SHA256 Hash运算:
";Hello, world!0"; =>; 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64
";Hello, world!1"; =>; e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8
";Hello, world!2"; =>; ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7
。。。。。。
";Hello, world!4248"; =>; 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965
";Hello, world!4249"; =>; c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6
";Hello, world!4250"; =>; 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9
计算结果表明,Nonce值为4,251时可以通过验证。
现在,再给计算机增加难度(工作量):将输入变更为";Hello, world+整数值";,整数值取1到1,000,也就是说,将输入变成一个由 1,000个值组成的数组:";Hello, world!1, Hello, world!2, ……, Hello, world!1000";,然后对数组中的每一个输入依次进行上面例子中要求的工作量证明——找到前导为4个0的Hash散列。
我们会发现,进行计算的平均次数为66,958次,十分接近2^16(65,536)。数学期望的计算次数,就是我们要求的“工作量”。
2。2 分布式数据存储
有了“区块”+“链”的数据之后,接下来需要考虑的问题是如何记录和存储区块,即:应该让谁来参与数据的记录?应该将携带了时间戳的数据存储在哪里?
在现今中心化的体系中,数据都是集中记录并存储在中央节点,现代银行支付业务体系就是一个典型的例子。
基于信任的中心化数据交互模式
- 当A银行客户通过网点、网银或手机发生行内转账交易时,交易信息传递到总行数据中心,由其完成信息登记和资金划转,而客户的资金和账户等信息,都存储在基于信任的A银行核心系统服务器上。从A银行的视角来看,这是一个典型的总行中心化模式,A银行核心系统服务器就是中心节点。
- 当A银行客户通过网点、网银或手机发生跨行转账交易时(假设从A银行到B银行),则需要经过A银行核心系统 ->; 央行 ->; B银行核心系统的信息传导路径。从整体流程上看,央行成为交易的中心节点。
上述这种中心化模式是目前全球金融交易的基本模式。但是区块链的设计并不赞同将数据记录并存储在一台或几台中心化的节点上,而是应该让每一个参与数据交易的节点都记录并存储所有的数据。
- 分布式记录:区块链构建了一整套协议机制,让全网每一个节点都参与记录的同时,也来验证其它节点记录结果的正确性。只有当全网过半数的节点都同时认为某个记录正确时,记录的真实性才能得到全网的认可,记录数据才被允许写入区块中。
- 分布式存储:区块链还设计了一个分布式的网络系统,让区块链中的数据都实时更新并存放于所有参与记录的网络节点中,这样,即使部分节点损害也不会影响整个区块链的数据记录与信息更新,极大地提高了整个系统的高可靠性和安全性。
- 分布式传播:区块链中的每一笔交易的传播都采用分布式的结构,比特币价格根据P2P网络层协议,消息由单个节点广播给全网所有其它节点。
通过分布式记录、分布式存储和分布式传播,我们可以发现,没有哪一个人、哪一个组织和哪一个国家能够控制这个系统,系统内的数据存储、交易验证、信息传输过程全部都是去中心化的。在没有中心的情况下,大规模的参与者达成共识,共同建立区块链数据库。可以说,这是人类历史上第一次构建了一个真正意义上的去中心体系,甚至可以说,区块链技术构建了一个永生不灭的系统——只要不是网络中的所有节点在同一时间集体崩溃,否则,区块链系统将一直运转下去。
2。3 密码学
现在,我们已经有了一套严谨的区块数据生成规范,也有了记录与存储区块数据的网络协议,如果这套体系架构应用于实际社会,还需要解决一个核心的问题,即:如何使这个严谨且完整记录下来的区块链变得可信赖,使得我们可以在互联网无实名背景下成功避免欺诈行为的发生。
区块链的交易信息都保存在交易表中,与区块链的区块头形成多对一的关联关系,只要能追溯到区块,就很容易查询到该区块包含的所有交易记录。
每笔区块链的交易都需要一个有效的签名才能存储在区块链中。区块链采用基于密码学的公私钥体系(非对称加密算法)对区块交易进行加解密处理。交易的发起者使用自己的私钥对交易进行签名,其他人使用公钥进行验证,从数学上保证资金交易的安全性。
所谓“非对称加密算法”,是指加密和解密过程分别使用两个密码,两个密码具有非对称的特点:
- 加密时的密码(在区块链中被称为“公钥”)是全网公开可见的,所有人都可以用公钥来加密一段信息;
- 解密时的密码(在区块链中被称为“私钥”)只有信息拥有者才知道,被加密过的信息只有拥有相应私钥的人才能够解密。
私钥其实是使用SHA256算法生成的32字节(256位)随机数,有效私钥的范围取决于区块链使用的SECP256K1椭圆曲线数字签名标准,大小介乎于0x1到0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140之间的数几乎都是合法的私钥。在私钥的前面加上版本号,后面添加压缩标志和附加校验码(对私钥经过2次SHA256运算,取两次Hash结果的前4字节),然后再对其进行Base58编码,就可以得到我们常见的WIF(Wallet Import Format)格式的私钥。
私钥经过SECP256K1椭圆曲线算法处理生成公钥,通过一个已知“私钥”可以算出“公钥”,而“公钥”已知时无法逆向计算出“私钥”。
我们以“A转账给B 100元钱”为例说明公钥和私钥在数字签名和安全验证应用中的原理。
私钥数字签名和公钥安全验证
- A使用Hash函数对交易进行处理,得到一个固定长度的字符串。
- A使用只有自己掌握的私钥对固定长度的字符串进行加密,生成一份名叫“数字签名”的字符串。
- A将Hash字符串明文、加密后的数字签名以及公开的公钥打包,一起发送给B。
- B接收之后,首先将明文的字符串进行Hash处理,得到“字符串2”,然后使用A的公钥对数字签名进行解密,得到“字符串1”。最后对比“字符串1”和“字符串2”的一致性,就可以充分证明B接收到的交易信息是否就是A发送的交易信息,交易信息在传输路径上是否被其他人篡改。
从上述过程可以看出,非对称加解密的过程几乎是一环套一环,中途任何环节被篡改,结果都是大相径庭。借助这一连串的机制,能够很好的在公开、匿名、彼此不信任的分布式网络环境中解决数字交易过程中可能遇到的安全问题。
从信任的角度来看,区块链实际上是用数学方法解决了人与人之间的信任问题。过去,人们解决信任问题可能依靠人际关系中“老乡”和“同学”、政党社会中的“同志”以及传统互联网中的交易平台“支付宝”,而在区块链技术中,所有规则事先都以算法程序的形式表达出来,人们完全不需要知道交易的对手是“君子”还是“小人”,更不需要求助中心化的第三方机构来为交易“背书”,而只需要信任数学算法就可以建立互信。所以,区块链技术的背后,是数学算法在为人们建立信用,达成共识背书。
3 数字货币
区块链技术至今已存在10年,一直以来都不受人关注,自2016年开始,比特币逐渐在资本市场受到追捧,隐藏在比特币背后的区块链技术才开始为大众所熟知,比特币也成为区块链的第一个应用和迄今为止最为成功的数字货币。
3。1 比特币(BTC)
3。1。1 比特币的诞生
2008年10月31日纽约时间下午2点10分,一位自称“中本聪(Nakamoto Satoshi)”的人向几百位密码学家发送了一封电子邮件,宣布他的新成果:一个“无需任何可信的第三方、完全点对点的”数字货币系统,电子邮件还附了一个链接,是一个9页的白皮书《比特币:一种点对点的电子现金系统》(Bitcoin! A Peer-to-Peer Electronic Cash System),详细描述了这套新的货币体系的构架。同年11月16日,中本聪在互联网上公布了这套体系代码的先行版本。2009年1月3日,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了比特币的第一个区块——创世区块(Genesis Block),并获得了首矿奖励——50个比特币。这就是比特币的诞生,一套基于“加密的分布式记账技术”的、“不需要中间人的信用体系”的数字货币。用一句话概括:比特币就是一套去央行、去中心化的货币体系。
在深入了解比特币之前,有必要先了解人类使用货币的历史。
3。1。2 货币简史
人类使用的货币至少经历了以下几个转变:
- 从自然币到人工币。大家都知道,很早以前,人类使用自然物作为货币,比如贝壳、牛羊等,后来从自然币进化为人工币,比如赵国的铲币,齐国的刀币等。
- 铸币权从地方收归中央。像中国,起先各地的诸侯也有铸币权,后来无一列外地收归到中央,铸币权是一个政权必须掌握的核心权力。
- 从金属币到纸币。尽管地域不同,但各国都不约而同地选择金属作为货币,比如铜、白银和黄金。后来出于携带和交易便捷等原因,纸币开始出现。
在很长时间里,各个国家发行纸币都基于本国的黄金储备,每一元纸币背后都有相应的黄金作为支持,这就是“金本位制”。但之后某些强势国家意识到:放弃金本位更有利于本国的经济发展和财富积累,因为他们可以凭借国家信用作为担保来发行货币,而这也可以给各国央行提供调控经济的权力和工具。可一旦国家可以根据自己的意愿来发行货币,就有可能导致货币超发,成为隐形征税的一种手段,极端情况下,在国家信用破产的时候,货币价值兑换不回等值的黄金,货币的价值也会大减,甚至一夜之间趋于零。
中本聪的比特币体系,没有一个高高在上的央行主管货币政策,它依托于底层的区块链技术,创造出一个全新的数字货币的体系,除了“去中心化”这个特征,比特币也借鉴了不少“金本位制”的思想,比如:
(1)储量有限
比特币确切的理论总量为20999999。769个,这个数字接近2,100万,所以我们也习惯常说比特币的总量就是2,100万个,其实略少。只有这么多了,算法决定了比特币绝不超发,这好比黄金在地球上的总储量有限一样。
(2)越来越难挖
在第一个4年,比特币的储量可以被挖出大约一半,然后每4年减半,难度越来越大,就好比黄金一开始可以在地表上捡到,后来要掘地三尺,再后来要到深海才能找到一样。目前,比特币网络已经进行过了两次减半,第一次是在2012年11月底,下一次减半预计在2020年5月份前后,依此类推,大约在2140年左右,比特币系统将不再有新生成的比特币产生。
3。1。3 比特币的价值
最初,比特币是没有任何价值的,第一笔获得市场流通的交易是在2010年5月22日,一名程序员用1万枚比特币,买了两份披萨,按照历史最高点价格,这两份披萨价值1。9亿美元,这一天被比特币爱好者戏谑地称为“披萨日”。比特币低潮的时候,中关村也有人用一枚比特币买了一杯咖啡。
因为比特币是去中心化的,使得它天然具有匿名、无监管、跨国等特点,加上高可靠性和安全性,比特币开始在很多跨国交易和黑市交易中流行起来,比如,毒品交易和跨国洗钱都喜欢使用比特币。
后来随着比特币的价格日益走高,越来越多的人开始使用它作为规避金融监管或者避税的工具。比如一些国家的富人,通过购买比特币来实现财富的转移和传承,以规避遗产税。
因为有商业价值,有交易场景,使得越来越多的人开始接受比特币,并且把它当成资产看待。用的人多了,比特币就真正开始值钱起来,2017年12月16日,比特币交易价格达到历史峰值:19,187美元/枚。
比特币历史交易价格趋势(数据来源:https!//cn。investing。com/currencies/btc-usd-historical-data)
3。1。4 比特币的获取:挖矿
因为有价值,所以吸引了越来越多的人认识、投资和获取比特币。获取原始比特币的方式叫“挖矿”,挖比特币的计算机,被称做“矿机”。
“挖矿”的逻辑,简单来说,就是每10分钟就会有一道数学题被扔到网络中,大家比赛,看谁算得快。算得最快的计算机,就会“挖”到一定数量的比特币,矿工们通过为比特币网络提供“算力”来换取获得比特币奖励的机会。
“算力”这个词,可以这么理解,就是矿工们的体力,体力越多的人得到的黄金越多;算力越多的计算机,得到的比特币越多。
全世界第一个矿工就是中本聪,2009年1月3日,比特币创世区块诞生,当时全世界只有两个矿工,另一个叫哈尔·芬尼(Hal Finney),他在密码圈成名已久,也是第一笔比特币转账的接收者,但他不幸于2014年逝世。而中本聪到底是谁,坊间猜测很多,但没有一个确定的答案,可能这就是天才吧,事了拂衣去,深藏身与名,在江湖上只留下他的传说。
比特币出现的历史不长,但挖矿经过了CPU挖矿、GPU(Graphics Processing Unit,图形处理单元)挖矿、FPGA(Field Programmable Gate Array,现场可编程门阵列)挖矿、ASIC(Application Specific Integrated Circuit,专用集成电路)挖矿和大规模集群挖矿等五个阶段。
比特币挖矿史
- CPU挖矿时代是2011年之前、中本聪还没消失的时候,哈尔•芬尼回忆说,他当时就开着个人电脑,几个星期就轻松地获得了几千枚比特币。但也正是因为太容易了,当时很多人都没有珍惜挖到的比特币,经常出现钱包没备份而丢失或忘记密码的事情,比如,一位来自英国的IT工作者竟然把内含7500枚比特币的硬盘当垃圾扔了,这些被丢掉的比特币理论上将永远无法被人动用了,如同石沉大海。CPU挖矿时代的挖矿速度为20~40M Hash/s,由于CPU是为了处理通用计算而设计的,对于SHA256这种挖矿算法并不擅长,因此计算速度并不理想。
- 后来,当比特币圈子有了交易所,总市值开始呈指数级增大。2011年,人们纷纷开始了挖矿的“军备竞赛”。最初,有人想到可以利用GPU显卡的并行运算能力来挖矿,效率可以提升几倍甚至几十倍,于是就有人开发出了用GPU显卡挖矿的软件。一个常用的AMD GPU挖矿速度约为300~400M Hash/s,但是,安装了GPU的计算机功耗也明显上升,例如,安装6个GPU显卡的计算机,功耗达到800W左右,在普通的个人家庭不适合于大规模部署。
- 2011年年末,基于FPGA芯片的挖矿设备出现。一颗FPGA芯片的挖矿速度约为200M Hash/s,功耗降低为GPU的1/40。但是,昂贵的价格和部署的复杂性使得FPGA只能成为少数具有专业知识矿工的玩物。
- 2012年,包括ASICMiner和Avalon在内的多个公司开始研发ASIC芯片,专用、量身定制、执行速度快。2013年1月初,全球首台基于ASIC芯片的Avalon矿机邮寄到用户手中,ASIC挖矿时代从此开始。一台Avalon矿机装备了240个ASIC芯片,每颗芯片速度为280M,在超频的设置下,一台Avalon约80G Hash/s,功耗仅为600W,相当于200个GPU的工作速度。
- 由于比特币每天出产的数量是固定的(每天产生3,600个),随着挖矿设备的大量投入,每单位设备的收益也日益降低。个人用户参与挖矿的选择方向也逐渐转入大规模集群化运营模式。集群化带来的好处是低廉的电费保证了一定的收益,大规模的机房散热设计和专人维护保证了设备的稳定工作,个人用户再也不需要耗尽心力租赁场地、学习技术、搭建设备、每天担心挖矿设备的工作情况等,只需要根据购买的算力,每天收取根据当前难度计算出来的比特币就可以了。
3。2 以太币(ETH)
区块链与比特币的关系就好像面粉与面条的关系,人们在发明面条之后,才发现制作面条的面粉还可以用于制作馒头和花卷,馒头和花卷就是除了面条之外的基于区块链技术的新的数字货币。
伴随着比特币在资本市场的炒作以及底层区块链技术的稳定性实践证明,市场上出现了数千种类似的数字货币,其中,最著名且最具有高市场价值的就是以太坊(Ethereum)。
2018年1月18日,比特币的市场总市值约为1,845亿美元,同期以太坊的总市值达到942亿美元,超过比特币总市值的一半。虽然比特币是电子货币的开山鼻祖,并因此获得了大部分媒体与投资者的关注,但是,许多人认为以太坊的区块链及基于这一技术的以太币将会成为更强大的工具。
电子货币当前市值与价格
3。2。1 以太币的诞生
2013年,19岁的俄罗斯天才维塔利克·布特林(Vitalik Buterin)在一篇题为《以太坊白皮书:下一代智能合约与去中心化应用平台》的文章中首次提到了以太币的构想。随后,在2014年,以太币的算法及协议正式落地,并募集了1。5亿美元,系统本身于2015年7月30日最终完成。
以太币创始人Vitalik Buterin
以太坊是运行在计算机网络中的一个软件,它确保数据以及称为智能合约的程序可以在没有中心协调者的情况下被网络中所有的节点复制和处理。以太坊的愿景是创建一个无法停止、抗屏蔽(审查)和自我维持的去中心化计算机网络。
以太坊中的代币叫做以太币(Ether),简称为ETH。与比特币相比,以太币最本质的区别是它只是一种虚拟代币(Token),其作用是在以太坊网络中创建去中心化的智能合约,而比特币的区块链是用来存储金融交易记录的,其本质是一个类似美元或英镑的货币,拥有和现行货币完全相同的功能和特性。
比特币 vs 以太币
以太坊最大的竞争潜力是:以太坊不仅提供了虚拟代币,同时也是一个基于区块链技术的平台与智能合约系统,它能够用来构建应用程序,而电子货币只是这种技术的表现形式之一。类似金融工具、财产、域名、以及更复杂的金融产品交易、衍生品、对赌、身份识别以及个人征信系统等涉及到信息与财富流通及记录的环节,以太坊理论上都有很大的发展空间。
3。2。2 智能合约(Smart Contracts)
如果说区块链1。0是以比特币为代表,解决了货币和支付手段的去中心化问题,那么,区块链2。0就是宏观的对整个市场去中心化,利用区块链技术来转换许多不同的数字资产而不仅仅是比特币,通过转让来创建不同资产的价值。区块链技术的去中心化账本功能可以被用来创建、确认、转移各种不同类型的资产及合约。几乎所有类型的金融交易都可以被改造成在区块链上使用,包括股票、私募股权、众筹、债券和其它类型的金融衍生品如期货、期权等。
可以说,智能合约是以太坊对快速扩张的电子货币及区块链技术领域的重要贡献,它可以被看作是一种利用数字化手段确保价值交换等环节安全的方式,能够以透明、去中介化的手段,节省掉律师、公证员等专业人士提供的昂贵服务,转而通过执行智能合约本身的数字化条款来确保合约的有效性。
智能合约最早是由跨领域法律学者尼克·萨博(Nick Szabo)在1996年首次提出,他关于智能合约的定义是:一个智能合约是一套以数字形式定义的约定,包括合约参与方可以在上面执行这些约定的协议……智能合约的基本思想是,各种各样的合约条款……可以嵌入到我们使用的硬件和软件中……从而使得攻击者需要很大的代价去攻击。尼克·萨博关于智能合约的工作理论迟迟没有实现的一个重要原因是缺乏能够支持可编程合约的数字系统和技术。区块链的可编程、去中心化、不可篡改、过程透明可追踪等特点为智能合约的落地提供了技术支撑。
简单来说,智能合约就是传统合约的数字化版本,它们是运行在区块链之上的计算机程序,当源代码中设定的条件满足时自动执行。智能合约一旦编写好就可以被用户信赖,合约条款不可更改。与传统合约相比,智能合约具有如下两个显著优势:
- 降低合约成本:智能合约不依赖第三方执行合约,消除了中介,大大减少了花费在合约上的成本;
- 降低安全风险:智能合约保存在分布式账本上,且合约条款不可更改,不存在丢失或篡改的风险。
智能合约一旦编码完成并上传到区块链网络上,即被发送到所有连接网络的节点上,每个节点都运行着一个被称作EVM(Ethereum Virtual Machine,以太坊虚拟机)的脚本语言,EVM可以理解并执行用以太坊特定编程语言(例如Solidity)编写的程序。
到底什么是智能合约呢?我们想象这样一个生活中的实例:A借给B 1万元,约定一年之后还款。如何确保B在一年之后履行自己的承诺呢?传统的做法有三种:
- 相互信任:如果A和B是多年的朋友,相互知根知底,相互信任,可以考虑采用这种建立在友情之上的合约。如果A和B之间是完全陌生的人,那么,这种机制就会失去基础。
- 法律协议:借款时签订一个法律协议,咬文嚼字地详细规定协议的各项条款,包括B违约情况下的惩罚措施等。合同到期时,如果B没有经济能力偿还,或者B出现赖账行为,强制履行合同所产生的法律成本可能比借款金额还要多。
- 中介担保:借款时寻求一个双方共同的朋友进行担保,如果B在逾期后无法履行还款行为,则该朋友向A偿还1万元借款。这种方式同样是建立在信任的基础上的,A信任朋友,朋友信任B。
上述三种方式都有明显的缺点,都无法在陌生人之间达成协议。以太坊智能合约解决这个问题的方法是:开发一个双方交易价值1万元的以太币软件,借款时,A向B转账价值1万元的以太币,一年期到了之后,B自动向A偿还价值1万元的以太币。一旦签署智能合约,其中的内容是无论如何都不可能被更改的。
基于区块链的智能合约构建及执行包括如下步骤:
(1)多方用户共同参与制定智能合约。
- 用户首先注册为区块链用户,区块链返回给用户一对公钥和私钥。公钥作为用户在区块链上的账户地址,私钥作为操作该账户的唯一凭证。
- 两个及两个以上的用户根据需要,共同商定一份承诺,承诺中规定了双方的权利和义务。这些权利和义务以编程语言电子化,参与者分别用各自私钥进行签名,以确保合约的有效性。
- 签名后的智能合约,将会根据其中的承诺内容,发布到区块链网络中。
(2)合约通过P2P网络扩散并存入区块链。
- 合约通过P2P的方式在区块链全网中扩散,每个节点都会收到一份。区块链中的验证节点会将收到的合约先保存到内存中,等待新一轮的共识时间,触发对该份合约的共识和处理。
- 共识时间到达之后,验证节点将最近一段时间内保存的所有合约一起打包成一个合约集,并算出这个合约集的Hash值,然后将这个合约集的Hash值组装成一个区块结构,扩散到全网。其它验证节点收到这个区块结构后,会把里面包含的合约集的Hash值取出来,与自己保存的合约集进行比较,同时发送一份自己认可的合约集给其它的验证节点。通过这种多轮的发送和比较,所有的验证节点最终在规定的时间内对最新的合约集达成一致。
- 最新达成的合约集会以区块的形式(如下图所示)扩散到全网,每个区块包含以下信息:当前区块的Hash值、前一区块的Hash值、达成共识时的时间戳、以及其它描述信息,同时,区块链最重要的信息是带有一组已经达成共识的合约集。收到合约集的节点,都会对每条合约进行验证,验证通过的合约才会最终写入到区块链中,验证的内容主要是合约参与者的私钥签名是否与账户匹配。
以太坊区块链结构
(3)区块链构建的智能合约自动执行。
- 智能合约定期逐条遍历每个合约内包含的状态机、事务以及触发条件,将条件满足的事务推送到待验证的队列中,等待共识;未满足触发条件的事务将继续存放在区块链上。
- 进入最新轮验证的事务,会扩散到每一个验证节点,与普通区块链交易和事务一样,验证节点首先进行签名验证,确保事务的有效性。验证通过的事务会进入待共识集合,等大多数验证节点达成共识后,事务会成功执行并通知用户。
- 事务执行成功后,智能合约自带的状态机会判断所属合约的状态。当合约包括的所有事务都顺序执行完之后,状态机会将合约的状态标记为“完成”,并从最新的区块中移除该合约;反之,将标记为“进行中”,继续保存在最新的区块中等待下一轮处理,直到处理完毕。整个事务和状态的处理都由区块链底层内置的智能合约系统自动完成,全程透明、不可篡改。
3 商业应用
2017年4月,腾讯公司发布《腾讯区块链方案白皮书:打造数字经济时代信任基石》,该白皮书清晰地传递了区块链的社会价值,即:未来区块链将引领信息互联网走向价值互联网,实现互联网价值的真实体现与透明转移,帮助人们构建一个全新的诚信社会。因此,区块链技术的革命性在于它实现了一种全新的信任机制,通过技术层面的变革和创新,使得价值交互过程中人与人的信任关系能够转移为人与技术的信任,甚至于由程序自动化执行某些环节,从而使得商业活动能够以更低的成本实现。
腾讯公司认为,区块链技术的显著优势在于优化业务流程、降低运营成本、提升协作效率,这个优势已经在金融服务、物联网、公共服务、社会公益和供应链管理等社会领域逐步体现出来。以金融行业为例,虽然比特币及以太坊等数字货币已经获得了超常规的发展速度,但其体量与价值比起传统的货币体系依然微不足道,未来数字货币对以资产或主权信用为后盾的传统货币体系的冲击究竟有多大依然难以预料。但是,区块链技术的发展价值已经无需赘言,可以预见的是,隐藏于数字货币华丽身影后的区块链技术将会与传统的金融业很好地结合,未来货币的交易、金融资产的交易与转移,包括个人信用的记录都将依赖于区块链技术所带来的安全保护,或许区块链将会成为伴随传统金融体系向着未知的数字化货币金融体系过度的“幽灵”。
达沃斯论坛创始人克劳斯·施瓦布(Klaus Schwab)认为,区块链作为继蒸汽机、电气化、计算机之后的第四次工业革命的重要成果,预计到2025年之前,全球GDP总量的10%将利用区块链技术储存。市场研究机构Gartner预测,2020年,基于区块链的业务将达到1,000亿美元,包括金融、物联网、供应链管理、公共服务在内的多个行业将为区块链带来万亿美元级别的潜在市场。
区块链经济发展的重点行业
以金融行业跨境支付(Cross-border Payments)应用为例。根据麦肯锡发布的《2016全球支付:尽管时局动荡,基石强劲不变(Global Payments 2016! Strong Fundamentals Despite Uncertain Times)》报告,跨境支付交易量占全球支付总量不到20%,但是它所带来的交易费用占全球支付交易费用的40%,2015年全球跨境支付收入规模约为3,000亿美元。在跨境支付收入的构成上,92%是B2B支付,而B2B支付中有90%是通过银行进行的。B2B跨境支付每笔规模约为15,000美元到20,000美元之间,每笔需缴纳的费用在30美元到40美元之间。
现在跨境支付普遍采用SWIFT(Society for Worldwide Interbank Financial Telecommunication,环球同业银行金融电讯协会)结算系统,这是一个成立于1973年的国际银行金融报文传送服务机构,总部位于比利时,目前,其报文传送平台、产品和服务对接了全球超过11,000家银行、证券机构和企业用户,覆盖200多个国家和地区,致力于帮助用户以安全可靠的方式交换标准化的金融报文。根据SWIFT官网,每天平均有超过2,600万条信息通过其网络传递。
SWIFT系统流行的原因是它建立了统一的账户表达方式。加入SWIFT的机构都会有自己的身份代码(即SWIFT Code,相当于银行的“身份证号”),这一代码是一个8到11位的字符串,它又被称为银行识别码(Bank Identifier Code,BIC)。BIC的前四位为银行代码,紧接着的两位是国别代码,之后的两位是地区代码,后面可能还会有3位,是分支行代码,例如,中国工商银行北京市分行的SWIFT Code为“ICBKCNBJBJM”,中国建设银行上海市分行的SWIFT Code为“PCBCCNBJSHX”。每个SWIFT成员机构也会有统一的客户账户的表达标准,这个叫国际银行账户号码(International Bank Account Number,IBAN)。
如果汇款银行和收款银行有业务往来,两者可以直接通过SWIFT进行信息传递,如果没有,则两者需要找一家既跟自己有业务往来,又是SWIFT成员的银行来完成跨境支付,这样的一家银行即被称为汇款银行和收款银行的代理银行。
SWIFT跨境支付流程
上述传统跨境支付模式主要有如下两个缺点:
- 支付周期长:银行会在每天对支付交易进行批量处理,通常情况下,一笔跨境支付需要至少24小时才能完成,而且在传统支付模式中,银行之间需要进行人工对账,这也会消耗一些时间。
- 支付成本高:传统跨境支付模式的成本包括四个方面:支付处理成本、接收费用、财务运营成本和对账成本。根据世界经济论坛报告《全球金融基础设施的未来》,一般而言,汇款人的汇款费用是汇款金额的7。68%。
如果能够利用区块链技术,在跨国收付款双方之间建立直接交互的机制,就可以简化处理流程,实现实时结算,提高交易效率,降低业务成本,由此可以推动跨境微支付等商业模式的发展。
基于区块链的跨境支付实际上是用虚拟数字货币作为中介来实现跨境支付。具体而言,系统将代币或数字资产作为中介,先将汇款人所在地的法定货币转换为代币或数字资产,再在收款端将代币或数字资产转换为所在地的法定货币,以此实现跨境支付。
基于区块链的跨境支付流程
关于区块链是否能广泛应用于跨境支付,目前并未有共识。有些机构认为前途光明,但“那一天”不会马上到来,至少需要三年以上。瑞士信贷(瑞信)在2016年8月3日发布的报告《区块链:信任颠覆者(Blockchain! The Trust Disrupter)》认为,基于区块链打造B2B支付网络替代现有的代理银行模式至少需要3~5年。埃森哲表示,”银行间跨境支付不可能在一夜之间转移到新的商业支付网络上去,甚至在五年之内都不会,迁移速度取决于现有支付网络的和替代者之间的竞争。”
除了跨境支付应用之外,目前,证券、物联网、文化、教育、医疗、慈善、供应链等行业都在尝试利用区块链技术优化业务流程,提升协同效率。
区块链技术应用实践案例
4 相关研究机构
4。1 比特币基金会
比特币基金会参照Linux基金的模式建。
评论