以太坊解读——Recursive Length Prefix协议图解(上)
在以太坊中,采用了一种名为Recursive Length Prefix(RLP)的方法对交易、账号、合约等基础的数据结构进行序列化处理,从而实现段卖对链上数据的网络传输和持久化存储。RLP作为最为底层的编码方法,其重要性是不言而喻。因此,网上介绍RLP的文章也不少,但是由于RLP是二进制编码,又涉及到嵌套结构,造成编码过程的可读性较差,在学习中过程中,也一直没有找到完整的、易于理解的说明,总是绕在各种规则之中,且不能"自拔",着实有点无奈。所以,在本文中,采用图形化的解释和举例的方法,帮助大家理解RLP嵌套等特点、编解码过程等。
和其他的序列化协议不同,RLP只支持两种数据类型:
1)byte数组,可以是二进制数组,当然也可以是字符串;
2)byte数组的数组,也就是列表。并支持列表内的嵌套。
对于其他的数据类型,RLP都不支持,需要用户自己先转化为数组和列表的类型。
从RLP的命名中就可以看出两个关键字:一个是递归Recursive和前缀Prefix。首先,关于递归,也就是嵌套结构,结构上非常接近“树”,在Ethereum WiKi中,更是直接地采用树的items来进行命名,叶子节点(leaf tress)来存储“byte数组”,嵌套的节点就是一个树的分叉(branching trees)。
比如,需要是对如下对象进行RLP的编码,该对象中包含一个字符数组的列表、一个单个字符的字符数组、一个空字符数组。
[cat],[dog], [0xbf], []
将该对象展开为树的结构,就如下图。其中[0xbf]和[]属于字符数组。[cat], [dog]属于列表,可以嵌套展开,再根据各个节点,进行编码。然后,对于不同长度的数组和列表,编码的方法略有不同,这个也就是Length Prefix相关的内容,和“编码过程”相关的内容,在第二节进行详细地说明。
关于为什么以太坊需要单独设计一种序列化协议,目前还没有找到官方的描述。但与其他序列化方法相比,RLP协议具有一些直接的优点,比如:
1)在以太坊中,最小货币单位为1 Wei,并且1 ETH = 10^18 Wei,所以在编码中,需要考虑对很大的整数类型的序列化,在RLP中采用去除前导零(leading zero)的大端big-endian方式,可以有效处理大整数;
2)使用了灵活的长度前缀来表示数据的实际长度,并且使用递归的方式能编码相当大的数据;
3)为了实现在链上节点的“共识Consensus”,防止出现数据的不一致,以太坊中并不支持浮点数类型,所以一般的序列化协议也不适用。
编码的过程就是将嵌套结构(nested sequence)的树形结构,添加长度前缀(Length Prefix)后,转化为顺序结构(flat sequence)的过程。添加长度前缀的目的,就是在反序列化时,可以根据长度前缀(Length Prefix),将(flat sequence)重构出树的结构(nested sequence)。
关于前缀的生成规则,《Ethereum Yellow Paper》[2]给出了非常形式化的数学符号描述,漂亮是非常漂亮,可惜不是人类的语言,非常难于理解和表达。网上大部分文章的写法也是引用了Yellow Paper中的5个文字形式握租逗上的描述,把原文和翻译一并给出如下:
将上面这型扒个“长度”Length Prefix的编码规则,通过“决策树”可以图形化的表达如下图。
首先,根据编码的类型,进行分类,分为“字节数组”和“列表”两类;第二,根据不同的长度,编码的长度前缀不同。若待编码对象的长度小于56,就是把长度和“前缀字符”进行求和,占用一个字节。反之,待编码对象的长度大于56,其前缀需要多个字节,第一个字节,求出“长度”所占的字节数,再加上“前缀字符”,比如:长度为56,占用1字节。然后对“长度”进行编码,其实也是一个嵌套的过程。
还是以上文中的例子,该编码对象,已经完成了“树的构建”,然后根据“长度前缀”的原则,对树的各个项目进行长度前缀的计算。
[cat],[dog], [0xbf], []
-对于[cat],[dog]属于嵌套数组,需要对内部各项非常进行长度编码的计算
`对于[cat],属于字符数组,且长度为3,其对应的长度为0x80+3 = 0x83
`对于[dog],属于字符数组,且长度为3,其对应的长度为0x80+3 = 0x83
`[cat],[dog]整体上,其长度前缀为0xc0 + 2(新增的两个子项的长度所占用的字节)+6(待编码字符的长度)=0xC8
- 对于[0xbf], 属于字符数组,且长度为1,其对应的长度为0x80+1 = 0x81
- 对于[dog],属于字符数组,且长度为3,其对应的长度为0x80+3 = 0x83
- 对于[],属于字符数组,且长度为0,其对应的长度为0x80+0=0x80
总体上,增加的“长度编码”的字节数为6,加上原来的长度为10,所以整个对象的长度前缀为0xC0+16d=0xD0。所以最后的编码结果为:
D0 C8 83636174 83646F67 81B7 83646F67 80
解码过程将在 《以太坊解读——Recursive Length Prefix协议图解(下)》 一文中,给出图形化的解读说明。
以太坊是否支持脚本
支持。
以太坊是支持脚本和贺孝的,也可对以太坊网络唤稿执行自定义脚本。
以太坊(英文Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether)提供去中心化的以太虚拟机拍镇(EthereumVirtualMachine)来处理点对点合约。
以太模拟器支持那些格式游戏
您好,以太模拟器是一款基于以太坊区块链的游戏平台,支持多种游戏格式。其中,最常见的游戏格式是ERC-721和ERC-1155。
ERC-721是一种基于以太坊区块链的非同质化代币,也滑差就是NFT(Non-Fungible Token)代币。这种代币可以代表一个独特的数字资产,例如游戏中的道具、角色、装备等。以太模拟器支持ERC-721格式的游戏,玩家可以在游戏中拥有独一无二的数字资产,并在以太坊上进行交易。
ERC-1155是一种基于以太坊区块链的多重资产代币,可以代表多种不同的数字资产,例如游戏中的道具、角色、装备等。以太模拟器也支持ERC-1155格式的游戏,玩家可以在游戏中拥有多种数字资产,并在以太坊上进行交易。
除了以上两种格式,以太模拟器还支持其他一些基于以太坊区块链的游戏格式,例如ERC-20代币和ERC-777代币等。这些代币可以代表游戏中的虚拟货币,玩家可以在游信闹皮戏中进行交易和购买。总的来说,以太模拟器支持的游戏格式非常丰富,可以满足不同类型弯芹游戏的需求。
巴哥:以太坊的价值何在?为何被称为“数字石油”?
为什么很多人觉得以太坊是金融机构下一个布局的项目?加密资产那么多,为何偏偏青睐以太坊?
首先需要我们了解以太坊的底层逻辑。熟悉的人都知道,它像一个生态系统,提供各种各样的原材料,我们只需要根据这些材料组装成我们需要的功能通过编程橘返语言搭建就算完成了。简单理解,以太坊更像是一个安卓系统,程序的开发者们只需要在基于以太坊链上开发满足自己需求的APP功能即可,也正是基于此,以太坊被很多人称为“数字石油”。
加密生态系统的三大举措——支付、DeFi 和 NFTs——大多是建立在以太坊之上,因此以太坊的定价具有网络效应。使用它的人越多,基于它的产品就越多,最终价格也会越高。而由于在过去的五年里,世界上很多人都把加密货币和比特币联系在一起,既有认知忽略了以太坊的实际价值层面。
实际上比特币的功能相对来说就简单多了,最主要就是一个分布式记账。可以说:以太坊的出现就是为了完善比特币的许多缺陷地方,以太坊的功能应用更加的丰富,只要有更多得开发者在以太坊上面开发智能合约,那么以太坊生态就会越来越庞大,价值也就凸显。
价值总是源于使用。黄金和房产等过去的价值存储的关键在于,过去有人需要这些资产 (效用性),并通过交换一些有价值的东西 (通常是货币) 来赋予它们价值。事实上,在成为投资资产之前,所有重要的非收益性价值储存手段都有了实际用途。
那么,以太坊的价值储藏手段体现在哪里?
以太坊生态系统支持智能合约,并为开发者提供了在其平台上创建新应用的方式。 大多数去中心化金融 (DeFi) 应用都建立在以太坊网络上,目前发行的 NFTs (非同质化代币) 都是使用 ETH 购买的。与比特币相比,ETH 的交易量更大,这反映了这种主导地位。随着加密货币在 DeFi 和 NFTs 中的使用越来越广泛,ETH 将在应用加密技术方面建立自己的先发优势。
以太坊还可以用于在分布式账本上安全、私密地存储几乎任何信息。 这些信息可以被代币化并进行交易。这意味着以太坊平台有潜力成为可信信息的巨大市场。我们可以通过当前人们使用 NFTs 在线销售数字艺术和收藏品来看到这一点。但这只是以太坊实际用途的一小部分。例如,个人可以通过以太坊存储并将其医疗数据出售给制药研究公司。以太坊上的数字档案可能包含个人数据,包括资产所有权、医疗 历史 ,甚至知稿轿识产权。以太坊还具有作为去中键伍肆心化的全球基础服务器的好处,而不是像亚马逊或微软这样的中心化服务器,使其可能为共享个人数据提供了一个解决方案。
以太坊正在经历更快的协议升级。 即以太坊目前正在从 PoW 向 PoS 的验证方法过渡。PoS 系统的优势在于大大提高了系统的能源效率,因为它根据矿工 (验证者) 质押的 ETH 数量 (而不是他们的处理能力) 来奖励他们,这将结束为了获取矿工奖励而展开的耗能竞赛。比特币的能源消耗已经相当于荷兰的规模,能源消耗太大,一直也是相关部门诟病需关闭违规挖矿的重要考量。
总而言之,任何一项能够长久生存下去的技术,一定是可以解决现实生活中的实际问题,创造价值。如果是泡沫,终究有破灭的一天,而我们需要的就是不断学习,看清楚事物背后的底层逻辑。
注:本文不代表任何投资建议,只是巴哥个人对于以太坊价值的一些浅显看法。
为什么说以太坊将成为“通缩资产”?
4月20日,以太坊刚刚完成了柏林硬分叉,分叉内容涉及主网性能、智能合约的优化,Gas效率的调整以及虚拟机(EVM)读取代码方式的更新等方面。
作为公链之王,以太坊2.0的进程一直以来备受关注。随着柏林硬分叉的顺利完成,下一次重要的硬冲念分叉事件——“伦敦升级”或会在7月份得以实现,前段时间广受热议的“EIP-1559”也会在“伦敦升级”中被执行。如果“伦敦升级”得以顺利通过,ETH可能会进入全新的通缩时代,进而使得ETH成为通缩资产。
“通缩”,顾名思义,即通货紧缩,届时ETH的市场流通量会少于实际流通所需要的量,进而导致ETH币价拉升。
促使ETH成为通缩资产的两大机制:一是EIP-1559提案执行后每一笔链上交易都会烧毁一定量的ETH;二是ETH 2.0共识机制切换以后的产币量下降。
不过,并不是所有以太坊的支持者都支持EIP-1559提案,矿工群体甚至划分成了两大阵营,其中一方强烈反对EIP-1559提案,因为他们认为EIP-1559提案造成挖矿收益大幅度减少。
咱们不妨来算一下:
当前全网算力520,000 GH/s,平均出块时间为14S,区块奖励为2个ETH,那么则有:
每天产生新的区块:60 X 60 X 24/14,约为6172个块
每天实际产币量:6172 X 2=12344 ETH
当前每日收益: 1MH/s x 24H=0.00005ETH
全网每日收益(含Gas):520,000 X1000X0.00005=26000 ETH
每年的产币量:12344 X 365=450万枚
从以上计算中可以看到,全网矿工每日挖矿的收益(26000 ETH)是实际产币量(12344 ETH)的2倍以上,可见当前的Gas费(包含了叔块奖励)收益多么可观。
而EIP-1559提案中,把交易手续费被划分为两部分:基础费和矿工费,其中基础费会被销毁,矿工无法再获取这部分收益。一旦EIP-1559提案实施,矿工的交易手续费收益会大幅度减少,故而有部分矿工对EIP-1559提案十分抵触。
但从以太坊长远的发展来看,EIP-1559机制对以太坊链上的Gas费将更加平滑,长期利好以太坊生态以及以太坊的持有者。
按照计划,“柏林升级”和“伦敦升级”之后,以太坊答液将进行“合并”,即把共识机制从工作量证明(PoW)切换到权益证明(PoS),并且发行量有所减少。
实际上,早在两年前,以太坊基金会的研究人员Justin Drake就对外声称:“ETH 2.0发行量会减少10倍。”亦即产币量减少90%,以太坊的区块奖励将会断崖式下跌。
假设按照当前每个区块奖励2枚来算,减少90%,也就是ETH 2.0升级完成以后每个区块的奖励将变成0.2枚ETH。如果你也看好以太坊,建议趁早布局。另外透露个好消息:近期ViaBTC为回馈广大矿工,将推出ETH“矿欢月”活动,更多惊喜和福利会送出,具体细则以官方公告为主。
总结以上,当前人们争先恐后挖ETH的两大原因:
一是对ETH2.0升级之后价格的上涨预期;
二是ETH2.0升级以后,产币量锐减。
如果说以太坊1.0是试图构建世界级的去中心化计算机,那么以太坊2.0将会成为真正意义上的世界级去中心化计算机。一旦以太坊2.0得以顺利升级,以太坊主网性能势必大幅度提升,链上承载能力更高,效散举困率更快,真正实现它的“世界级去中心化计算机”的伟大愿景,为大规模的商业应用场景提供无限可能
「官方」搭建Web3:Filecoin与以太坊携手共进
这是Protocol Labs创始人Juan Benet在EthCC 2021上的演讲概要,查看完整内容:
Filecoin网络是面向生态的,它与Protocol Labs搭建模块化解决方案的倾向是一致的。因为它本来就是设计给其他人使用,所以Filecoin在Web3领域的其他栈、应用和生态里如鱼得水。自从其在2020年10月的启动开始,Filecoin已经增长到超过8 exbibytes的可用存储空间,有超过400个项目进入了这个生态。以太坊就是一个能持续证明其可协作性和共同利益的生态系统。
Filecoin + 以太坊
Filecoin和以太坊虚拟机(EVM)
Filecoin生态意识到网络支持智能合约的好处。最初,开发者社区相信架设在以太坊和Filecoin之间的桥服务足够在Filecoin上支持智能合约了。不过,通过桥来使用智能合约是很笨重的方式,相比于直接在以太坊实现智能合约的功能和可组合性更是不足。有一个提议是在Filecoin上加入以太坊虚拟机(EVM),从而在存储层启用对智能合约的支持,以及为这两个生态的结合提供更多机会。
开发者工具和资源
Fleek:让用户能为去中心化网络架设网站、存储和分发文件及开发dapp。Fleek可以让每一个人(从专业的开发者到日常的互联网用户)更容易以去中心化的方式创建app和存储文件,从而加速去中心化网络的采用率。Fleek可以在Filecoin上进行自动化存档,并通过ENS(以太坊域名服务)这样的应用来利用以太坊的生态系统。
Web3.Storage:是一个让开扰败发者在Filecoin去中心化存储网络上存取数据的简单接口。Web3.Storage为开发者(包括以太坊dapp开发者)提供了搭建应用的简单方式,这些应用可以带有冗余的去中心化的存老李让储以及安全的内容寻址数据。
PowerLoom:以去中心化的方式将链上和链下数据聚合起来以生成带有密码学证明的快照。它旨在通过一个丰富的节点和利益相关者生态系统(他们被激励参与到协议里)来搭建信任,并按需提供洞见。PowerLoom特别适用于以太坊DeFi这样的生态,这类系统是非常复杂的,而且需要基于验证的信任。
DeFi应用
SecuredFinance()是一个综合平台,整合了基于智能合约的点对点固定利率贷款、抵押品管理服务、货币间交易和其他类型的利率产品。Secured Finance的协议是去中心化的点对点金融协议,提供了由以太坊智能合约赋能的区块链上的中后台银行业务。Secured Finance可以满足Filecoin网络内的需求,它提供的解决方案能够满足Filecoin存储提供者对FIL贷款的强烈需求。
数据市场
OceanProtocol()是一个在Filecoin上搭建的数据市场。Ocean的数据token(data tokens)是以太坊ERC-20 token,可以轻易地用于发布和消费数据服务。如果你有1个数据token,你可以访问一个特定的数据服务。Ocean market是一侍局个专门为数据服务的去中心化交易所,它分叉了一个Balancer AMM(自动化做市商)来降低gas成本。在这个市场中,用户可以对数据进行发布、购买、销售、消费和stake操作。
通过Filecoin,用户可以利用Ocean来发起自己的Filecoin数据市场,或创建一个Filecoin dataDAO或指数基金。通过Ocean Protocol的工具和Filecoin的去中心化存储数据库,我们正见证新生的开放数据经济。
视频应用
LivePeer:是一个去中心化的在线视频流媒体基础设施,由以太坊区块链确保安全性。将Filecoin和IPFS结合提供存储和内容分发功能后,去中心化视频应用就成为可能了。
Voodfy:正为私有的视频架设服务提供去中心化工具。这是一个多功能的安全流媒体解决方案,让用户能完全控制自己的内容,这包括了访问权的设定以及变现的方式。它利用了Livepeer、Ethereum、Textile Powergate和Filecoin.
VideoCoin:正搭建一个能可靠地创建、存储和交易基于视频的NFT解决方案,它可以绕过在以太坊上存储实际内容时固有的复杂性和费用。VideoCoin正将其去中心化视频处理网络与Filecoin整合起来,以搭建首个专门为创建和交易视频NFT服务的平台。这个平台是新生的全球数字收藏品市场急需的一部分。
NFT
nft.storage()是一个由Protocol Labs实验室和Pinata支持的服务,它专门为存储NFT数据而设计。
nft.storage让开发者通过内容寻址和去中心化存储来保护其NFT资产和相关的元数据,确保所有的NFT遵循最佳实践以实现长期的可访问性。
未来的使用场景
随着Filecoin和Ethereum生态系统的成长和重叠,会出现更多的新生用例和开发者机会。一些可以进行创新的用例包括:
可组合的DeFIL
将存储和Defi的世界结合可以产生一些机会。人们可以将市场订单(如要价、出价和交易)带到一个去中心化交易所上,以观察市场是如何评判这些订单的价值的。通过这样的能力,生态系统可以开始想象硬件期货(hardware futures)和时空期货(spacetime futures)等的出现。
数据丰富的NFT
NFT将会越来越复杂,而Web3社区需要 探索 采用数据丰富(data-rich)的NFT的方式。VideoCoin已经将其视频处理引擎与Filecoin连接起来,以结合以太坊对NFT的支持能力及Filecoin的存储能力。像VideoCoin这样的工具可以用来创建一类新型的NFT,如短电影、视频片段和完整长度的专题特写。
按观看次数支付的媒体
通过在Filecoin上存储的信息,我们可以利用以太坊的token支持能力去创建由token保护的页面和媒体(文章、电影和音乐等)。我们可以复制Web2时代的按观看次数支付模式,而无需复制数据和广告模型。
这只是一个开始!Filecoin和以太坊生态有长期的协作 历史 和机会,未来可期。
上述文章就是科灵网介绍的以太坊支持和以太坊支持的语言的详细回答,希望能够帮助到大家;如果你还想了解更多财经资讯知识,记得收藏关注我们。
标签: 以太坊支持