主页 > imtoken唯一官网 > 专家讲座▏区块链(二)——基础设施解析

专家讲座▏区块链(二)——基础设施解析

imtoken唯一官网 2023-02-21 05:46:55

某研究所研究员挖比特币_比特币和莱特币哪个好挖_挖比特币

关于作者

梅一多博士,首席数据官联盟专家组专家,高级计算机工程师职称,博士。 西安交通大学计算机科学学士,北京交通大学博士后,上海市青年拔尖人才获得者,佐治亚理工学院访问学者,中国科学院访问学者。

梅一多博士拥有十余年人工智能、云计算、大数据系统的高校研究和企业实践工作经验。 曾在互联网公司和世界500强企业总部从事人工智能、大数据、云计算等前沿技术的研发和管理工作。 主持和参与研发了多项企业级人工智能、云计算、大数据项目。 经济效益可观。 主持省部级科研项目2项,参与国家863、自然科学基金、省部级重点研究项目10余项,与团队共发表SCI、EI收录论文60余篇。

张睿博士是首席数据官联盟专家组专家,中国科学院信息工程研究所副研究员,中国科学院软件研究所博士后,中国科学院访问学者。佐治亚理工学院。 张锐博士在数据安全、隐私保护和安全协议方面拥有十余年的研究经验。 目前主要从事区块链安全相关研究。 主持和参与国家级、省部级项目十余项,在ACM TOIT、IEEE TSC、SCIENCE CHINA: Information Sciences、PLOS ONE等国际期刊发表论文30余篇; 国际会议ICWS、MILCOM、IEEE CLOUD等,被google scholar引用超过200次。

上一篇文章专家详细讲解,本章深入剖析区块链基础设施。

1. 区块链基础设施

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

比特币和莱特币哪个好挖_挖比特币_某研究所研究员挖比特币

2.数据层

从狭义上讲,区块链是去中心化系统所有节点共享的数据账本。 每个分布式节点可以通过特定的哈希算法和默克尔树数据结构,将一段时间内收到的交易数据和代码封装成一个带有时间戳的数据块,并链接到当前最长的主链上,最新的块是形成。 该过程涉及区块、链结构、哈希算法、默克尔树和时间戳等技术元素。

2.1 数据块

如下图所示,每个数据块一般包括两部分:块头(Header)和块体(Body)。 区块头封装了当前版本号(Version)、上一个区块的地址(Prev-block)、当前区块的目标哈希值(Bits)、当前区块的PoW共识过程的随机数(Nonce)区块,以及默克尔根(Merkle-root)和时间戳(Timestamp)等信息。 比特币网络可以动态调整 PoW 共识过程的难度值。 最先找到正确解随机数Nonce并经过所有矿工验证的矿工将获得当前区块的记账权。 区块体包括当前区块中的交易数量和区块创建过程中产生的所有经过验证的交易记录。 这些记录通过 Merkle 树的哈希过程生成一个唯一的 Merkle 根,并记录在区块头中。

某研究所研究员挖比特币_挖比特币_比特币和莱特币哪个好挖

2.2 链结构

获得记账权的矿工将当前区块链接到前一个区块,形成最新的区块主链。 每个区块依次连接,形成一条从创世区块到当前区块最长的主链,从而记录区块链数据的完整历史,提供区块链数据的溯源和定位功能。 数据可以通过这种链式结构进行跟踪和追溯。 需要注意的是,如果两个矿工在短时间内同时挖出两个新的区块并链接起来,可能会导致区块主链暂时分叉。 解决方案是同意矿工总是选择扩展累积的最大工作量证明区块链。 因此,当主链分叉时,后续区块的矿工会通过计算比较,将自己的区块链接到当前累积工作量证明最大化的候选链上,形成更长的新主链,从而解决分叉问题。

挖比特币_比特币和莱特币哪个好挖_某研究所研究员挖比特币

2.3 时间戳

区块链技术要求获得记账权的节点必须在当前数据块头加上时间戳,表示该块数据的写入时间。 因此,主链上的区块是按时间顺序排列的。 时间戳技术本身并不复杂,但其在区块链技术中的应用是一项重大创新。 时间戳可以作为区块数据存在的证明,有助于形成不可篡改、不可伪造的区块链数据库,从而为区块链在公证、知识产权登记等时间敏感领域的应用奠定基础。 根据。 更重要的是,时间戳为未来基于区块链的互联网和大数据增加了一个时间维度,使得通过区块数据和时间戳重现历史成为可能。

2.4 哈希函数

区块链通常不直接保存原始数据或交易记录,而是保存其哈希函数值,即将原始数据编码成一串特定长度的数字和字母记录在区块链中。 哈希函数(也称为散列函数)具有许多优良的特性,因此特别适合存储区块链数据。

2.5 默克尔树

Merkle树是区块链的重要数据结构,其作用是快速总结和验证区块数据的存在性和完整性。 Merkle 树通常包含区块体的底层(交易)数据库、区块头的根哈希(即 Merkle 根),以及沿着底层区块数据到根哈希的所有分支。 Merkle树的运行过程一般是对块体的数据进行分组哈希,将生成的新哈希值插入到Merkle树中,如此递归直到只剩下最后一个根哈希值,记录为该块的Merkle根标头。

最常见的 Merkle 树是比特币采用的二叉 Merkle 树。 每个哈希节点总是包含两个相邻的数据块或它们的哈希值。 其他变种还有以太坊的Merkle patricia tree等。Merkle树有很多优点:首先,大大提高了区块链的运行效率和可扩展性,使得区块头只需要包含根哈希值,而不需要封装所有的底层数据,这使得哈希运算能够在智能手机甚至物联网设备上高效运行; 其次,默克尔树可以支持简化的支付验证协议,即(交易)数据也可以在不运行完整的区块链网络节点的情况下进行验证。

2.6 密码学原理

(1)哈希加密算法:SHA256算法由美国国家安全局开发,美国国家标准技术研究院于2001年发布,是SHA-2的一个分支。 将原始数据输入SHA256算法,输出结果为256位的Hash值。 SHA256的特点是差异巨大。 只有将完全相同的数据输入 SHA256 才能得到相同的结果。 否则,即使输入的数据稍作修改,比如只改变一位数,SHA256的输出也会有很大的不同。

(2) 非对称加密算法:非对称加密算法是为满足安全要求和所有权验证要求而集成到区块链中的一种加密技术。 常见的算法有RSA、Elgamal、Rabin、DH、ECC等。非对称加密算法在加解密过程中通常使用两种非对称密码,即公钥和私钥。 非对称密钥对具有两个特征。 一种是使用其中一把钥匙加密信息后,只有对应的另一把钥匙才能解锁; 二是公钥可以公开给别人,私钥可以保密,这样别人就无法从公钥中推导出相应的私钥。 非对称加密技术在区块链中的应用场景主要包括信息加密、数字签名和登录认证。

3、网络层

网络层封装了区块链系统的组网方式、消息传播协议、数据验证机制等要素。 结合实际应用需求,通过设计特定的通信协议和数据验证机制,让区块链系统中的每个节点都可以参与到区块数据的验证和记账过程中,只有当区块数据经过全网大部分节点后经验证,可记录在区块链中。

3.1 联网方式

根据最原始的设计理念,区块链采用非结构化的分布式点对点网络P2P架构。 P2P是Peer-to-Peer的缩写,即点对点计算或点对点网络。 共享计算机资源和服务,P2P网络中的每台计算机也称为节点。 在P2P网络环境中,成千上万的节点处于点对点的位置,P2P网络不依赖于专门的中心化服务器。 每个节点不仅可以充当网络服务的请求者,还可以为其他节点提供资源和服务。 提供的资源和服务包括:CPU、信息共享和交换等计算资源,计算机缓存和磁盘空间等存储资源,带宽等网络资源等。 P2P网络被广泛用于开发共享资源和信息的应用程序,如即时通讯软件、文件传输和下载软件、网络视频数据加速、搜索外星人等共享计算资源软件。 P2P网络是区块链技术架构的基石之一。

区块链系统的节点一般具有分布性、自治性、公开性和进出自由的特点。 因此,一般采用点对点网络P2P网络来组织分散在世界各地的节点参与数据校验和记账。 P2P网络中各节点地位平等,以扁平拓扑结构相互通信交互。 没有中心化的特殊节点和层级结构。 每个节点将承担网络路由、验证区块数据和传播区域。 区块数据,发现新节点等功能。 根据节点存储的数据量,可分为全节点和轻量节点。 前者保存从创世区块到当前最新区块的完整区块链数据,通过实时参与区块数据的验证记账,动态更新主链。 全节点的优势在于可以独立验证、查询和更新任何区块数据,而不依赖于任何其他节点。 缺点是维护全节点的空间成本比较高。

3.2 数据传播协议

任何一个区块数据产生后,都会由产生该数据的节点广播给全网其他所有节点进行验证。 现有的区块链系统一般都是根据实际应用需求设计的比特币传播协议的变体。 例如,以太坊区块链集成了所谓的幽灵协议,解决了区块数据确认速度快导致的区块失效率高的问题。 率和随之而来的安全风险。

3.3 数据验证机制

P2P 网络中的每个节点始终在监听比特币网络中广播的数据和新区块。 节点收到相邻节点发送的数据后,首先会验证数据的有效性。 如果数据有效,则按照收到的先后顺序为新数据建立一个存储池,暂存未记录在区块中的有效数据,同时继续转发给相邻的节点; 如果数据无效,数据将被立即丢弃,这样无效数据就不会在区块链网络中继续传播。

从网络层的设计机制可以看出,区块链是一种典型的分布式大数据技术。 全网的数据同时存储在去中心化系统的所有节点上。 即使部分节点出现故障,只要还有一个节点正常运行,区块链主链的数据就可以完全恢复,不会影响后续区块数据的记录和记录。 更新。 这种高度去中心化的块存储模型与云存储模型的区别在于,后者是在中心化结构基础上的多存储多数据备份模型,即多中心模型; 而前者是完全去中心化的存储方式,数据安全性更高。

4.共识层

在最初的基础论文中,设计者提出了工作量证明(PoW)的共识机制,其核心思想是通过引入分布式节点之间的算力竞争来保证数据的一致性和共识的安全性,即通过一个证明来确保参与节点贡献了一定的工作量。 工作负载是产生和传递信任的基础。 在区块链的设计原理中,通过解决一道数学题来证明你的工作量。

早期的区块链应用多采用高度依赖节点算力的PoW机制来保证比特币网络分布式记账的一致性。 随着区块链技术的发展和各种竞争性货币的出现,人们提出了多种不依赖算力就能达成共识的机制,例如点点币和比特股首创的股权证明(PoS)共识。证明机制(Delegated proof of stake,DPOS)共识机制等。区块链共识层封装了这些共识机制。

4.1 PoW 共识

中本聪在他的比特币基础论文中设计了 PoW 共识机制。 其核心思想是通过引入分布式节点间的算力竞争来保证数据一致性和共识安全。 在比特币系统中,每个节点(矿工)根据自己的计算机算力相互竞争,共同解决一个复杂但易于验证的SHA256数学问题(即挖矿)。 最快解决问题的节点将获得系统自动生成的区块记录账户权限和比特币奖励。

4.2 PoS 共识机制

PoS共识是为解决PoW共识机制的资源浪费和安全缺陷而提出的替代方案。 PoS共识本质上是用权益证明来代替PoW中基于算力的工作量证明,系统中拥有最高权益而非最高算力的节点获得区块记账权。 权益体现在节点拥有一定数量的货币,称为币龄或币天数。 币龄是特定数量的币与其最近一次交易的时长的乘积,每笔交易都会消耗一定数量的币龄。

4.3 DPoS 共识机制

DPoS共识机制的基本思想类似于董事会的决策,即系统中的每个股东节点都可以将自己的股权作为投票权授予代表,前101名节点获得得票最多并愿意成为代表的将进入董事会。 时间表轮流打包和结算交易并签署(即产生)一个新区块。 在对每个块进行签名之前,必须验证前一个块是否已由可信代表节点签名。 董事会授权代表节点可从每笔交易的手续费中获取收益。 同时,要成为授权代表节点,必须缴纳一定数额的押金,相当于出块收益的100倍。 授权代表节点必须对其他股东节点负责。 如果错过签署相应的区块,股东将撤回投票并将该节点投票退出董事会。 因此,授权代表节点通常必须保证99%以上的在线时间才能实现盈利目标。 显然,不同于必须信任最高算力节点的PoW共识机制和必须信任最高权益节点的PoS共识机制,DPoS共识机制中的每个节点可以独立确定自己信任的授权节点,这些节点轮流保留帐户以生成新区域。 块,从而大大减少参与验证和记账的节点数量,实现快速共识验证。

除了上述三种主流共识机制外,PoW+PoS、Proof of activity等多种变体机制也从实际的区块链应用中衍生出来。 这些共识机制各有优缺点。 比特币的PoW共识机制凭借其先发优势形成了成熟的挖矿产业链某研究所研究员挖比特币,拥有众多支持者,而PoS、DPoS等新兴机制更安全、环保、高效,使得共识机制的选择成为区块链系统研究者最难达成共识的问题。

5.激励层

区块链共识过程通过汇聚大规模共识节点的算力资源,实现共享区块链账本的数据校验和记账工作,本质上是共识节点间的任务众包过程。 去中心化系统中的共识节点是自利的,最大化自身利益是参与数据验证和记账的根本目标。 因此,需要设计合理的激励相容的众包机制,使共识节点个体为实现自身利益最大化的理性行为与保证去中心化区块链系统安全有效的总体目标相一致。 区块链系统通过设计适度的经济激励机制,结合共识过程,聚集大规模节点参与,形成稳定的区块链历史共识。

5.1 发行机制

以比特币系统为例介绍发行机制。 比特币系统中每个区块发行的比特币数量随着时间的推移逐步减少。 从创世块开始的每个区块都会向该区块的簿记员发放50个比特币奖励,之后每四年(210,000个区块)每个区块发行的比特币数量将减少一半。 以此类推,直到比特币数量稳定在2100万枚上限。

比特币交易过程中会产生手续费。 目前默认的手续费是一个比特币的十分之一。 这部分费用也会记录在区块中,奖励给记账人。 这两部分费用将封装在每个区块的第一笔交易中(称为 Coinbase 交易)。 虽然每个区块的总手续费相对于新发行的比特币(通常不超过1个比特币)来说很小,但是随着未来比特币发行数量逐渐减少甚至停止发行,手续费会逐渐增加节点共识和记账的主要驱动力。 同时手续费也可以防止比特币网络上大量微交易发起的粉尘攻击,起到保障安全的作用。

5.2 分配机制

在比特币系统中,通常会有大量算力较小的节点选择加入矿池,通过相互合作来集中算力,以增加挖出新区块的概率,分享该区块的比特币和手续费奖励. 据 Bitcoinmining.com 统计,目前已经存在 13 种不同的分配机制。 主流矿池通常采用PPLNS(Pay per last N shares)、PPS(Payper share)、PROP(PROPortionately)等机制。 矿池将每个节点贡献的算力按比例分成不同的份额(Shares)。 PPLNS机制是指在一个区块被发现后,每个合作节点按照其在最后N个份额中实际贡献的份额分配该区块。 比特币中的比特币; PPS直接根据分成比例为每个节点预估并支付固定的理论收益,采用该方式的矿池将收取适度的手续费,以弥补其对每个节点承担的收益不确定性的风险; PROP 机制根据节点贡献的份额按比例分配比特币。 矿池的出现是对比特币和区块链去中心化趋势的潜在威胁。 如何设计合理的分配机制,引导所有节点合理协作,避免算力过度集中带来的安全问题,是亟待解决的问题。

6.合约层

合约层封装了区块链系统的各种脚本代码和算法,以及由此产生的更复杂的智能合约。 如果说数据、网络、共识三个层次是区块链的底层虚拟机,分别承担数据表示、数据传播、数据验证的功能,那么合约层就是构建在区块链之上的业务逻辑和算法。区块链虚拟机。 实现区块链系统灵活编程和数据操作的基础。 大多数数字加密货币,包括比特币,都是使用非图灵完备的简单脚本代码来编程控制交易过程,这也是智能合约的雏形; 随着技术的发展,出现了以太坊等图灵完备的实现。 更复杂和灵活的智能合约脚本语言使区块链能够支持宏观金融和社会系统中的许多应用程序。

6.1 脚本系统

比特币采用一种简单的、基于堆栈的、从左到右的处理脚本语言,脚本本质上是附加到比特币交易的指令列表。 比特币交易依赖两类脚本进行验证,即锁定脚本和解锁脚本。 两者的不同组合可以衍生出比特币交易中无限多的控制条件。 其中,锁定脚本是附加在交易输出值上的障碍,规定了未来花费交易输出的条件; 解锁脚本是满足锁定脚本对输出设置的消费条件的脚本,它将允许输出被消费。 例如,大部分比特币交易都是用接收方的公钥加密,用私钥解密,所以对应的P2PKH(Pay to public key hash)标准交易脚本中的lock script就是使用接收方的公钥实现阻塞输出的功能,并使用私钥对应的数字签名进行解锁。

比特币脚本系统可以实现灵活的交易控制。 例如,通过指定一定时间(如一周)作为解锁条件,可以实现延迟支付; 通过规定收款人和担保人必须共享一个私钥签名来控制一个比特币,从而实现担保交易; 通过设计一个根据外部信息源的规则来检查某个概率事件是否发生,并将其附加到一定数量的比特币交易作为解锁脚本,可以实现赌博和预测市场等应用; 通过设置N个私钥集合中的至少一个,只提供M个私钥即可解锁,实现MN型多重签名,即N个潜在接收者中至少有M个同意签名,实现支付。

比特币脚本是智能合约的雏形某研究所研究员挖比特币,催生了人类历史上第一个可编程的全球货币。 但是,比特币脚本系统是非图灵完备的,里面没有复杂的循环和流程控制,在失去一定灵活性的同时,可以大大降低复杂性和不确定性,可以避免无限循环等逻辑炸弹。 造成拒绝服务和其他类型的安全攻击。 为了提高脚本系统的灵活性和可扩展性,研究人员尝试在比特币协议之上叠加新的协议,以满足在区块链上构建更复杂的智能合约的需要。 以太坊开发了一套图灵完备的脚本语言。 用户可以基于以太坊构建任意复杂、精确定义的智能合约和去中心化应用,从而为构建基于区块链的可编程系统奠定基础。

7.超级账本

Hyperledger是区块链行业的明星项目。 它是由Linux基金会发起并建立的一个开源项目。 它由IBM、英特尔等科技巨头、金融公司GP Morgan、ABN Amro、咨询公司Accenture和其他联合机构共同维护的项目最初于2015年提出,旨在利用区块链技术建立联合参与和可靠的区块链解决方案。 Hyperledger包括一系列项目,其中影响最大的项目是Fabric。 Fabric 是将应用程序或解决方案开发为模块化架构的基础,允许共识服务或会员服务等组件即插即用。 Fabric 利用容器技术托管智能合约,称为“链代码”。

8. 智能合约

智能合约的概念最早由学者 Nick Szabo 于 1994 年提出,最初被定义为以数字形式定义的一组承诺,包括合约参与者可以执行这些承诺的协议。 设计初衷是将智能合约构建为物理实体,创造出各种灵活可控的智能资产。 由于计算手段的落后和应用场景的缺乏,智能合约并未得到研究者的广泛关注。

区块链技术的出现,重新定义了智能合约。 智能合约是区块链的核心组成部分(合约层)。 它是一个事件驱动的、有状态的计算机程序,运行在可复制的共享区块链数据分类账上。 它可以主动或被动地处理数据。 接受、存储和发送价值,以及控制和管理各种链上的智能资产等功能。 作为一种嵌入式程序化合约,智能合约可以嵌入到任何区块链数据、交易、有形或无形资产中,形成可编程控制的软件定义系统、市场和资产。 智能合约不仅为传统金融资产的发行、交易、创设和管理提供创新的解决方案,还在社会系统中的资产管理、合同管理、监管执法等事务中发挥重要作用。

具体来说,智能合约是一组情境/响应式程序化规则和逻辑,以及部署在区块链上的去中心化、可信和共享的程序代码。 智能合约还具有区块链数据的分布式记录、存储、验证、不可篡改、不可伪造等一般特性。 合同签订双方就合同内容、违约条件、违约责任、外部核查数据来源等达成一致。 如有必要,对合约代码进行检查和测试,确保其正确无误,然后以智能合约的形式部署到区块链上。 任何中央机构的自动化都代表签署方执行合同。 智能合约的可编程特性允许签署方添加任意复杂的条款。

智能合约的运行机制如图所示:通常,智能合约在各方签署后,以程序代码的形式附加到区块链数据(如一笔比特币交易)中,通过P2P网络并由节点验证。 之后,它被记录在区块链的特定块中。 智能合约封装了一些预定义的状态和转移规则、触发合约执行的场景(如到达特定时间或特定事件发生等)、特定场景下的响应动作等。区块链可以监控状态实时调用智能合约,并在检查外部数据源并确认满足某些触发条件后激活并执行合约。

Smart contracts are characterized by autonomy, self-sufficiency, and decentralization. Self-government means that the contract will run automatically once launched, without any intervention by other signatories; self-sufficiency means that the contract can obtain funds by providing services or issuing assets, and use these funds when needed; decentralized means A smart contract is a contract that is guaranteed to be executed by decentralized storage and verification of program code rather than a centralized entity, which can guarantee the fairness and impartiality of the contract to a large extent.

Smart contracts are of great significance to blockchain technology. On the one hand, the smart contract is the activator of the blockchain, which endows the static underlying blockchain data with flexible and programmable mechanisms and algorithms, and lays the foundation for the construction of programmable financial and social systems in the era of blockchain 2.0 and 3.0. On the other hand, the automation and programmable features of smart contracts enable them to encapsulate the complex behavior of each node in the distributed blockchain system and become software agent robots in the virtual world composed of blockchains, which helps Promote the application of blockchain technology in various distributed artificial intelligence systems, enabling the construction of various decentralized applications (Decentralized application, Dapp), decentralized autonomous organizations (Decentralized autonomous organization, DAO), Decentralized autonomous corporation (DAC) and even decentralized autonomous society (DAS) become possible.

As far as the status quo is concerned, the main development trend of blockchain and smart contract technology is from automation to intelligence. Most of the existing smart contracts and the essential logic of their applications are still based on IF-THEN type conditional response rules of predefined scenarios, which can meet the current needs of automated transactions and data processing. Future smart contracts should have WHAT-IF deduction based on unknown scenarios, calculation experiments and a certain degree of autonomous decision-making functions, so as to realize the leap from current automated contracts to real smart contracts.

挖比特币_比特币和莱特币哪个好挖_某研究所研究员挖比特币

(unfinished, to be continued)

The above content is original by the authors, Dr. Mei Yiduo and Dr. Zhang Rui. If there is any reprint, please contact this official account for authorization. When reprinting, please indicate the source from the official account Chief Data Officer Alliance (ID: cdoalliance) and indicate the author.

2017年

挖比特币_某研究所研究员挖比特币_比特币和莱特币哪个好挖