主页 > imtoken官方下载2.0 > 区块链技术详解及商业应用初探

区块链技术详解及商业应用初探

imtoken官方下载2.0 2023-09-22 05:09:33

1 简介

2017年的中国A股市场,有一只被金融机构称为“互联网的诗与远方”的概念股:区块链。 截至2018年1月12日收盘,2018年以来A股Wind区块链指数累计上涨506.47点,涨幅15.89%,远超上证指数(3.68%)和沪深300指数( 4.82%) 同期。 ) 增加。 Wind区块链概念板块26只成份股中,2018年以来涨幅超过30%的有6只以太坊使用幽灵协议,涨幅超过20%的有11只。 超过 50%。

美股方面,迅雷、人人等互联网公司宣布应用区块链技术后,股价大幅上涨。 就连拥有100多年发展历史的柯达宣布将推出区块链业务,其股价也随之飙升。 上升。

区块链概念板块在二级市场被炒作的主要原因有以下几点:

根据权威咨询机构Gartner 2017年7月发布的新兴技术成熟度曲线,区块链目前已经过了预期膨胀期,进入幻灭期。 随着中国政府正式将区块链纳入“十三五”规划纲要,越来越多的企业积极探索区块链技术的实际应用场景并从中受益。 我们有理由相信,区块链技术将逐渐从一项新兴技术走进普罗大众的生活。

以太坊geth使用_以太坊幽灵协议_以太坊使用幽灵协议

图 1 新兴技术的成熟度曲线(Gartner,2017 年 7 月)

本文无意讨论区块链相关概念股在一级市场和二级市场的未来价值走势,而是希望从设计的角度分析区块链的底层技术原理、基于区块链技术的数字货币、区块链技术. 链在商业应用中的探索方向。

2 技术细节

区块链不是指某一种技术,而是综合了各种技术研究成果的综合技术体系。 其中,不可或缺的核心技术有三项:共识机制(Consensus)、分布式数据存储和密码学。

2.1 共识机制

共识机制的本质是解决信任问题,或者说从技术层面提供一种高可靠的信任机制。

在日常生活中,信任问题无处不在,没有信任,经济生活将难以为继。 比如在淘宝等电商平台购物,如果买卖双方之间无法建立信任,电商模式就会成为空中楼阁。 买家不敢付款,卖家不敢发货。 作为买卖双方信任的中介,买卖双方都信任支付宝,买家下单后支付支付宝,卖家发货给买家,买家确认收货后,支付宝向卖家付款,完成一次电子交易。 但是,信任第三方中介的成本非常高。 以支付宝为例。 支付宝利用收款和付款的时间差来赚取资金存款利息。 同时也向商家收取店铺佣金,产生收入。 年利润超过100亿元人民币。 如果能够取消因信任问题导致的第三方信任中介,一定程度上可以降低买卖双方的交易成本。

共识机制解决的核心问题之一是信任中介。 可以说,共识机制是区块链技术的灵魂。 它就像一个国家的法律,维护着区块链整个技术体系的正常运行。

搞清楚“共识机制”,就不得不提到著名的“拜占庭将军问题”。

2.1.1 拜占庭将军问题

拜占庭将军问题是2013年图灵奖获得者、微软研究院首席研究员Leslie Lamport于1982年提出的点对点通信中的一个基本问题,是一个非常简单的故事模型,但它有受困扰的电脑。 几十年的科学家。

以太坊幽灵协议_以太坊geth使用_以太坊使用幽灵协议

故事是这样的:

拜占庭帝国,也就是中世纪的土耳其,拥有巨大的财富,周围的10个弱邻国觊觎已久,但拜占庭城墙高耸,坚不可摧,没有一个邻国能够成功入侵。 十个邻居至少要有一半同时攻击,才有可能突破。

为了军事行动的连贯性,各邻国通过投票决定出击或撤退两种军事策略,即要么全部军队一起进攻,要么全部军队一起撤退。

由于各个邻国位于城市的不同方向,只能通过使者相互联系。 在投票过程中,每个将军通过信使将自己的投票结果通知所有其他邻国的将军,这样每个将军就可以根据自己的投票结果和所有其他将军发送的信息知道共同的投票结果。 决定行动策略。

问题是,一些邻国的将军可能是叛徒。 他们可能会以不反映其真实想法的策略进行投票,也可能会中途拦截其他邻国的使者,篡改自己的投票结果。 破坏。

假设那些忠诚的将军仍然可以通过大多数投票结果来执行他们的策略,据说拜占庭容错(BFT)已经实现。

拜占庭将军问题被认为是最难的容错问题类型之一。 在分布式计算中,不同的计算机通过通信和交换信息达成共识,按照同一套协作策略行动,但有时,系统中的成员计算机可能会出错并发送错误的信息,而用于传输信息的通信网络可能会出现故障。还会导致信息腐败,使网络中的不同成员对整体合作策略得出不同的结论,从而破坏了系统的一致性。

在Byzantine Generals Problem中,邻国需要解决的核心问题是:所有将军如何达成进攻拜占庭帝国的军事共识。 达成共识并不像坐下来开会那么简单。 有些将军心机深不可测,口是心非。 如果有内奸,可能会出现各种“不正常”的问题。

拜占庭将军问题延伸到现代互联网,其内涵可以概括为:当需要与不熟悉的人交换价值时,人们如何防止被恶意破坏者欺骗和迷惑而做出错误的决定。 将拜占庭将军问题进一步延伸到技术领域,其内涵可以概括为:在没有可信中心节点和可信通道的情况下,分布在互联网上的节点之间如何达成共识。

共识问题的技术解决方案是“区块”+“链”,这也是“区块链”一词的由来。

2.1.2 “区块”+“链”

如果将军队比作互联网中的计算节点,将信使比作承载互联网消息的通讯网络,那么每位将军进攻或撤退的决策结果就是块。

在区块链技术中,存储数据的记录文件称为“区块”,全网所有的交易记录都以区块为单位存储在全网唯一的区块链中。 区块按照时间顺序一个一个生成,每个区块记录其创建过程中发生的所有价值交换活动,每个区块通过特定信息链接到前一个区块(父块)之后,从创世块(第一个块)开始到最新产生的区块,依次形成一条长链,存储着系统所有的历史数据,这也是区块链的名字。 底层技术的起源。

以太坊幽灵协议_以太坊geth使用_以太坊使用幽灵协议

图2 Block数据结构及链接关系

一个区块由区块头(Header)和区块体(Body)组成。 区块头用于链接上一个区块,为区块链提供完整性保证; 区块体包含了区块创建过程中发生的所有经过验证的价值交换记录。 区块链的大部分功能都是由区块头实现的。

区块头大小为80字节,由4字节的版本号、32字节的上一个区块的Hash值、32字节的Merkle Root Hash、4字节的时间戳(当前时间)、4 -byte 该部分的当前难度值和一个 4 字节的随机数。

以太坊使用幽灵协议_以太坊幽灵协议_以太坊geth使用

表1 区块头数据结构

以太坊geth使用_以太坊幽灵协议_以太坊使用幽灵协议

2.1.3 哈希算法

哈希算法是区块链的技术基础。 所谓Hash,就是将原始信息转换成长度相同的不可逆哈希串(或消息摘要)。 哈希算法具有一系列特殊性质:

哈希算法的上述特点使其特别适用于真伪验证目的。 例如以太坊使用幽灵协议,Red Hat 发布了一个版本的 Red Hat Enterprise Linux 操作系统。 用户在网上下载时,如何保证下载过程中数据不被篡改或丢失? 通常的做法是在发布操作系统版本时,同时发布文件版本的哈希值。 用户下载后,使用相同的Hash算法进行计算比较,便于判断文件的完整性。 区块链就是利用哈希算法的这些特点来保证区块的安全性。 如果攻击者试图篡改一个历史区块,从Hash算法的“分散性”可以知道,这个区块的Hash值会变得不可识别,而这个Hash值是下一个区块的一部分,也就是说, 下一个区块的内容也被篡改, 会导致下一个区块的Hash值无法识别, 以此类推, 历史区块的篡改会形成连锁反应, 影响到所有后续区块, 这使得它几乎不可能篡改历史记录。

区块链使用的哈希算法是SHA256,是构建区块链的主要密码学哈希函数。 无论是区块的头部信息,还是交易数据,都会通过这个Hash函数来计算相关数据的Hash值。 SHA256是大家熟知的SHA(Secure Hash Algorithm,安全哈希算法)的成员,是美国NIST(美国国家标准与技术研究院,美国国家标准与技术研究院)发布的一类密码哈希函数。 对于长度小于2^64位的消息,SHA256算法会生成一个256位的消息摘要,其计算过程分为消息预处理和主循环两个阶段。 在报文预处理阶段,主要完成报文的填充和扩展填充,将输入的原始报文转化为N个512位的报文块,然后对每个报文块进行SHA256压缩函数处理。 SHA256的计算过程如下图所示。

以太坊geth使用_以太坊使用幽灵协议_以太坊幽灵协议

图3 SHA256 Hash计算过程

由于区块链网络中的节点必须同步,新区块的添加速度不能太快。 试想一下,如果一个节点刚刚同步了一个区块,正准备根据这个区块生成下一个区块,此时另一个节点生成了一个新的区块,该节点不得不放弃已经执行过的计算,重新同步。 因为每个区块后面只能跟一个区块,而你只能在最新的区块之后生成下一个区块,所以只要你收到同步消息,就必须立即开始同步。 区块链为了控制新区块的速度,特意设计了海量计算,也就是说只有通过极其大量的计算才能得到当前区块的有效Hash,只有满足条件的Hash才会被计算出来。由区块链接 这个过程俗称挖矿,用来形象地描述在巨大的矿山中寻找有价值的矿藏的艰难过程,参与挖矿的计算节点称为矿机。

区块链通过“难度目标”来控制计算Hash的难度。 区块链协议规定用一个常数除以难度系数得到“难度目标”。 显然,难度系数越大,难度目标就越小。 难度系数是一个动态变化的值,每两周调整一次(约 2,016 个区块)。 如果在这两周内,平均出块速度为9分钟,意味着比设计速度快了10倍。 %,此时难度系数会增加10%; 如果平均出块速度为11分钟,意味着比设计速度慢了10%,此时难度系数会降低10%,准确来说难度系数的计算公式为如下。 总而言之,动态调整难度系数的目的是让下一个区块的预计完成时间仍在设计的时间范围内。

新难度值=旧难度值*(过去2016个区块花费的时间/20160分钟)

哈希的有效性与难度目标密切相关。 只有小于目标值的Hash才有效,否则Hash结果无效,必须重新计算。 难度目标越小,Hash小于目标值的可能性就越小,可能需要数亿次计算才能满足,这就是挖矿速度这么慢的原因。

区块头中还有一个Nonce值,用于记录Hash重新计算的次数。 例如,第100,000个区块的Nonce值为274,148,111,即需要2.74亿次计算得到一个有效的Hash,才能将区块加入zone。 区块链。

以太坊幽灵协议_以太坊使用幽灵协议_以太坊geth使用

图4 区块Nonce值

2.1.4 工作证明

在区块链技术体系中,计算和验证合格哈希值的过程称为“工作量证明(PoW)”。 通俗地说,PoW的机制就是“根据付出的工作量来决定获得的结果,并用结果来证明之前的努力”。 在我们的日常生活中,经常会用到工作量证明,例如学生考试成绩、公司财年销售额等。这种证明方式的一个显着特点是,往往需要大量的劳动才能获得好的结果,但这种结果易于验证(例如学生考试成绩的高低、公司财年的销售额等)。 因为我们一般很难实时监控一个人是否真的付出了工作量,所以只能用工作量的结果来证明。

以太坊幽灵协议_以太坊使用幽灵协议_以太坊geth使用

区块链中的工作量证明,就是把一个难题呈现给全网的节点,让它们计算出正确的解决方案。 工作量证明具有三个要素:证明函数、区块和难度值。 例如,我们设计的工作负载如下:给定一个基本字符串“Hello, world!” 加上多少随机值Nonce(X)才能得到一个以“0000”开头的Hash结果呢? 为了达到这个工作量证明的目的,计算机需要不断递增Nonce值并对新的字符串进行SHA256 Hash运算:

“你好,世界!0”=> 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64

“你好,世界!1”=> e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8

“你好,世界!2”=> ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7

……

“你好,世界!4248”=> 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965

“你好,世界!4249”=> c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6

“你好,世界!4250”=> 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9

计算结果表明,当Nonce值为4251时可以通过验证。

现在,给计算机增加难度(工作量):将输入改为“你好,世界+整数值”,其中整数值范围为1到1000,即把输入改为1000个值的数组:“你好, world!1, Hello, world!2, ..., Hello, world!1000”,然后对数组中的每个输入依次进行上例中需要的工作量证明——找到前导0为4的Hash散列列表。

我们会发现平均执行的计算次数是66,958,非常接近2^16(65,536)。 数学中期望的计算量,就是我们要求的“工作量”。

2.2 分布式数据存储

有了“区块”+“链”的数据之后,接下来要考虑的问题就是如何记录和存储区块,即:谁应该参与数据记录? 带时间戳的数据应该存储在哪里?

在今天的中心化系统中,数据被集中记录并存储在中心节点。 现代银行支付系统就是一个典型的例子。

以太坊使用幽灵协议_以太坊幽灵协议_以太坊geth使用

图5 基于信任的中心化数据交互模型

上述中心化模式是全球金融交易的基本模式。 但是,区块链的设计并不同意在一个或几个中心化节点上记录和存储数据,而是应该让参与数据交易的每个节点都记录和存储所有数据。

以太坊geth使用_以太坊幽灵协议_以太坊使用幽灵协议

通过分布式记录、分布式存储、分布式传播,我们可以发现没有任何人、组织或国家可以控制系统,系统中的数据存储、交易验证和信息传输过程都是去中心化的。 集中。 在没有中心的情况下,大规模参与者达成共识,共同构建区块链数据库。 可以说,这是人类历史上第一次真正建立去中心化的系统。 甚至可以说,区块链技术构建了一个不朽的系统——只要网络中的所有节点不是同时集体崩溃,否则,区块链系统将继续运行。

2.3 密码学

现在,我们已经有了一套严格的区块数据生成规范,以及记录和存储区块数据的网络协议。 如果将这个系统架构应用到实际社会中,需要解决一个核心问题,即:如何使用这个严谨、记录完备的区块链变得可信,让我们成功避免在互联网不实名的情况下被骗。

区块链的交易信息存储在交易表中,与区块链的区块头形成多对一的关系。 只要能追溯区块,就很容易查询到区块中包含的所有交易记录。

每个区块链交易都需要一个有效的签名才能存储在区块链中。 区块链使用基于密码学的公私钥系统(非对称加密算法)对区块交易进行加密和解密。 交易发起人使用自己的私钥对交易进行签名,其他人使用公钥进行验证,从数学上保证了资金交易的安全性。

所谓“非对称加密算法”是指在加密和解密过程中分别使用两种密码,两种密码具有不对称的特点:

私钥实际上是一个使用SHA256算法生成的32字节(256位)的随机数。 有效私钥范围取决于区块链使用的SECP256K1椭圆曲线数字签名标准,大小范围从0x1到0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140之间的数字几乎都是合法的私钥。 在私钥前面加上版本号,在后面加上压缩标记和附加校验码(私钥经过两次SHA256运算,取两次Hash结果的前4字节),然后对其进行base58编码。 您可以获取我们常用的WIF(Wallet Import Format)格式的私钥。

私钥经过SECP256K1椭圆曲线算法处理生成公钥。 通过已知的“私钥”可以推算出“公钥”,但在已知“公钥”的情况下,无法逆向推算出“私钥”。

下面以“A转100元给B”为例,说明公钥和私钥在数字签名和安全验证应用中的原理。

以太坊geth使用_以太坊使用幽灵协议_以太坊幽灵协议

图6 私钥数字签名和公钥安全验证

从上面的过程可以看出,非对称加解密的过程几乎就是一系列的环节。 如果中间有任何一个链接被篡改,结果就会大不相同。 借助这一系列机制,可以在开放、匿名、互不信任的分布式网络环境中很好地解决数字交易过程中可能遇到的安全问题。

从信任的角度来看,区块链实际上是用数学的方法解决了人与人之间的信任问题。 过去,人们可能依靠人际关系中的“公民”和“同学”,政党社会中的“同志”,传统互联网交易平台中的“支付宝”来解决信任问题。 在区块链技术中,所有的规则都是预先制定好的。 以算法程序的形式表现出来,人们不需要知道交易的对方是“君子”还是“小人”,更不用说求助于中心化的第三方机构为交易“背书”,而是只需要相信数学算法。 建立互信。 因此,区块链技术的背后是一种为人们建立信用并达成共识背书的数学算法。

3 数字货币

区块链技术已经存在了 10 年,却从未被人们所重视。 2016年以来,比特币逐渐受到资本市场的追捧,隐藏在比特币背后的区块链技术才开始为大众所熟知。 比特币也成为区块链最早的应用,也是迄今为止最成功的数字货币。

3.1 比特币(BTC)

3.1.1 比特币的诞生

以太坊geth使用_以太坊幽灵协议_以太坊使用幽灵协议

纽约时间 2008 年 10 月 31 日下午 2 点 10 分,一位自称“中本聪”的人向数百名密码学家发送了一封电子邮件,宣布了他的新成就:不需要任何受信任的第三方,并且电子邮件中还附有一个链接,指向一份 9 页的白皮书《比特币:一种点对点电子现金系统》(Bitcoin: A Peer-to-Peer Electronic Cash System),其中详细描述了这个新的货币系统的架构。同年11月16日,中本聪在网上公布了这个系统的高级版本代码。2009年1月3日,中本聪挖出了比特币的第一个区块,位于芬兰赫尔辛基的一台小型服务器上的 Genesis Block 获得了第一个挖矿奖励——50 个比特币。这就是比特币的诞生,这是一套基于“加密分布式账本技术”和“信用系统不需要中介”。总结起来就是一句话:比特币是一种没有中央银行的去中心化货币体系。

在深入研究比特币之前,有必要了解人类使用货币的历史。

3.1.2 货币简史

人类使用的货币至少经历了以下转变:

长期以来,各国都是根据自己的黄金储备发行纸币,每一张美元纸币都有相应的黄金作为后盾。 这是“黄金标准”。 但后来一些强国意识到,放弃金本位制更有利于他们的经济发展和财富积累,因为他们可以发行以国家信用为担保的货币,这也可以为央行提供监管权力和工具。经济。 但一旦国家可以按照自己的意愿发行货币,就可能导致货币发行过多,成为一种无形的征税手段。 在极端情况下,当国家信用破产时,货币的价值无法换取等值的黄金。 币值也会大幅缩水,甚至一夜之间趋于零。

中本聪的比特币系统没有负责货币政策的高级中央银行。 它依托底层区块链技术,打造全新的数字货币体系。 除了“去中心化”的特点,比特币还借鉴了很多“黄金标准”的思想,比如:

(1) 储备有限

比特币准确的理论总量是20999999.769,接近2100万,所以我们习惯说比特币总量是2100万,其实略少。 就这么多,算法决定了比特币永远不会超量发行,就像地球上的黄金总储量是有限的。

(2)挖矿难度越来越大

前4年可以挖出比特币储量的一半左右,之后每4年减半,难度越来越大,就像一开始可以在表面捡到金子,然后非要挖三尺,还要到深海里找一样的。 目前,比特币网络经历了两次减半。 第一次是2012年11月底,下一次减半预计在2020年5月左右,以此类推。 2140 年左右,比特币系统将不再产生新铸造的比特币。

3.1.3 比特币的价值

最初,比特币一文不值。 市场上流传的第一笔交易发生在2010年5月22日,一位程序员用10000比特币买了两个披萨。 按照历史最高价计算,这两个披萨在被比特币爱好者戏称为“披萨日”的一天价值1.9亿美元。 在比特币低潮的时候,中关村有人用一个比特币买了一杯咖啡。

因为比特币是去中心化的,天然具有匿名、不受监管、跨国等特点,再加上可靠性和安全性高,比特币在很多跨国交易和黑市交易中大行其道,比如毒品交易和跨国洗钱就喜欢用比特币。

后来,随着比特币价格的日益上涨,越来越多的人开始将其作为规避金融监管或避税的工具。 例如,一些国家的富人购买比特币来转移和继承他们的财富,以避免遗产税。

由于其商业价值和交易场景,越来越多的人开始接受比特币并将其视为一种资产。 当更多人使用它时,比特币将开始变得更有价值。 2017 年 12 月 16 日,比特币的交易价格达到了历史最高点:19,187 美元/枚。

以太坊geth使用_以太坊幽灵协议_以太坊使用幽灵协议

图7 比特币历史交易价格走势