以太坊概念回顾 我们先来通过几个概念简单回顾一下以太坊。 什么是以太坊? 以太坊是一个基于交易的状态机,所有状态(State)的转换都由交易(Transaction)来启动,从一个状态转换为另一个状态。 以太坊中的状态是指什么? 以太坊中的状态称为世界状态,是一种从地址到账户的映射。每个地址代表了一个账户,账户分为“管钱”的外部账户(EOA)和合约账户。在外部账户包含的余额和nonce项之外,合约账户还包括账户的数据存储和代码。虽然账户或状态中存储数据,但是这些数据均不在链上存储,只在区块头保留数据的根哈希。也就是说,这里的数据大小并不影响区块大小。对外部账号(EOA)的交易主要是改变账户的余额,而对合约账户的交易是为了触发智能合约代码,在以太坊虚拟机(EVM)中执行后改变账户状态。 交易是如何实现状态转换的? 一笔交易包含的数据有: 那么,交易是如何实现状态转换的呢? 传递价值和发送数据 一个账户可以通过发送一笔交易到一个外部账户或合约账户传递价值;同样,EOA和合约账户还可以通过交易发送数据到另一个合约账户来调用合约中的方法或者创建一个智能合约。这种通过发送数据完成状态的转换,是通过运行合约代码计算完成的。而EVM就是以太坊网络的CPU,合约源代码(如solidity代码)经过编译转换为机器可读的字节码(bytecode),即EVM指令(instruction),来进行具体栈的操作——计算。合约单月创建量,duneanalytics.com 面对每月百万级的合约创建量,如果我们能将这些交易中的数据量降下来,对区块瘦身以及系统可扩展性必将大有裨益。 总结: 以太坊区块正是为了记录交易数据而将它们打包在一起。而交易数据中除了与合约相关的“数据”项外,其它项的长度没有压缩空间,而且在交易数据中占的体积不大。 所以,针对挖矿节点,我们提出通过把IPFS作为以太坊的存储Layer 2,托管合约代码,降低区块大小。将更多交易打包进区块,降低交易手续费,增加可扩展性。 以上,我们给出了IPFS和以太坊的结合点,那么究竟该如何实现?将在文章的下半部分做出说明。 /End. 声明:本文系IPFS原力区原创稿件,版权属IPFS原力区所有,未经授权不得转载,违者将依法追究责任。 (责任编辑:admin) |