当前位置:首页 » 以太坊知识 » 以太坊数据结构

以太坊数据结构

发布时间: 2022-08-09 02:15:26

1. 有谁知道能解释一下有向无环图(DAG)么怎么用程序做出来,及怎么应用到经济学实证上

我们说区块链目前还不成熟,有各种各样的问题,比如说处理速度慢、手续费高昂、存在安全隐患等等,这些都是用户最直观的体验,体验不是太好。区块链还有一个问题,那就是高并发问题。
高并发问题是怎么回事呢,我们简单说一下。高并发是计算机领域的问题,简单来讲,高并发问题就是系统无法顺利同时运行多个任务。
很多任务同时运行,一大堆用户涌进来,系统承受不住这么多的任务,会出现高并发问题,你的系统就卡住了,就好比春运时候,12306系统总是卡住,有可能就是高并发问题造成的。
传统互联网尚且存在高并发问题,区块链网络自然也存在这个问题,毕竟区块链的成熟程度比起传统互联网,还有很大的差距。但是,如果没有安全、可靠和高效的公链,整个区块链产业的发展都将受到严重制约,应用落地也是空谈。
在这种背景下,DAG 技术就被提出来了,DAG 的全称是“Directed Acyclic Graph”,中文翻译为“有向无环图”。
DAG有向无环图是怎么回事呢,它到底能起到什么作用呢?我们下面解释一下。
一、DAG:一个新型的数据结构
DAG,中文名字叫“有向无环图”,从字面意思看,“有向"就是说它是有方向的,
“无环”就是说它是没有环路的、不能形成闭环的。所以,DAG其实是一种新型的数据结构,这个数据结构是有方向的,同时又是不能形成闭环的。
传统区块来讲,我们总是以“区块”为单位,一个区块里往往包含了多笔交易信息。而在DAG中,没有区块的概念,而是以“单元”为单位,每个单元记录的是单个用户的交易,组成的单元不是区块,而是一笔笔的交易,这样一来,可以省去打包出块的时间。
简单来说,区块链和DAG有向无环图最大的区别就是:区块链是一个接一个的区块来存储和验证交易的分布式账本,而DAG则是把每笔交易都看成一个区块,每一笔交易都可以链接到多个先前的交易来进行验证。
二、DAG 的工作原理
传统区块链上,就拿比特币来讲,它是单链式的结构,区块与区块之间按照时间戳的先后顺序排列开来(如图一),数据记录在一条主链上。用不太恰当的比喻来讲,这个
“单链式”结构是一条一字排列的链。
区块链只有一条单链,打包出块就无法并发执行。新的区块会加入到原先的最长链之上,所有节点都以最长链为准,继续按照时间戳的顺序无限蔓延下去。而对于DAG来讲,每个新加入的单元,不仅只加入到最长链的一个单元,还要加入到之前所有的单元(如图二)。
举个例子:假设我发布了一个新的交易,此时DAG结构已经有2个有效的交易单元,那么我的交易单元会主动同时链接到前面的2个之中,去验证并确认,直到链接到创世单元,而且,上一个单元的哈希会包含到自己的单元里面。
换句话说,你要想进行一笔交易,就必须要验证前面的交易,具体验证几个交易,根据不同的规则来进行。这种验证手段,使得DAG可以异步并发的写入很多交易,并最终构成一种拓扑的树状结构,极大地提高扩展性。
依据DAG有向无环图,每一笔交易都直接参与了维护全网。当交易发起后,直接广播全网,跳过矿工打包区块阶段,这样就省去了打包交易出块的时间,提升了区块链处理交易的效率。
随着时间递增,所有交易的区块链相互连接,形成图状结构,如果要更改数据,那就不仅仅是几个区块的问题了,而是整个区块图的数据更改。DAG这个模式相比来说,要进行的复杂度更高,更难以被更改。
总结一下,DAG作为一种新型的去中心化数据结构,它属于广义区块链的一种,具备去中心化的属性,但是二者的不同之处在于:
区块链组成单元是Block(区块),DAG组成单元是TX(交易)。
区块链是单线程,DAG是多线程。
区块链所有交易记录记在同一个区块中,DAG每笔交易单独记录在每笔交易中。
区块链需要矿工,DAG不需要矿工。
三、 DAG 的代表:IOTA
DAG当前的代表项目,最知名的无疑就是 IOTA。可以说,正是因为IOTA这个币种在 2017年下半年冲进市值排行第四位,才使人们真正认识到了它的底层技术:DAG有向无环图。
IOTA在DAG有向无环图的基础上提出了“缠结”概念,在IOTA里面,没有区块的概念,共识的最小单位是交易。每一个交易都会引用过去的两条交易记录哈希,这样前一交易会证明过去两条交易的合法性,间接证明之前所有交易的合法性。这样一来, 就不再需要传统区块链中的矿工这样少量节点来验证交易、打包区块,从而提升效率,节省交易费用。
四、 DAG 的现状
尽管理论上来讲,DAG有向无环图能够弥补传统区块链的一些弊端,但是目前并不成熟,应用到数字货币领域的时间也比较短,还比较年轻 。
它没有像比特币那般经过长达10年的时间来验证整个系统的安全性,也没有像以太坊那般实现了广泛的应用场景。不过,现在有些声音提出要采用“传统区块链+DAG”的数据结构,但是还没有非常突出的案例,这里就不多说了。
总结一下,本节我们介绍了区块链的衍生技术:DAG有向无环图,这是一种全新的数据结构,可以对区块链处理交易的效率、并发力达到显著的提升。

2. 以太坊架构是怎么样的

以太坊最上层的是DApp。它通过Web3.js和智能合约层进行交换。所有的智能合约都运行在EVM(以太坊虚拟机)上,并会用到RPC的调用。在EVM和RPC下面是以太坊的四大核心内容,包括:blockChain, 共识算法,挖矿以及网络层。除了DApp外,其他的所有部分都在以太坊的客户端里,目前最流行的以太坊客户端就是Geth(Go-Ethereum)

3. 以太坊和比特币的区别

1.比特币是一种货币,是一种使用某种算法和数据结构产生的一堆数据,而且还会不停并且不能停地产生。只要这堆数据停止了增加,那我们就认为比特币死了。这堆数据可以用来干很多事,现在我们就拿它来做为货币,还可以拿它来搞智能合约之类的东西。这堆数据可以用来干很多事,现在我们就拿它来做为货币,还可以拿它来搞智能合约之类的东西。
2.以太坊是一种智能合约和去中心化应用平台。讲它是“平台”也是一种在我们使用者当中的投影。平台这个概念很有意思,比如我们说Windows是一个平台,微信也是一个平台,比如我们说一个大学也是一个平台,社会也是一个平台。所谓的平台,就是在这上面我们能做事。而深挖以太坊,其实和比特币是一样的,也是使用某种算法和数据结构产生的一堆数据,这一堆数据也一样还在继续增加而且不能停止增加。
3.比特币的优势:整体看来,参赛团队对于比特币的投资支持率为 55%,以太坊则为 45%。根据部分团队给出的研究报告,比特币的价值仍然会高于以太坊,预计到 2020 年,比特币的价格将会再度上涨 600%。
拓展资料:
1.比特币和以太币的产生过程:比特币和以太币都是通过挖矿程序产生的。通过竞争计算一种题目,谁先算得谁获得系统奖励的币。两者的区别是计算的题目不一样。比特币是十分钟算一个解,以太币是12秒一个解。使用以太坊,阻挡时间设置为14-15秒,而不是比特币10分钟。很明显,以太坊比起比特币允许更快的交易时间;以太坊逐年释放相同数量的以太网,而比特币区块每四年会减半;比特币交易的成本是标准化的,而与以太坊相比,成本可能会根据计算复杂性,带宽使用和存储需求而变化;以太坊自己的图灵完整的内部代码允许计算任何东西,只要有计算能力和时间。比特币中没有这种灵活性;以太坊成群结队,而比特币被释放 - 现有2100万比特币中的大部分都由早期的矿工拥有;与比特币不同,以太坊通过其Ghost协议阻止集中式池池挖掘;以太坊使用Ethash,这是一种内存硬哈希算法。比特币使用集中式专用集成电路。

4. 如何创建和签署以太坊交易

交易

区块链交易的行为遵循不同的规则集

  • 由于公共区块链分布式和无需许可的性质,任何人都可以签署交易并将其广播到网络。

  • 根据区块链的不同,交易者将被收取一定的交易费用,交易费用取决于用户的需求而不是交易中资产的价值。

  • 区块链交易无需任何中央机构的验证。仅需使用与其区块链相对应的数字签名算法(DSA)使用私钥对其进行签名。

  • 一旦一笔交易被签名,广播到网络中并被挖掘到网络中成功的区块中,就无法恢复交易。

  • 以太坊交易结构

  • 以太坊交易的数据结构:交易0.1个ETH

    {
    'nonce':'0x00', // 十进制:0
    'gasLimit': '0x5208', //十进制: 21000
    'gasPrice': '0x3b9aca00', //十进制1,000,000,000
    'to': '' ,//发送地址
    'value': '0x16345785d8a0000',//100000000000000000 ,10^17
    'data': '0x', // 空数据的十进制表示
    'chainId': 1 // 区块链网络ID
    }

    这些数据与交易内容无关,与交易的执行方式有关,这是由于在以太坊中发送交易中,您必须定义一些其他参数来告诉矿工如何处理您的交易。交易数据结构有2个属性设计"gas": "gasPrice","gasLimit"。

  • "gasPrice": 单位为Gwei, 为 1/1000个eth,表示交易费用

  • "gasLimit": 交易允许使用的最大gas费用。

  • 这2个值通常由钱包提供商自动填写。

    除此之外还需要指定在哪个以太坊网络上执行交易(chainId): 1表示以太坊主网。

    在开发时,通常会在本地以及测试网络上进行测试,通过测试网络发放的测试ETH进行交易以避免经济损失。在测试完成后再进入主网交易。

    另外,如果需要提交一些其它数据,可以用"data"和"nonce"作为事务的一部分附加。

    A nonce(仅使用1次的数字)是以太坊网络用于跟踪交易的数值,有助于避免网络中的双重支出以及重放攻击。

  • 以太坊交易签名

    以太坊交易会涉及ECDSA算法,以Javascript代码为例,使用流行的ethers.js来调用ECDSA算法进行交易签名。

  • const ethers = require('ethers')

  • const signer = new ethers.Wallet('钱包地址')


  • signer.signTransaction({

  • 'nonce':'0x00', // 十进制:0

  • 'gasLimit': '0x5208', //十进制: 21000

  • 'gasPrice': '0x3b9aca00', //十进制1,000,000,000

  • 'to': '' ,//发送地址

  • 'value': '0x16345785d8a0000',//100000000000000000 ,10^17

  • 'data': '0x', // 空数据的十进制表示

  • 'chainId': 1 // 区块链网络ID

  • })

  • .then(console.log)
  • 可以使用在线使用程序Composer将已签名的交易传递到以太坊网络。这种做法被称为”离线签名“。离线签名对于诸如状态通道之类的应用程序特别有用,这些通道是跟踪两个帐户之间余额的智能合约,并且在提交已签名的交易后就可以转移资金。脱机签名也是去中心化交易所(DEXes)中的一种常见做法。

    也可以使用在线钱包通过以太坊账户创建签名验证和广播。

    使用Portis,您可以签署交易以与加油站网络(GSN)进行交互。


链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。

5. 什么是跨链技术

跨链,顾名思义,就是通过技术手段,能让价值跨过链与链之间的障碍,进行直接的流通。跨链本质上和货币兑换是一样的。跨链并没有改变每个区块链上的价值总额,只是不同的持有人之间进行了一个兑换。

跨链是一个复杂的过程,需要链对链外的信息的获取与验证,需要节点有单独的验证能力等等。跨链技术主要有四种实现模式:公证人模式、侧链/中继、哈希锁定和分布式私钥控制等。

一、公证人模式

公证人模式(Notary schemes)是链与链之互相操作最简单的使用方法,由某个或某组受信任的团体来声明A链对B链上发生了某件事情。公证人模式中较为出名的应用是瑞波Interledger协议。

Interledger协议是在2012年由瑞波实验室提出的,通过第三方“连接器”或“验证器”将两个不同的区块链(记账系统)连接起来,使它们能够自由地兑换货币。在这个过程中,记账系统无需信任“连接器”,因为协议采用密码算法为这两个记账系统创建资金托管,当所有参与方对交易达成共识时,才可相互交易。

二、侧链/中继

侧链也是一个区块链,它能够验证来自其它区块链的数据,能够实现比特币和其它资产在区块链之间互相转移,形成了一个全新开放的开发平台。前段时间很火的项目以太坊雷电网络就是采用的侧链技术。使用雷电网络的的参与者在互相转账时,不需要通过以太坊主链交易确认,而是通过参与者之间创建微支付通道在主链下完成。侧链的主要应用有:RSK、BTC Relay等。

前面我们已经谈到过侧链技术,想要了解更多的小伙伴,可以戳这里回顾。

三、哈希锁定

哈希锁定(Hash-locking)最早起源于闪电网络的HTLC(Hashed TimeLock Contract)。它是通过形成智能合约来保障任意两个人之间的转账都可以通过一条“支付”通道来实现,完成“中介”的角色。交易的双方通过智能合约,先冻结部分钱,并提供一个Hsah值。谁能在合约设置时间内匹配上Hash值,那么这部分冻结的钱就归谁了。

哈希锁定虽然实现了跨链资产的交换,大部分场景能够支持资产的抵押,但是没有实现跨链资产的转移,更不能实现跨链合约,所以它的应用场景相对受限。

四、分布式私钥控制

分布式私钥控制(Distributed private key control)是利用一个基于协议的内置资产模板,根据跨链交易信息部署新的智能合约创建新的资产。当一种已注册资产由原有链转移到跨链时,跨链节点会为用户在已有的合约中发放相应等值的代币。

实现和解除分布式控制权管理的操作称为:锁入(Lock-in)和解锁(Lock-out)。锁入是对所有通过密钥控制的数字资产实现分布式控制权管理和资产映射的过程。这时需要委托去中心化的网络掌管用户的私钥,用户自己掌握跨链上那部分代理资产的私钥。当解锁时再将数字资产的控制权交还给所有者。分布式私钥控制主要的应用有:WanChain、FUSION等。

6. 区块链解决了什么问题吗

区块链作为一种去中心化的数据库,具有开放性、分布式、不可逆性等特点,其作为一种电子数据存储平台具有低成本、高效率、稳固性的优势,目前区块链应用到多个领域中,为生活也带来了很多变化,现在很多的电子合同平台比如法大大、法据链等就应用了这种区块链技术,并且区块链技术存证也得到了法院受理的认可

7. 主流区块链技术有哪些

本文试图对区块链有关技术流派和主流平台进行一个概览,作为学习区块链技术体系的导览,意在抛砖引玉,促进区块链开发社区的讨论与共识。区块链技术的流派未战先谋局,你想投入区块链开发这个领域,至少先要搞清楚现在有哪些玩家,各自的主张和实力如何。划分区块链技术流派并无一定之规,据我所见,或可有以下四种方式:第一是按照节点准入规则,划分为公有链、私有链和联盟链。公有链的代表自然是比特币和以太坊,私有链则以R3 Corda声名最盛,联盟链的代表作品是Hyperledger名下的Fabric。公有链注重匿名性与去中心化,而私有链及联盟链注重高效率,而且还往往设置了准入门槛。公有链、私有链与联盟链之间的这些不同都在技术中有所体现,比如私有链和联盟链假设节点数目不大,可以采用PBFT算法来形成共识。而公有链假设有大量且不断动态变化的节点网络,用PBFT效率太低,只能采用类似抽彩票的算法来确定意见领袖。这就意味着,私有链与联盟链很难变成公有链,而用公有链来作联盟链或私有链虽然容易,却也并非即插即用。此种差异,学者不可不察。第二是按照共享目标,划分为共享账本和共享状态机两派。比特币是典型的共享账本,而Chain和BigchainDB也应属此类,这几个区块链系统在各个节点之间共享一本总账,因此对接金融应用比较方便。另一大类区块链系统中,各个节点所共享的是可完成图灵完备计算的状态机,如以太坊、Fabric,它们都通过执行智能合约而改变共享状态机状态,进而达成种种复杂功能。第三是按照梅兰妮· 斯旺所描述的代际演进,将区块链系统分为1.0、2.0和3.0三代。其中1.0支撑去中心化交易和支付系统,2.0通过智能合约支撑行业应用,3.0支撑去中心化的社会体系。比特币和Chain应属于区块链1.0系统,而以太坊和Fabric是区块链2.0系统,目前尚无成功的区块链3.0系统出现,不成功的尝试倒是有那么一个,就是著名的The DAO。第四是按照核心数据结构,分为区块链和分布式总账两派。区块链这一派在系统中真的实现了一个区块的链作为核心数据结构,而分布式总账这一派,只是吸取了区块链的精神,并没有真用一条区块链作为核心数据结构,或者虽然暂时用了,但声明说吾项庄舞区块链,意在分布式总账耳,若假以时日,因缘际会,未尝不可取而代之也。主流区块链技术平台了解流派划分,仍是只能用来指点江山,吹牛论道,要动手,总要有个切入点。区块链货币据说已经有上千个了,但值得关注的技术平台大概只有数十个,而如果要进入区块链开发领域,打下一个好基础,练出一身好功夫,捞到几个好offer,则值得深入研究学习的平台,屈指可数。首先当然是比特币。比特币作为区块链的第一个也是目前为止最成功、最重要的样板工程,已经上线运行了八年多,本身没有发生任何严重的安全和运维事故,其稳定与强悍堪称当代软件系统典范。比特币Bitcoin Core是一个代码质量高、文档良好的开源软件,从学习区块链原理、掌握核心技术的角度来说,Bitcoin Core是最佳切入点,能够学到原汁原味的区块链技术。当然,Bitcoin Core是用C++写的,而且用了一些C++11和Boost库的机制,对学习者的C++水平提出了较高的要求。学习比特币平台开发还有一个优势,就是可以对接繁荣的比特币技术社区。目前围绕比特币进行改进和提升的人很多,人多力量就大,诸如隔离验证、闪电网络、侧链等比较新的想法和技术,都率先在比特币社区里落地。比如侧链技术的主要领导者Blockstream是由密码学货币元老Adam Back领衔的,而Blockstream是Bitcoin Core最大的贡献者之一,所以一些有关侧链的技术在比特币社区里讨论最充分。但比特币作为一个典型的区块链1.0系统,是不是支撑其他类型区块链应用的最佳技术平台,存在很大的争议。另外,也不是所有人都有能力和必要精通区块链底层技术。所以对那些急于冲到区块链领域里做(quān)事(qián)的人来说,可能更直截了当的学习目标是以太坊和Hyperledger Fabric。在以太坊上面用Solidity进行的智能合约开发是切入区块链开发最简单的方式,没有之一。以太坊的理想非常宏大,由于配备了强大的图灵完备的智能合约虚拟机,因此可以成为一切区块链项目的母平台,是驮住整个区块链世界的大乌龟。在以太坊上开发一个类似比特币的加密货币,是一个不折不扣的小目标。一般有经验的开发者在文档指导下,半天到一天即可入门。问题在于,入门以后又如何?靠写Solidity是否就可以包打天下?这是大大存疑的。我们也可以反过来说,如果以太坊+Solidity是区块链的终极解决方案,那么怎么还会出现那么多区块链技术门派呢?特别是,以太坊似乎并没有给现实世界中巨型的中心化组织们留下一条活路,这种彻底不妥协的革命态度有可能也成为以太坊推广的障碍。当前以太坊项目的开发进展并不顺利。一个比较突出的问题是项目过多,力量分散,导致项目质量参差不齐。但尽管如此,跟其他区块链2.0平台相比,以太坊提供的开发环境是最简单最完善的。初学区块链的人绝对有必要学习以太坊,从而对区块链和智能合约建立起一个最“正宗”的认识。主流区块链技术平台的第三支就是Fabric,它是Hyperledger的第一个也是最知名的孵化项目。 Fabric最早来自IBM的Open Blockchain项目,到2015年11月,IBM将当时已经开发完成的44,000行Go语言代码交给Linux基金会,并入Hyperledger项目之中。在2016年3月一次黑客马拉松中,Blockstream和DAH两家公司将各自的代码并入Open Blockchain,随后改名为Fabric。到目前为止,Fabric与Intel提供的Sawtooth Lake并列为Hyperledger的一级孵化项目,但前者得到的关注远超后者。从技术角度来说,Fabric思路不错,重点是满足企业商用的需求,比如解决交易量问题。众所周知,比特币最大的短板是它每秒钟7个交易的上限,完全无法满足现实需要。而Fabric目标是实现每秒钟10万交易,这个量接近刚刚过去的双十一交易量瞬时峰值,完全可以满足正常条件下的行业级应用。Fabric用Go语言开发,也提供多种语言的API。特别值得一提的是,Fabric比较充分地运用了容器技术,比如其智能合约就运行在容器当中。这也是Go语言带给Fabric的一项福利,因为Go语言静态编译部署的特征很适合开发容器中的程序。Fabric还有一些特点,比如其membership服务可以设置节点准入审查,这是典型的联盟链特征。再比如其共识算法是可定制的。Fabric的短板是体系较为复杂,虽有文档,但缺少经验的开发者学习起来障碍比较大。然而由于其定位清楚,迎合了不少企业的心态,所以已经有多家机构在基于Fabric秘密研发行业内的联盟链项目。

8. 以太坊架构是怎么样的

打算开一个系列讲讲架构,之前的经验主要是在互联网架构这一块,最近在整理分析比特币,以太坊,EOS的架构,所以准备写一个系列的文章谈谈对互联网架构和区块链架构的理解。会分为四篇文章,1.互联网产品的架构、2.比特币架构分析、3.以太坊的架构分析、4.EOS架构分析。
在以太坊中并不存在中心服务器,取而代之的是多个通过p2p协议连接起来的平等节点,在众多节点中存储了所有的数据。当用户发起一笔交易,会通过p2p协议将交易广播出去,矿工节点对此进行验证、打包并进一步广播至全网,在区块链内确认后,此操作即认为是不可更改的。
在网络上关于区块链的文章中,都提到了分布式(distributed)和去中心化(decentralization)这两个词,有时候略有区别,有时侯又混用。笔者认为如果要精确区分的话,分布式强调系统的是多个组件通过发送消息协同工作,去中心化强调的是不存在一个中央节点控制整个系统的运行。因此我们认为以太坊兼具去中心化和分布式,或者说在一个分布式平台上运行了一个去中心化的程序。

9. 区块链和数字人民币有哪些关系

数字人民币经常会被使用区块链技术对的加密货币比特币、以太坊等相比较。数字人民币借鉴了区块链技术,但作为法定货币,数字人民币具有中心化的特征。欧洲主要中央银行的高管表示,发行央行数字货币其实并不需要使用区块链技术。数字人民币系统框架的核心要素为“一币,两库,三中心”,在使用过程所采用的技术有NFC与分布式账本技术。

数字人民币行业相关上市公司:广电运通、长亮科技、拉卡拉、数字认证等

本文核心数据:数字人民币系统框架核心要素

1、区块链的特征为分布式、去中心化

数字人民币经常会被使用区块链技术对的加密货币比特币、以太坊等相比较。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

2、我国数字人民币仅借鉴了区块链技术

数字人民币具有可追溯性、不可篡改性这些与区块链技术相同的特征,但数字人民币仅是借鉴了区块链技术。作为法定货币,数字人民币的主要特征之一为中心化的管理模式,而区块链的核心特征之一为去中心化。

此前,发行了依托于区块链技术的数字货币国家有伊朗、厄瓜多尔、乌拉圭、塞内加尔、等,但这些数字货币没有流行起来。2020年9月,欧洲主要中央银行的高管表示,全球范围内的中央银行如果想要发行央行数字货币,其实并不需要使用区块链技术,在央行数字货币情况下,中央银行提供了“信任”,因此当中央银行介入之后就没有使用区块链技术的必要了。

在金融领域,目前区块链技术在数字货币、支付清算、数字票据、银行征信管理等方面得到了实验性或小范围应用:


3、数字人民币系统框架的核心要素为“一币,两库,三中心”

根据《中国法定数字货币原型构想》的阐述,数字人民币系统框架的核心要素为“一币,两库,三中心”。其中,“一币”指央行数字货币;“两库”指的是数字货币发行库(存放央行数字货币发行基金的数据库)和数字货币银行库(商业银行存放央行数字货币的数据库);“三中心”指的是认证中心(负责身份信息管理)、登记中心(负责数字货币权属登记)与大数据发行中心(负责对反洗钱、支付行为等分析)。


4、数字人民币使用过程所采用的技术

数字人民币的使用涉及到货币发行、存储、支付、对交易进行记录等多个环节。

在数字人民币支付环节,由于NFC技术的使用,数字人民币的支付介质除手机外,还包括“数字货币芯片卡”,芯片卡的推行方便了老年人群的使用。“数字货币芯片卡”具体包括可视蓝牙IC卡、IC卡、手机eSE卡、手机SD卡、手机SIM卡等5种形态。除使用NFC 技术外,一些数字货币芯片卡通过蓝牙技术与智能手机进行交互,实现查询和账户信息同步。

在数字人民币交易记录环节,通过分布式账本技术,央行和商业银行构建CBDC分布式确权账本,提供可供外部通过互联网来进行CBDC确权查询的网站,实验网上验钞机功能。

10. 区块链的核心技术是什么

简单来说,区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。
或许以上概念过于抽象,我来举个例子,你就好理解了。
你可以想象有 100 台计算机分布在世界各地,这 100 台机器之间的网络是广域网,并且,这 100 台机器的拥有者互相不信任。
那么,我们采用什么样的算法(共识机制)才能够为它提供一个可信任的环境,并且使得:
节点之间的数据交换过程不可篡改,并且已生成的历史记录不可被篡改;
每个节点的数据会同步到最新数据,并且会验证最新数据的有效性;
基于少数服从多数的原则,整体节点维护的数据可以客观反映交换历史。
区块链就是为了解决上述问题而产生的技术方案。
二、区块链的核心技术组成
无论是公链还是联盟链,至少需要四个模块组成:P2P 网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。
1、P2P 网络协议
P2P 网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。
通常我们所用的都是比特币 P2P 网络协议模块,它遵循一定的交互原则。比如:初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求 Peer 节点的地址数据以及区块数据。
这套 P2P 交互协议也具有自己的指令集合,指令体现在在消息头(Message Header) 的 命令(command)域中,这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能,这些功能都是非常底层、非常基础的功能。如果你想要深入了解,可以参考比特币开发者指南中的 Peer Discovery 的章节。
2、分布式一致性算法
在经典分布式计算领域,我们有 Raft 和 Paxos 算法家族代表的非拜占庭容错算法,以及具有拜占庭容错特性的 PBFT 共识算法。
如果从技术演化的角度来看,我们可以得出一个图,其中,区块链技术把原来的分布式算法进行了经济学上的拓展。
在图中我们可以看到,计算机应用在最开始多为单点应用,高可用方便采用的是冷灾备,后来发展到异地多活,这些异地多活可能采用的是负载均衡和路由技术,随着分布式系统技术的发展,我们过渡到了 Paxos 和 Raft 为主的分布式系统。
而在区块链领域,多采用 PoW 工作量证明算法、PoS 权益证明算法,以及 DPoS 代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是,它们融入了经济学博弈的概念,下面我分别简单介绍这三种共识算法。
PoW: 通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。
PoS: 这是一种股权证明机制,它的基本概念是你产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例,它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。
DPoS: 简单来理解就是将 PoS 共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账。这个圈子可能是 21 个节点,也有可能是 101 个节点,这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将会极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。
3、加密签名算法
在区块链领域,应用得最多的是哈希算法。哈希算法具有抗碰撞性、原像不可逆、难题友好性等特征。
其中,难题友好性正是众多 PoW 币种赖以存在的基础,在比特币中,SHA256 算法被用作工作量证明的计算方法,也就是我们所说的挖矿算法。
而在莱特币身上,我们也会看到 Scrypt 算法,该算法与 SHA256 不同的是,需要大内存支持。而在其他一些币种身上,我们也能看到基于 SHA3 算法的挖矿算法。以太坊使用了 Dagger-Hashimoto 算法的改良版本,并命名为 Ethash,这是一个 IO 难解性的算法。
当然,除了挖矿算法,我们还会使用到 RIPEMD160 算法,主要用于生成地址,众多的比特币衍生代码中,绝大部分都采用了比特币的地址设计。
除了地址,我们还会使用到最核心的,也是区块链 Token 系统的基石:公私钥密码算法。
在比特币大类的代码中,基本上使用的都是 ECDSA。ECDSA 是 ECC 与 DSA 的结合,整个签名过程与 DSA 类似,所不一样的是签名中采取的算法为 ECC(椭圆曲线函数)。
从技术上看,我们先从生成私钥开始,其次从私钥生成公钥,最后从公钥生成地址,以上每一步都是不可逆过程,也就是说无法从地址推导出公钥,从公钥推导到私钥。
4、账户与交易模型
从一开始的定义我们知道,仅从技术角度可以认为区块链是一种分布式数据库,那么,多数区块链到底使用了什么类型的数据库呢?
我在设计元界区块链时,参考了多种数据库,有 NoSQL 的 BerkelyDB、LevelDB,也有一些币种采用基于 SQL 的 SQLite。这些作为底层的存储设施,多以轻量级嵌入式数据库为主,由于并不涉及区块链的账本特性,这些存储技术与其他场合下的使用并没有什么不同。
区块链的账本特性,通常分为 UTXO 结构以及基于 Accout-Balance 结构的账本结构,我们也称为账本模型。UTXO 是“unspent transaction input/output”的缩写,翻译过来就是指“未花费的交易输入输出”。
这个区块链中 Token 转移的一种记账模式,每次转移均以输入输出的形式出现;而在 Balance 结构中,是没有这个模式的。

热点内容
2015年比特币最低价格 发布:2024-05-01 00:37:21 浏览:62
MHXX挖矿套 发布:2024-05-01 00:19:34 浏览:487
区块链公司生存状况 发布:2024-04-30 23:36:10 浏览:445
usdt提币到账时间 发布:2024-04-30 23:35:48 浏览:631
建立前后区块链之间关联的紧密程度称为 发布:2024-04-30 22:49:11 浏览:11
mc矿币投资 发布:2024-04-30 22:35:03 浏览:745
币圈秒钱包技术 发布:2024-04-30 22:28:17 浏览:79
区块链pc实体机靠谱吗 发布:2024-04-30 22:28:13 浏览:145
挖比特币还是以太币好 发布:2024-04-30 21:09:16 浏览:587
矿池拒绝比较高 发布:2024-04-30 20:30:27 浏览:839