当前位置:首页 » 以太坊知识 » 以太坊持久化存储

以太坊持久化存储

发布时间: 2025-08-24 05:24:47

Ⅰ 各区块链架构的横向比较

各区块链架构的横向比较
时常听人们谈起区块链,从 2009 年比特币诞生至今,各式各样的区块链系统或基于区块链的应用不断被开发出来,并被应用到大量的场景中,而区块链技术本身也在不停地变化和改进。
区块链又被称为分布式账本,与之对应的则是中心化账本,比如银行。与中心化账本不同的是,分布式账本依靠的是将账本数据冗余存储在所有参与节点中,来保证账本的安全性。简单地说,区块链会用到三种底层技术:点对点网络技术、密码学技术和分布式一致性算法。而通常,区块链系统还会“免费附赠”一种被称为智能合约的功能。智能合约虽然不是区块链系统的必要组成部分,但由于区块链天生所具备的去中心化特点,使它可以很好地为智能合约提供可信的计算环境。
为了适应不同场景的需求,区块链系统在实际应用的过程中往往会需要进行各种改造,以满足特定业务的要求,比如身份认证、共识机制、密钥管理、交易频次、响应时间、隐私保护、监管要求等。而实际应用区块链系统的公司往往没有进行这种改造的能力,于是市场上慢慢出现了一些用于定制专用区块链系统的框架,采用这些框架就可以很方便地定制出适用于企业自身业务的区块链系统。
本文将对目前市场上几个典型的区块链框架进行横向对比,看看它们都有哪些特点,以及它们之间到底有哪些区别。为了保持对比的公正性,本文将只针对开源的区块链框架进行讨论。
各区块链架构的简单介绍
1、比特币
比特币(bitcoin)源自一名叫做中本聪(Satoshi Nakamoto)的人在 2008 年发表的一篇名为《比特币:一种点对点的电子现金系统》(Bitcoin: A Peer-to-PeerElectronic Cash System)的论文,文中描述了一种被他称为“比特币”的电子货币及其算法。在之后的几年里,比特币不断成长和成熟,而它的底层技术也逐渐被人们认识并抽象出来,这就是区块链技术。比特币作为区块链的鼻祖,在区块链的大家族中具有举足轻重的地位,基于比特币技术开发出的山寨币(altcoins)的数量有如天上繁星,数不胜数。
从论文中可以得知,中本聪设计比特币的目的,就是希望能够实现一种完全基于点对点网络的电子现金系统,使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的中介机构。总结来说,他希望比特币的设计能够实现以下这些目标:
● 不需要中央机构就可以发行货币
● 不需要中介机构就可以支付
● 保持使用者的匿名性
● 交易无法被撤销
从电子现金系统的角度来看,以上这些目标在比特币中基本都得到了实现,但是依然有一些技术问题有待解决,比如延展性攻击、区块容量限制、区块分叉、扩展性等。
在应用场景方面,目前大量的数字货币项目都是基于比特币架构来设计的,此外还有一些比较实际的应用案例,比如彩色币、t? 等。
彩色币(coloredcoin),通过仔细跟踪一些特定比特币的来龙去脉,可以将它们与其他的比特币区分开来,这些特定的比特币就叫作彩色币。它们具有一些特殊的属性,从而具有与比特币面值无关的价值,利用彩色币的这种特性,使得开发者可以在比特币网络上创建其它的数字资产。彩色币本身就是比特币,存储和转移不需要第三方,可以利用已经存在的比特币的基础。
t? 是比特币区块链在金融领域的应用,是美国在线零售商 Overstock 推出的基于区块链的私有和公有股权交易平台。
2、以太坊
以太坊(ethereum) 的目标是提供一个带有图灵完备语言的区块链,用这种语言可以创建合约来编写任意状态转换功能,用户只要简单地用几行代码来实现逻辑,就能够创建一个基于区块链的应用程序,并应用于货币以外的场景。
以太坊的设计思想是不直接“支持”任何应用,但图灵完备的编程语言意味着理论上任意的合约逻辑和任何类型的应用都可以被创建出来。总结来说,以太坊在比特币的设计目标之外,还需要实现以下几个目标:
● 图灵完备的合约语言
● 内置的持久化状态存储
目前基于以太坊的合约项目已达到数百个,比较有名的有 Augur、TheDAO、Digix、FirstBlood 等。
Augur 是一个去中心化的预测市场平台,基于以太坊区块链技术。用户可以用数字货币进行预测和下注,依靠群众的智慧来预判事件的发展结果,可以有效地消除对手方风险和服务器的中心化风险。
限于篇幅,基于以太坊智能合约平台的项目就不多介绍了。基于以太坊的代码进行改造的区块链项目也有不少,但几乎都是闭源项目,只能依靠一些公开的特性来推断,所以就不在本文展开讨论了。
3、Fabric
Fabric 是由 IBM 和 DAH 主导开发的一个区块链框架,是超级帐本的项目成员之一。它的功能与以太坊类似,也是一个分布式的智能合约平台。但与以太坊和比特币不同的是,它从一开始就是一个框架,而不是一个公有链,也没有内置的代币(token)。
超级账本(hyperledger)是 Linux 基金会于 2015 年发起的推进区块链技术和标准的开源项目,加入成员包括:荷兰银行(ABN AMRO)、埃森哲(Accenture)等十几个不同利益体,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。
作为一个区块链框架,Fabric 采用了松耦合的设计,将共识机制、身份验证等组件模块化,使之在应用过程中可以方便地替换成自定义的模块。除此之外,Fabric 还采用了容器技术,将智能合约代码(chaincode)放在 docker 中运行,从而使得智能合约可以用几乎任意的高级语言来编写。
以下是 Fabric 的一些设计目标:
● 模块化设计,组件可替换
● 运行于 docker 的智能合约
目前已经有不少采用 Fabric 架构进行开发的概念验证(POC)项目在实施过程中,其中不乏一些金融机构做出的尝试,不过由于项目刚刚起步,还没有比较成熟的落地应用。
4、DNA
DNA(Distributed Networks Architecture,分布式网络架构),是由总部位于上海的区块链创业公司“分布科技”开发的区块链架构,可以同时支持公有链、联盟链、私有链等不同应用类型和场景,并快速与业务系统集成。
与以太坊、Fabric不同的是,DNA 在系统底层实现了对多种数字资产的支持,用户可以直接在链上创建自己的资产类型,并用智能合约来控制它的发行逻辑。对于绝大部分的区块链应用场景,数字资产是必不可少的,而为每一种数字资产都开发一套基于智能合约的转账、发行逻辑是非常浪费且低效的。因此,由区块链底层提供直接的数字资产功能是十分必要的。而对于那些完全不需要数字资产的应用场景,同样可以基于 DNA 提供的智能合约架构来编写任意的自定义逻辑来实现。
DNA 的设计目标主要有以下几点:
● 多种数字资产的底层支持
● 图灵完备的智能合约和状态持久化
● 跨链互操作性
● 交易的最终性
目前已有不少金融机构采用 DNA 架构来进行区块链概念验证产品的开发。除此之外,还有一些已经落地的区块链项目,如小蚁区块链、法链等。
小蚁(antshares)是一个定位于资产数字化的公有链,将实体世界的资产和权益进行数字化,通过点对点网络进行登记发行、转让交易、清算交割等金融业务的去中心化网络协议。它采用社区化开发的模式,在架构上与 DNA 保持一致,从而可以与任何基于DNA 的区块链系统发生跨链互操作。
法链是全球第一个大规模商用的法律存证区块链,一个底层基于 DNA区块链技术,并由多个机构参与建立和运营的证据记录和保存系统。该系统没有中心控制点,且数据一旦录入,单个机构或节点无法篡改,从而满足司法存证的要求。
5、Corda
Corda 是由一家总部位于纽约的区块链创业公司 R3CEV 开发的,由其发起的 R3区块链联盟,至今已吸引了数十家巨头银行的参与,其中包括富国银行、美国银行、纽约梅隆银行、花旗银行、德国商业银行、德意志银行、汇丰银行、三菱 UFJ 金融集团、摩根士丹利、澳大利亚国民银行、加拿大皇家银行、瑞典北欧斯安银行(SEB)、法国兴业银行等。
从 R3 成员的组成上也可以看出,Corda 是一款专门用于银行与银行间业务的区块链架构。尽管 R3 自己声称 Corda 不是区块链,但从各项特征来看,它具备区块链的一些特性。
技术对比
1、数字资产
接下来,将对前文中提到的这些区块链框架进行一系列的技术对比,并从多个维度展开介绍它们的区别与相似之处。

区块链的内置代币通常是一种经济激励模型和防止垃圾交易的手段。比特币天生就有且只有一种内置代币,所以在比特币系统中所有的“交易”本质上都是转账行为,除非通过外部的协议层来给比特币增加额外的数字资产。
以太坊和 DNA 具有内置代币,它们的作用除了以上提到的经济激励和防止垃圾交易之外,还具有为系统内置功能提供一个收费的渠道。比如以太坊的智能合约运行需要消耗 GAS,而 DNA 的数字资产创建也需要消耗一定的代币。
以太坊和 Fabric 没有内置的多种数字资产支持,而是通过智能合约来实现相应的功能。这种方式的好处在于,系统设计可以做到非常简洁,而且资产的行为可以任意指定,自由度极高。然而这样的设计也会带来一系列的负面影响,比如所有的资产创建者不得不自己编写重复的业务逻辑,而用户也没有办法通过统一的方式去操作自己的资产。
相比之下,DNA 和 Corda 采用了在底层支持多种数字资产的方式,让资产创建者可以方便地创建自己的资产类型,而用户也可以在同一个客户端中管理所有的资产。对于逻辑更加复杂一点的业务场景来说,他们同样可以利用智能合约来强化资产的功能,或者创建一种与资产无关的业务逻辑。
2、账户系统

UTXO(Unspent Transaction Output)是这样一种机制:每一枚数字货币都会被登记在一个账户的所有权之下,一枚数字货币有两种状态,即要么还没有被花费,要么已经被花费。当需要使用一枚数字货币的时候,就将它的状态标记为已经花费,并创造一枚新的与之等额的数字货币,将它的所有权登记到新的账户之下。在这个过程中,被标记为已花费的数字货币就被称为交易的输入,而创造出来的新的数字货币被称为交易的输出,在一笔交易中,可以包含多个输入和多个输出,但是输入之和与输出之和必须相等。要计算一个账户的余额时,只要将所有登记在该账户下的数字货币的面额相加即可得出。
比特币和 Corda 就采用了 UTXO 这样一种账户机制,而以太坊则采用了更加直观的余额机制:每个账户有一个状态,状态中直接记录了账户当前的余额,转账的逻辑就是从一个账户中减去一部分余额,并在另一个账户中加上相应的余额,减去的部分和加上的部分必须相等。DNA 在账户机制上同时兼容这两种模式。
那么 UTXO 模式和余额模式,究竟有什么优缺点呢?UTXO 最大的好处就是,基于 UTXO 的交易可以并行验证且任意排序,因为所有的 UTXO 之间都是没有关联的,这对区块链未来的伸缩性是有很大帮助的,而基于余额的设计就没有这个优势了;反过来,余额设计的优点是设计思想非常简洁和直觉化,便于程序实现,特别是在智能合约中,要处理 UTXO 的状态是非常困难的。这也是为什么以智能合约为主要功能的以太坊选择余额设计的原因,而比特币、OnchainDNA、Corda 这些以数字资产为核心的架构则更倾向于 UTXO 设计。
关于身份认证,比特币和以太坊基本没有身份认证的设计,原因很简单,因为这两者的设计思想都是强调隐私和匿名,而反对监管和中心化,而身份认证就势必要引入一些中心或者弱化的中心机构。Fabric、DNA 和 Corda 不约而同地选择了采用数字证书来对用户身份进行认证,原因在于这三者都有应用于现有金融系统的设计目标,而金融系统必然要考虑合规化并接受监管,此外现有的金融系统已经大范围地采用数字证书方案,这样便可以和区块链系统快速集成。

Ⅱ NFT常用缩写词汇汇编

本文汇编了NFT领域中常用到的一些缩写词汇,按英文字母排序,持续更新新增词汇。

A - AB - ArtBlocks,一个知名生成艺术项目,包含策展、游乐场、工厂三个系列。

Alpha - 市场上未被广泛知晓的利好消息,知晓者较少,接近资讯核心的人可能先得好处。

Ape in/Aped - 加密圈术语,指未深思熟虑即买入NFT,因BAYC项目成功,猿猴在NFT圈地位独特,故此用法。

AFM - 远离元宇宙,指回归现实世界。

Airdrop - 无行动获赠NFT或代币,可能是持有特定NFT的奖励,也可能是诈骗手段。

Allow List - 允许名单,为获得铸造NFT或购买代币的优先购买资格。

Anon - 匿名的缩写,代表未公开身份的人,匿名团队发布项目常见。

B - Bags - 包的替代名词,表示资产,例句:我的NFT包价值上涨。

Bag Holder - 包持有人,描述持续持有价值递减NFT的持有者。

Burn address - 烧毁地址,用于把资产发送至无法找回的地址。

Burner wallet - 可弃式钱包,用于高风险或不确定性的合约交互,或铸造风险高的NFT。

C - CT - 加密货币推特账号的缩写。

Cold wallet - 冷钱包,离线储存数位资产的设备,安全性高于热钱包。

CC0 - 公众领域贡献宣告,释出著作至公众领域,不受著作权限制。

Cash Grab - 单纯为了赚钱而发行的项目,项目团队不提供后续照顾。

D - Degen - 用来形容购买NFT的人,可能不了解风险但仍然购买。

Diamond Hands - 钻石手,指长期持有特定NFT,不考虑市场变化。

Delist - 取消在公开市场贩售NFT,理解为下架。

DAO - 分散式自治组织,一群没有中心化组织的人聚集,通过区块链投票决策。

DYOR - 加密圈术语,做好自己的研究的缩写。

dApps - 去中心化应用程式,运行在区块链上的应用。

Discord - 一种通讯软件,最初为游戏玩家使用,现成为区块链项目社群沟通工具。

Derivatives - 衍生品,源自原生项目,不一定指官方衍生项目。

DeFi - 去中心化金融,透过智能合约技术去除第三方介入。

Dutch Auction (DA) - 荷兰式拍卖,随时间降低价格的拍卖方式。

Doxxing - 肉搜,透露某人真实信息的行为。

E - ERC20 - 以太坊区块链智能合约协议标准,发行虚拟代币。

ERC721 - 以太坊区块链智能合约协议标准,发行NFT,每个独一无二。

ERC721A - 改良版ERC721,有效降低批量铸造NFT的交易手续费。

ERC1155 - 以太坊区块链智能合约协议标准,发行虚拟代币或NFT,可发行多个具有编号的个体。

ETH - 以太币,以太链通用货币。

F - Fren - 加密圈术语,指朋友。

Flip - 短时间内买卖NFT赚取价差。

Flipper - 专门买卖NFT以短期赚取价差套利的人。

Fork - 区块链分叉,通常用于更新协议或修复漏洞。

FUD - 恐惧、不确定、怀疑的缩写。

FOMO - 错失恐惧症,害怕错过某个机会而急于参与。

FP - 地板价的缩写,二级市场特定NFT系列的最低可购买价格。

Flying - 某个区块链资产价值快速上涨。

Flex - 炫耀。

Floor is lava - 形容地板价快速上涨的过程。

G - GM - 加密圈术语,早安的缩写。

GMAEN - 早安、午安、晚安的缩写。

GN - 加密圈术语,晚安的缩写。

GMI - 加密圈术语,会成功的缩写。

Gas (Gwei) - 瓦斯费,以太链交易产生的手续费。

Gas war - 交易手续费暴涨的现象。

Generative Art - 由算法随机生成的艺术品。

GOAT - 有史以来最伟大,充满尊敬的缩写。

Grail - 圣杯,形容最喜欢的NFT或NFT项目。

H - Hot wallet - 热钱包,储存于网络上的虚拟钱包。

Hodl - 长线持有的投资策略。

Honey Pot - 骗局,使用有漏洞的合约吸引投资者。

I - IRL - 真实生活的缩写。

IPFS - 星际档案系统,实现档案分散式储存、共享和持久化的网路传输协定。

J - JPEGs - NFT的一种戏称,外观为JPG、GIF、PNG、影片或声音档案。

K - Kevin - 来自Pixelmon项目中的生物名字,因与预告片外观差异大而成为NFT界的迷因。

L - LFG - Let's f***ing go的缩写,鼓励或鼓舞的场合使用。

LL - Larvalabs的缩写,创造Punks、Autoglyphs和Meebits的团队。

Looks rare - 稀有度在NFT领域的重要性,看起来稀有常被嘲讽为地板价。

Liquidity - 可自由支配购买NFT或虚拟货币的资金。

M - Mint - 铸造,与智慧合约互动生成NFT的行为。

Mint List - 铸造名单,获得优先购买资格的名单。

Moon - 价格大幅度上涨,比喻资产价值快速上升。

Memecoin - 由于迷因而诞生的货币,通常仅具有炒作价值。

Metaverse - 元宇宙,聚焦社交连接的3D虚拟世界之网路。

Metadata - NFT存储在区块链上的实际内容,通常是一串代码指向特定位置。

Maxi - 相信某事物最好的人。

N - NFT - 非同质化代币,在区块链上独一无二。

NFA - 加密圈术语,不是财务建议的缩写。

NGMI - 加密圈术语,不会成功的缩写。

NFT Archeologist - 挖掘旧NFT项目历史定位的人。

Nitro - Discord的月费服务,提供进阶功能。

O - OS - OpenSea的缩写,主流NFT二级市场。

OG - 原始gangster的缩写,指在某个领域资深的人。

On-chain NFT - 所有资讯都存储在区块链上的NFT。

Off-chain NFT - 资讯存储在中心化资料储存中心或IPFS的NFT。

Noob - 菜鸟、小白,与OG相反。

P - PFP - 个人资料图片的缩写。

Paperhands - 短时间内卖出NFT的人,贬义,与钻石手相反。

Probably nothing - 可能没甚麽,暗示可能有事发生,或是事情可疑。

P2E - 边玩边赚的缩写。

POAP - 出席证明协议的缩写,活动参加者的NFT证明。

Pumping - 资产价值快速上涨。

Q - 暂时从缺

R - Rug / Rug pull - 地毯/抽地毯,形容项目开发团队卷款跑路。

Rugged - 形容项目开发团队已卷款跑路。

Raid - 社群媒体快闪宣传活动,号召社群成员大量宣传特定讯息或NFT项目。

Right Click Save - 点击右键储存,嘲笑购买NFT的人。

Roadmap - 项目未来的规划与执行细节。

Rekt - 资产表现糟糕时的描述。

Reveal - 揭露,指NFT从盲盒阶段到公开结果的过程。

S - Secondary market - 二级市场,买家与卖家进行交易的市场。

Sweep the floor - 大量购买地板价NFT的行为。

Snag - 购买价值被严重低估的NFT。

Smart money - 聪明钱,机构投资者、市场专家等资金。

Stealth mints - 私下上线,未做宣传的铸造。

Smart contract - 智慧型合约,区块链内制定的特殊协定。

Shilling - 宣传NFT并鼓励购买的行为。

Ser - 尊敬地介绍某人或分享观点的方式,"Sir"的简写。

Soft rug - 项目开发团队逐步淡出或无作为。

Szn - 季节的缩写,市场周期。

Seems legit - 看起来合法,项目看起来有潜力。

Snipe - 开盒阶段以低价格买到高价值NFT的行为。

T - Thin Floor - 地板价低但实际数量少,卖出几个后会大幅拉高。

Traits - NFT所带有的特征、属性。

U - Up only - 资产价值只往上走。

V - 暂时从缺

W - WL - 白名单的缩写,获得优先购买NFT或代币的资格。

更多NFT资讯,欢迎关注微信公众号:老魔杖。

Ⅲ 什么人在区块链挣钱(区块链需要什么人才)

区块链技术是怎么赚钱的?求解答。

区块链技术的赚钱方式有下面四种:

1、硬件和基础设施,典型的有矿机生产、经销链条,在这你可以通过买矿机、挖矿赚币挣钱。

2、区块链底层平台和通用技术,如以太坊等公链、隐私协议Nucypher等,在这你可以通过投资其代币、构建链上应用、为用户提供服务赚钱。

3、各类垂直应用,如基于区块链的供应链溯源及金融,版权确认及交易等,你可以使用这些应用或是投资其代币赚钱。

4、服务设施,如数字资产交易所和钱包,媒体产品等,你可以自己做一个交易所赚钱。

(3)以太坊持久化存储扩展阅读:

区块链的类型

1、公有区块链

公有区块链(PublicBlockChains)是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。

公有区块链是最早的区块链,也是应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。

2、联合(行业)区块链

行业区块链(ConsortiumBlockChains):由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易。

3、私有区块链

私有区块链(PrivateBlockChains):仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。

Ⅳ mpt树实现概述

概述:MPT树是一种基于trie的数据结构,用于高效地存储和处理增量的key-value对,特别适用于需要频繁增删改操作的场景。它通过递归实现所有操作,并支持两种主要操作:根据变动生成新树并持久化更改,以及从节点构造整棵树以同步数据。

数据结构设计中,shortnode和fullnode分别存储值和16个可能的子节点,其中shortnode实现了路径压缩。valuenode直接存储值,而hashnode作为节点间引用,嵌套在节点中。节点通过计算nodehash确保唯一性,并使用RLP编码存储,以减少节点数。

基本操作包括创建树、读写删除和提交。创建时,根据给定的hash定位树并可能从数据库加载根节点。读写删除通过递归处理节点,更新后节点标记为已修改,产生新根节点。Commit操作分为两步:计算新hash并提交更改,确保新旧节点的唯一标识。

高级操作如同步和裁剪,MPT树在以太坊中应用时,为了提高效率和避免数据库缓存失效,会采用特殊策略,如快速同步和快照恢复。但裁剪节点时,由于MPT树的特性,依赖离线处理而非实时引用计数。

Ⅳ 【深度知识】以太坊数据序列化RLP编码/解码原理

RLP(Recursive Length Prefix),中文翻译过来叫递归长度前缀编码,它是以太坊序列化所采用的编码方式。RLP主要用于以太坊中数据的网络传输和持久化存储。

对象序列化方法有很多种,常见的像JSON编码,但是JSON有个明显的缺点:编码结果比较大。例如有如下的结构:

变量s序列化的结果是{"name":"icattlecoder","sex":"male"},字符串长度35,实际有效数据是icattlecoder 和male,共计16个字节,我们可以看到JSON的序列化时引入了太多的冗余信息。假设以太坊采用JSON来序列化,那么本来50GB的区块链可能现在就要100GB,当然实际没这么简单。

所以,以太坊需要设计一种结果更小的编码方法。

RLP编码的定义只处理两类数据:一类是字符串(例如字节数组),一类是列表。字符串指的是一串二进制数据,列表是一个嵌套递归的结构,里面可以包含字符串和列表,例如["cat",["puppy","cow"],"horse",[[]],"pig",[""],"sheep"]就是一个复杂的列表。其他类型的数据需要转成以上的两类,转换的规则不是RLP编码定义的,可以根据自己的规则转换,例如struct可以转成列表,int可以转成二进制(属于字符串一类),以太坊中整数都以大端形式存储。

从RLP编码的名字可以看出它的特点:一个是递归,被编码的数据是递归的结构,编码算法也是递归进行处理的;二是长度前缀,也就是RLP编码都带有一个前缀,这个前缀是跟被编码数据的长度相关的,从下面的编码规则中可以看出这一点。

对于值在[0, 127]之间的单个字节,其编码是其本身。

例1:a的编码是97。

如果byte数组长度l <= 55,编码的结果是数组本身,再加上128+l作为前缀。

例2:空字符串编码是128,即128 = 128 + 0。

例3:abc编码结果是131 97 98 99,其中131=128+len("abc"),97 98 99依次是a b c。

如果数组长度大于55, 编码结果第一个是183加数组长度的编码的长度,然后是数组长度的本身的编码,最后是byte数组的编码。

请把上面的规则多读几篇,特别是数组长度的编码的长度。

例4:编码下面这段字符串:

The length of this sentence is more than 55 bytes, I know it because I pre-designed it
这段字符串共86个字节,而86的编码只需要一个字节,那就是它自己,因此,编码的结果如下:

184 86 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116
其中前三个字节的计算方式如下:

184 = 183 + 1,因为数组长度86编码后仅占用一个字节。
86即数组长度86
84是T的编码
例5:编码一个重复1024次"a"的字符串,其结果为:185 4 0 97 97 97 97 97 97 ...。
1024按 big endian编码为004 0,省略掉前面的零,长度为2,因此185 = 183 + 2。

规则1~3定义了byte数组的编码方案,下面介绍列表的编码规则。在此之前,我们先定义列表长度是指子列表编码后的长度之和。

如果列表长度小于55,编码结果第一位是192加列表长度的编码的长度,然后依次连接各子列表的编码。

注意规则4本身是递归定义的。
例6:["abc", "def"]的编码结果是200 131 97 98 99 131 100 101 102。
其中abc的编码为131 97 98 99,def的编码为131 100 101 102。两个子字符串的编码后总长度是8,因此编码结果第一位计算得出:192 + 8 = 200。

如果列表长度超过55,编码结果第一位是247加列表长度的编码长度,然后是列表长度本身的编码,最后依次连接各子列表的编码。

规则5本身也是递归定义的,和规则3相似。

例7:

["The length of this sentence is more than 55 bytes, ", "I know it because I pre-designed it"]
的编码结果是:

248 88 179 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 163 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116
其中前两个字节的计算方式如下:

248 = 247 +1
88 = 86 + 2,在规则3的示例中,长度为86,而在此例中,由于有两个子字符串,每个子字符串本身的长度的编码各占1字节,因此总共占2字节。
第3个字节179依据规则2得出179 = 128 + 51
第55个字节163同样依据规则2得出163 = 128 + 35

例8:最后我们再来看个稍复杂点的例子以加深理解递归长度前缀,

["abc",["The length of this sentence is more than 55 bytes, ", "I know it because I pre-designed it"]]
编码结果是:

248 94 131 97 98 99 248 88 179 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 163 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116
列表第一项字符串abc根据规则2,编码结果为131 97 98 99,长度为4。
列表第二项也是一个列表项:

["The length of this sentence is more than 55 bytes, ", "I know it because I pre-designed it"]
根据规则5,结果为

248 88 179 84 104 101 32 108 101 110 103 116 104 32 111 102 32 116 104 105 115 32 115 101 110 116 101 110 99 101 32 105 115 32 109 111 114 101 32 116 104 97 110 32 53 53 32 98 121 116 101 115 44 32 163 73 32 107 110 111 119 32 105 116 32 98 101 99 97 117 115 101 32 73 32 112 114 101 45 100 101 115 105 103 110 101 100 32 105 116
长度为90,因此,整个列表的编码结果第二位是90 + 4 = 94, 占用1个字节,第一位247 + 1 = 248

以上5条就是RPL的全部编码规则。

各语言在具体实现RLP编码时,首先需要将对像映射成byte数组或列表两种形式。以go语言编码struct为例,会将其映射为列表,例如Student这个对象处理成列表["icattlecoder","male"]

如果编码map类型,可以采用以下列表形式:

[["",""],["",""],["",""]]

解码时,首先根据编码结果第一个字节f的大小,执行以下的规则判断:

1.如果f∈ [0,128),那么它是一个字节本身。

2.如果f∈[128,184),那么它是一个长度不超过55的byte数组,数组的长度为 l=f-128

3.如果f∈[184,192),那么它是一个长度超过55的数组,长度本身的编码长度ll=f-183,然后从第二个字节开始读取长度为ll的bytes,按照BigEndian编码成整数l,l即为数组的长度。

4.如果f∈(192,247],那么它是一个编码后总长度不超过55的列表,列表长度为l=f-192。递归使用规则1~4进行解码。

5.如果f∈(247,256],那么它是编码后长度大于55的列表,其长度本身的编码长度ll=f-247,然后从第二个字节读取长度为ll的bytes,按BigEndian编码成整数l,l即为子列表长度。然后递归根据解码规则进行解码。

以上解释了什么叫递归长度前缀编码,这个名字本身很好的解释了编码规则。

(1) 以太坊源码学习—RLP编码( https://segmentfault.com/a/1190000011763339 )
(2)简单分析RLP编码原理
( https://blog.csdn.net/itchosen/article/details/78183991 )

Ⅵ 元宇宙的发展前景

“元宇宙”,即“Metaverse”,一个在Facebook创始人扎克伯格表示将Facebook的公司名称更改为Meta之后被“引爆”的新兴概念名词。科技界因之轰动,资本界因之“疯狂”,而文学艺术界的各位在了解了元宇宙概念后,或许会生出许多期待——小说中的世界或有望实现。

来自科技界的轰动:扎克伯格将其推上高峰

2021年三月被称为“元宇宙第一股”的沙盒游戏公司Roblox上市首日股价上涨54.4%,市值超过400亿,2021年7月以社交起家的Facebook创始人扎克伯格表示,要在五年内将Facebook打造为“元宇宙”公司。2021年10月,Facebook公司改名为“Meta”彻底将“元宇宙”概念推向顶峰。2021年11月,微软在Ignite会议上宣布将推出新的Mesh for Microsoft Teams软件,待该平台上线后,不同地理位置的人可获得协作和共享全息体验,实现加入虚拟会议、发送聊天、协作处理共享文档等更多功能。

元宇宙浅谈:科技创新是永恒发展之道

元宇宙世界由来已久,但彼时的元宇宙更多的被看做“科幻”的一种表现方式。在文学作品中,艺术家们通过合理想象,在文学作品中构建出了一个超脱现世的虚拟互联世界,人们通过某一设备媒介(游戏方舱或虚拟现实头盔等)进入一个被某家或某几家大厂搭建的虚拟世界,在这个世界中人们的生活与现实生活一般无二。

随着现代科技技术的发展,我们似乎与小说中构建的科幻世界距离变近,全息投影、AR/VR技术创新、云端生态搭建等等令人眼花缭乱的创新科技使得小说中的虚拟现实世界似乎近在咫尺,于是“元宇宙”的提出似乎也变得顺理成章。

与此同时,现阶段“元宇宙”搭建仍然存在众多技术困难,其未来发展也可能会带来的一系列社会问题和法律法规层面的规范性问题。从现阶段技术发展来看,我们仅仅解决了通往元宇宙媒介的部分,如何真正意义上搭建一个虚拟世界才是真正困难的地方,因此概念炒作需要慎重,科技创新才是永恒的生存发展之道。我们的征途是星辰大海,但通往星辰大海的道路应当立足于不断坚持科技创新的现在!

—— 以上数据参考前瞻产业研究院《中国虚拟现实(VR)行业市场需求与投资规划分析报告》

Ⅶ 区块链的项目编码是什么(区块链代码查询)

区块链一般概念摘要

虽然是个前端开发,但是阻挡不了我八卦各种热门的心。下面简单汇总下一些学习到的概念性东西。

1、区块链技术随比特币诞生,因此先了解比特币概念

2、比特币是什么

(1)、基于分布式网络的数字货币

3、比特系统运行原理

(1)、所有节点都会保存完整账本

(2)、账本保持一致性

4、区块链记账原理

hash函数在区块链技术中有广泛的运用

(1)、哈希函数hash:任何信息hash后会得到一个简短的摘要信息

(2)、hash特点:简化信息、标识信息、隐匿信息、验证信息

(3)、区块链记账会把时间节点的账单信息hash,构成一个区块

(4)、比特币系统约10分钟记账一次,即每个区块生成的时间间隔大约10分钟

(5)、记录下一个账单时,会把上一个区块的hash值和当前账单的信息一起作为原始信息进行hash

(6)、每个区块都包含了之前区块的信息,这些区块组合成了区块链

5、比特币的所有权-非对称加密应用

比特币系统使用了椭圆曲线签名算法,算法的私钥由32个字节随机数组成,通过私钥可以计算出公钥,公钥经过一序列哈希算法和编码算法得到比特币地址,地址也可以理解为公钥的摘要。

(1)、转账是把比特币从一个地址转移到另一个地址

(2)、地址私钥是非对称的关系,私钥经过一系列的运算(其中包含两次hash),就可以得到地址,但是从地址无法得到私钥

(3)、转账成功后广播其他节点,其他节点验证成功后再转发到相邻的节点,广播的信息包含了原始的信息和签名信息

(4)、验证,其他节点验证签名信息是不是付款方用私钥对交易原始信息签名产生的,如果是才记录(再验证有足够余额)

6、比特币如何挖矿

(1)、完成记账的节点可以获得系统给予的一定数量比特币奖励(这个奖励过程也就是比特币的发行过程,因此大家把记账称为挖矿)

(2)、一段时间内只有一人可以记账成功,因此需要收集没有被收集的原始交易信息,检查有没有余额、正确签名

(3)、为了提高记账难度,十分钟左右只有一人可以记账,hash结果需要若干0开头,并且进行hash时引入随机数变量

(4)、随着更多矿工的加入,游戏难度越来越大,计算难度加大,电力损耗等加大,国内电力成本低,中国算力占整个网络的一半以上

(5)、网络中只有最快解密的区块,才会添加到账本中,其他的节点复制,保证账本的唯一性。如果有节点作弊,导致整个网络不通过,则会被丢弃再也不会记录到总账本中。因此所有节点都会遵守比特币系统的共同协议。

【关于区块链会延伸到那些领域的思考】:

由以上的概念可以总结出,区块链技术存在这安全性、唯一性、去中心化。

原则上是可以避免部分信息泄露,让确认方既可以确认你的身份,又无需暴露自己的真是用户信息等。

目前区块链技术集中被运用再比特币,我觉得后续更大的意义应该在需要数据私密性、安全性的领域。

【关于区块链目前发展的瓶颈和局限性思考】:

由于每个节点都参与了整个账本记录活动,难免造成资源的浪费和损耗。以及加大了每个节点的计算难度,后续的发展和普及需要每个节点的硬件提升。

区块链编号是什么意思?

——区块链编号,即区块链咨询服务名称及备案编号。区块链没有通用协议,多是独立运作,对区块链进行备案编号,是建立通用协议配套制度的工作之一。

区块编号作用是什么

用作是一个分类账本,任何拥有权限的人都可以分享并对其进行确认。

国家互联网信息办公室官网发布公告,披露第一批共197个境内区块链信息服务名称及备案编号。值得注意的是,“备案编号”并不能看做是给区块链披上合法的“黄马甲”,应正确认识“备案编号”的作用。

证券日报在文中指出,不可过度解读“备案编号”的作用。网信办表示,备案仅是对主体区块链信息服务相关情况的登记,不代表对其机构、产品和服务的认可,并强调,任何机构和个人不得用于任何商业目的。

acm明星币现在价格,有名气吗

一.项目简介:

Actinium(ACM)是一种基于区块链技术的去中心化货币,旨在将密码带入每个客户的口袋,每个商店,非常安全且易于使用。Actinium是一种闪电网络支持的加密货币,即时交易的手续费近乎为零。同时,具备原子交换功能以及许多其他的第二层解决方案。

二.项目信息(截止2019年9月6日)

·项目编码:ACM

·总量:84,000,000

·流通量:13,516,241

·算法:Lyra2z

·区块时间:2.5分钟

·区块奖励:50ACM

,交易所:CITEX.IO

三.点评

·Zerocash协议使得ACM能够建立专门的ACM匿名交易,用以混淆每一个交易数据,包括交易金额、接发方识别信息等;

·ACM为了实现支付的便捷性,使用先进的闪电技术。

区块链备案号码是什么

备案号是网站是否合法注册经营的标志,可随时到国家工业和信息化部网站备案系统上查询该ICP备案的相关详细信息。

根据《管理规定》要求,区块链信息服务提供者应当在其对外提供服务的互联网站、应用程序等显著位置标明其备案编号。

备案仅是对主体区块链信息服务相关情况的登记,不代表对其机构、产品和服务的认可,任何机构和个人不得用于任何商业目的。网信部门后续将会同各有关部门,依据《管理规定》对备案主体进行监督检查,并督促未备案主体尽快履行备案义务。请尚未履行备案手续的相关机构和个人尽快申请备案。

第四批备案企业地区分布情况:

据备案清单显示,第四批境内区块链信息服务备案项目所在企业,有76家属于北京企业,其余的大部分企业集中在广东、浙江、上海。

梳理发现,第四批名单中共有来自22个省直辖市自治区的企业。其中,北京、广东、上海三家备案企业最多,分别为76家、57家、32家;上海紧随其后为31家,江苏以9家位列第五。

【深度知识】以太坊数据序列化RLP编码/解码原理

RLP(RecursiveLengthPrefix),中文翻译过来叫递归长度前缀编码,它是以太坊序列化所采用的编码方式。RLP主要用于以太坊中数据的网络传输和持久化存储。

对象序列化方法有很多种,常见的像JSON编码,但是JSON有个明显的缺点:编码结果比较大。例如有如下的结构:

变量s序列化的结果是{"name":"icattlecoder","sex":"male"},字符串长度35,实际有效数据是icattlecoder和male,共计16个字节,我们可以看到JSON的序列化时引入了太多的冗余信息。假设以太坊采用JSON来序列化,那么本来50GB的区块链可能现在就要100GB,当然实际没这么简单。

所以,以太坊需要设计一种结果更小的编码方法。

RLP编码的定义只处理两类数据:一类是字符串(例如字节数组),一类是列表。字符串指的是一串二进制数据,列表是一个嵌套递归的结构,里面可以包含字符串和列表,例如["cat",["puppy","cow"],"horse",[[]],"pig",[""],"sheep"]就是一个复杂的列表。其他类型的数据需要转成以上的两类,转换的规则不是RLP编码定义的,可以根据自己的规则转换,例如struct可以转成列表,int可以转成二进制(属于字符串一类),以太坊中整数都以大端形式存储。

从RLP编码的名字可以看出它的特点:一个是递归,被编码的数据是递归的结构,编码算法也是递归进行处理的;二是长度前缀,也就是RLP编码都带有一个前缀,这个前缀是跟被编码数据的长度相关的,从下面的编码规则中可以看出这一点。

对于值在[0,127]之间的单个字节,其编码是其本身。

例1:a的编码是97。

如果byte数组长度l=55,编码的结果是数组本身,再加上128+l作为前缀。

例2:空字符串编码是128,即128=128+0。

例3:abc编码结果是131979899,其中131=128+len("abc"),979899依次是abc。

如果数组长度大于55,编码结果第一个是183加数组长度的编码的长度,然后是数组长度的本身的编码,最后是byte数组的编码。

请把上面的规则多读几篇,特别是数组长度的编码的长度。

例4:编码下面这段字符串:

,IknowitbecauseIpre-designedit

这段字符串共86个字节,而86的编码只需要一个字节,那就是它自己,因此,编码的结果如下:

510510311010110032105116

其中前三个字节的计算方式如下:

184=183+1,因为数组长度86编码后仅占用一个字节。

86即数组长度86

84是T的编码

例5:编码一个重复1024次"a"的字符串,其结果为:18540979797979797...。

1024按bigendian编码为0040,省略掉前面的零,长度为2,因此185=183+2。

规则1~3定义了byte数组的编码方案,下面介绍列表的编码规则。在此之前,我们先定义列表长度是指子列表编码后的长度之和。

如果列表长度小于55,编码结果第一位是192加列表长度的编码的长度,然后依次连接各子列表的编码。

注意规则4本身是递归定义的。

例6:["abc","def"]的编码结果是200131979899131100101102。

其中abc的编码为131979899,def的编码为131100101102。两个子字符串的编码后总长度是8,因此编码结果第一位计算得出:192+8=200。

如果列表长度超过55,编码结果第一位是247加列表长度的编码长度,然后是列表长度本身的编码,最后依次连接各子列表的编码。

规则5本身也是递归定义的,和规则3相似。

例7:

[",","IknowitbecauseIpre-designedit"]

的编码结果是:

其中前两个字节的计算方式如下:

248=247+1

88=86+2,在规则3的示例中,长度为86,而在此例中,由于有两个子字符串,每个子字符串本身的长度的编码各占1字节,因此总共占2字节。

第3个字节179依据规则2得出179=128+51

第55个字节163同样依据规则2得出163=128+35

例8:最后我们再来看个稍复杂点的例子以加深理解递归长度前缀,

["abc",[",","IknowitbecauseIpre-designedit"]]

编码结果是:

24894131979899

列表第一项字符串abc根据规则2,编码结果为131979899,长度为4。

列表第二项也是一个列表项:

[",","IknowitbecauseIpre-designedit"]

根据规则5,结果为

长度为90,因此,整个列表的编码结果第二位是90+4=94,占用1个字节,第一位247+1=248

以上5条就是RPL的全部编码规则。

各语言在具体实现RLP编码时,首先需要将对像映射成byte数组或列表两种形式。以go语言编码struct为例,会将其映射为列表,例如Student这个对象处理成列表["icattlecoder","male"]

如果编码map类型,可以采用以下列表形式:

[["",""],["",""],["",""]]

解码时,首先根据编码结果第一个字节f的大小,执行以下的规则判断:

1.如果f∈[0,128),那么它是一个字节本身。

2.如果f∈[128,184),那么它是一个长度不超过55的byte数组,数组的长度为l=f-128

3.如果f∈[184,192),那么它是一个长度超过55的数组,长度本身的编码长度ll=f-183,然后从第二个字节开始读取长度为ll的bytes,按照BigEndian编码成整数l,l即为数组的长度。

4.如果f∈(192,247],那么它是一个编码后总长度不超过55的列表,列表长度为l=f-192。递归使用规则1~4进行解码。

5.如果f∈(247,256],那么它是编码后长度大于55的列表,其长度本身的编码长度ll=f-247,然后从第二个字节读取长度为ll的bytes,按BigEndian编码成整数l,l即为子列表长度。然后递归根据解码规则进行解码。

以上解释了什么叫递归长度前缀编码,这个名字本身很好的解释了编码规则。

(1)以太坊源码学习—RLP编码()

(2)简单分析RLP编码原理

()

热点内容
以太坊企业联盟名单aion 发布:2025-08-24 11:16:27 浏览:298
区块链溯源翻译 发布:2025-08-24 11:15:43 浏览:760
小说男主卖比特币收购公司 发布:2025-08-24 11:15:29 浏览:860
如何看到币圈的交易量 发布:2025-08-24 10:53:05 浏览:970
币圈算力市场分析 发布:2025-08-24 10:51:38 浏览:554
币圈怎么买usdt 发布:2025-08-24 10:44:37 浏览:191
数金链区块链浏览器 发布:2025-08-24 10:39:37 浏览:695
莱特币钱包文件被删 发布:2025-08-24 10:35:53 浏览:633
usdt泰达币在什么交易所 发布:2025-08-24 10:30:05 浏览:193
比特无限币巴比特 发布:2025-08-24 10:26:04 浏览:404