为交易而生的平行处理公链Sei Network于今年八月发行代币并启动主网。引起市场一阵热潮后,Sei Labs创办人Jayendra Jog近日宣布将推出Sei v2,将整合EVM、优化平行处理机制与账本存储结构。
Sei Network是什么?
Sei为交易而生
Sei平行处理机制
Sei v2更新方向
虚拟机:支持EVM
原有设计:Sei v1使用CosmWasm虚拟机
更新重点:Sei v2将支持EVM整合
优化Sei平行处理机制
原有设计:Sei v1合约需定义资源范畴
更新重点:Sei v2简化合约平行运行机制
优化账本存储结构:SeiDB
原有设计:Sei v1存储状态数据量大
更新重点:Sei v2分离账本结构
共识机制
Sei借由取舍进入一线竞争链行列
Sei Network有明确的市场定位,提供虚拟资产交易的高效环境。虚拟资产除了常见的代币之外,也包含NFT、社交图谱、游戏道具,通过提供专门交易的底层环境打造最佳的用户体验。
虚拟资产交易有多种类型
(数据来源)
交易不限于加密货币,因此虚拟资产的交易是网络世界最广泛的需求。团队认为最成功的Web3应用程序都涉及交易属性:
间接交易:大多数链上用户借由使用Uniswap、OpenSea进行虚拟资产交易。
直接交易:直接受到交易的项目,大多是游戏或NFT项目,例如Axie Infinity或是BAYC。
因此交易的需求从不消失,是未来Web3重要的环节,而要完成最佳交易网络的定位,需要提供高效率的环境,而Sei利用平行链处理设计与共识机制做到此目标。
Sei Network主网现已上线3个多月,根据官方数据显示,目前网络平均可以达到20,000的TPS与390毫秒的最终确认性,目前团队表示都是业界最有效率的网络,这都有赖于其创新的平行处理机制。
当Sei区块链上的交易没有涉及相同的资源(地址)时,可以将所有交易同时并行处理,而不需要排序交易顺序,借此可以提高网络运作效率。
看待一个区块链项目,主要有三个评估重点:账本结构、共识机制、虚拟机。再加上Sei特有的平行处理机制,就可以清楚理解Sei v2本次的更新内容有什么差异。
Sei Network v2主要更新内容
(数据来源)
创办人Jayendra表示Sei v2仅是附加新功能,对于现有功能并不会受到影响,用户与开发者无需为此更新执行任何额外操作。
Sei v2提案主要包含三项更新:
支持EVM
优化平行处理机制
优化账本存储结构
本次更新预计将于2024年第一季完成。
Sei是利用Cosmos SDK所建构的,并使用后者提供的组件CosmWasm虚拟机。CosmWasm是专为Cosmos生态系统打造的虚拟机组件,底层是WebAssembly(Wasm)而得名。使用Cosmos SDK所建立的区块链都可以将CosmWasm添加到其链中,而无需调整现有逻辑。
WebAssembly可以支持多种常见的程序语言,包含Rust、C、C++等等,因此如果是Rust开发人员,则可以在CosmWasm上轻松编写智能合约,因此Sei吸引的是圈外的开发者。
不过Sei Labs团队发现虽然开发人员的参与度高,却失去以太坊虚拟机(EVM)生态。EVM是现有大多产业应用与产品所使用的虚拟机,失去此生态将对于Sei现阶段的快速发展造成阻碍,例如现有以太坊项目无法分叉到Sei生态。
团队为此更新了专用的代码库Core Sei Binary,导入了EVM RPC与Geth节点的专用接口,让EVM的交易可以无缝上链到Sei网络与互动。
选择Geth是因为其相对稳定,Jayendra Jog表示目前有80%的以太坊节点使用Geth,而且支持完整的EVM字节码兼容性,代表开发人员可以完全复制其他EVM的合约至其上运行。
Sei Network v2主要更新内容
(数据来源)
Sei v2还将使用EVM RPC,让用户可以轻松使用Metamask等钱包操作,而开发人员则可以继续使用Foundry、Remix和Hardhat等工具。
因此,Sei v2将可以让EVM和Cosmwasm交易之间的产生可组合性。Sei的Geth有一个预编译器,允许调用Cosmwasm合约,而Sei的wasmd模块也能够反向调用EVM合约,将可以让Sei的生态内的资产更有价值。
在原本Sei Network为了让交易可以平行处理,需要开发人员学习如何「标记合约的资源使用」。
开发人员在Sei撰写合约时,需要定义合约可能需要存取的资源与独立性,以便未来当Sei执行合约可以快速分辨资源独立性,决定是否要并行交易或是排序交易。
为了并行执行合约,开发人员需要识别在执行过程中需要存取的资源(包含查询合约),并将资源范围写成JSON的格式上链,无形中对开发人员造成困扰,并增加进入门槛与安全性问题。
Sei v2将优化并行处理机制,不再需要开发人员手动定义依赖关系,而是能够自行处理并行化机制,减少了开发人员的负担。
新的平行处理机制会将所有交易统一执行,若发现资源相冲突的情况,则网络会重新检视先后顺序,并再重新执行。
Sei v2自动化处理资源重叠问题
(数据来源)
如果交易涉及不同的账户,例如Alice转账给Bob,同时Carol转账给Dave,那么由于没有重叠的依赖关系,本交易将平行处理;如果交易涉及相同的账户,例如Alice与Bob都转账给Carol,那么需要按顺序重新运行。
不过此设计可能有疑虑,若发生最坏的情况,所有交易都涉及相关性而都需要按顺序重新运行,重新运行这些交易将比原本就按照顺序运行的情况增加30%的执行时间。
所幸根据Ethereum历史数据,实际上只会有大约15%的交易会有资源重叠而需要按顺序重新处理,因此团队评估后认为Sei整体性能仍会显著提高。
但其实Sei还有另外一个问题,会将整个IAVL树永久储存到分散式账本中,由于快速的最终性与平行处理设计,需要频繁记录全局的状态变化,整体的网络账本大小将会增长得很快。
平行处理的代价是会记录许多无效的中间状态数据,根据Sei团队提出的RFC,以atlantic-2测试网节点为例,atlantic-2节点储存25GB的数据只有10GB是真正有意义的交易信息,节点磁盘空间运用效率低。
由于数据膨胀,Sei节点磁盘使用量成长很快。atlantic-2归档节点硬盘使用量每天增长超过150GB,每周超过1TB。随着链状态的不断增长,储存空间增长率也会不断增加(会越来越快)。
将会导致许多问题:
节点的维护成本将变得越来越高
数据库操作会变得越来越慢
由于磁盘填满很快RPC节点不能长时间运行
加上未来v2来回处理重新验证的平行处理设计,网络整体状态改变会更高频,导致状态数据量大幅增加。
Sei v2为解决上述问题也有优化储存机制,以防止状态数据量膨胀,并提高全节点读取数据速度。
Sei v2将状态存储账本拆成两种,称为SeiDB:
状态承诺账本(State Commitment, SC):纪录MemIAVL树信息
状态储存账本(State Store, SS):纪录完整信息
由于SeiDB的改良,验证节点仅需要纪录SC账本信息即可,而完整状态信息则交由SS层纪录,且传输会先放在预写日志中而不需要即时传输,这允许状态储存非同步发生以提高了效能,因为不会影响区块生成。
Sei v2降低验证节点数据量增长负担
(数据来源)
藉由SeiDB改良,Sei性能各方面都有所增加。包含区块提交时间提升100倍、每天产生的数据量从100GB压缩至5GB、全节点或需要同步信息的节点的追趕时间提升10倍。
Sei Network v2并没有更改其原有的共识机制,仍保持Twin Turbo设计。藉由改良Cosmos的共识接口Tendermint ABCI,将区块确认时间大幅降低。
Sei v2新增了EVM虚拟机,并改良了平行处理机制与分散式账本储存机制,目的都是为了让开发者、节点、用户的使用体验提升,进而增加生态影响力。
不过也藉由这三个月的运营,发现Sei平行交易提高TPS与快速的最终确认性,背后的代价是状态数据量会变大,导致节点所需要的硬件规格上升,团队做出妥协将账本结构分开,某方面来说是牺牲去中心化以提升效率的取舍。
整体来说Sei相对于其他以太坊杀手,若上述更新可以确实落地,有机会进入一线的竞争链行列中,期待看到明年团队更新的成果。
(本文非投资建议)
Cosmos
CosmWASM
Layer1
Sei