在我之前的新型交易gossip广播网络设计中其实可以看到我最初在为状态网络设计gossip广播方面的尝试。在之前的文章中,我介绍了一种设计,可以让节点在无需处理完整交易池的情况下参与gossip广播。
从较高层面上来说,我们关于交易gossip广播的问题陈述如下:
交易来自整个网络。
一些网络参与者本身就需要维护完整的交易池。
一些网络参与者缺少足够的资源来处理完整的交易池。
我提议的交易gossip广播方案采用了距离指标,让节点可以自行调整它们必须处理的交易池规模。节点采用一组简单的规则来管理与之连接的对等节点集合,从而形成网络拓扑结构。半径最大的节点被视为网络的“中心”,半径最小的节点被视为网络的“边缘”。
该方案之所以有效,主要的两点原因如下:
V神:希望以太坊同时实现“功能性和简单性”两个愿景:3月30日消息,V神(Vitalik Buterin)发文表示,以太坊最大的挑战来自于两种愿景之间的平衡:一个重视安全性和简单性的纯粹而简单的区块链,以及一个用于构建高级应用程序的高性能和功能性平台。
V神称其个人梦想是尝试同时实现这两个愿景:一个基本层,其中规范每年都比前一年更小;一个以第二层协议为中心的强大的开发人员友好型高级应用生态系统。实现这样一个理想的世界需要很长时间,而更明确地认识到这需要时间,我们需要一步一步地思考路线图,这可能会对我们有很大帮助。
V神认为,有路径实现改善功能性和简单性,尽管可能会比较曲折。[2022/3/30 14:27:32]
第一,我们预期,节点的半径值会有很大差别,但?同时?都会相对较大。这种差异源自那些有动力维护“完整”半径以及“较大”半径的参与者。正是这些节点将位于网络边缘的节点连接到了一起。
以太坊彩票平台PoolTogether发布协议V3版本:金色财经报道,以太坊无损彩票平台PoolTogether正在发布其协议的V3 版本。新版本增加了一些去中心化元素,包括创建新游戏的能力。据悉,该协议还将支持YFI和TUSD等代币。[2020/10/23]
第二,我们关于半径值较大的预期是根据键空间推测出的。根据Peter最近关于交易池的文章,geth节点默认最多可维护4000笔交易。在任意时刻,整个网络中的待处理交易高达4万至40万笔。轻节点无法处理4000笔交易,但是处理其中5%不成问题。因此,我们预期半径值通常在整个键空间的1%至100%之间。
将同样的设计应用到状态gossip广播上
我最初尝试将这种设计应用到针对状态网络的gossip广播上,但是没有成功。主要原因如下:
动态 | 以太坊链上1200万枚USDC被销毁 价值约1210万美元:Whale Alert监测数据显示,北京时间1月7日10:03,以太坊链上1200万枚USDC被销毁,按当前价格计算,价值约1210万美元,销毁哈希为:0x36ab45bac29b5d8f7be2ccdd589585df9e5a92a42420e361b67ed12c0c005df9。[2020/1/7]
第一,状态网络中各节点在半径值上的差异会小得多。我们预期不太可能会有网络参与者维护“完整”半径。这会导致网络中缺少一个起到连接边缘作用的“中心”。
第二,半径值会很小。假设有200GB的状态,平均每个节点提供100MB的存储空间,且复制因子为10,那么计算下来我们需要一个由2万个节点组成的网络。平均每个节点需要存储0.002%的数据。
动态 | BitPay公布支持以太坊支付的商家名单 包括亚马逊和微软:区块链支付提供商 BitPay 宣布旗下应用和多个商家已开始支持以太坊支付,并公布了一系列支持以太坊支付的商家名单,包括支持购买(亚马逊和达美航空的)礼品卡、(Newegg、Ledger、Scan UK 和 Avent 的)电子硬件产品、(APMEX、Goldmoney、Sharps Pixley 和 Provident Metals 的)珠宝、(微软、Dish TV、Xsolla 和 Dallas Mavericks)的娱乐服务和游戏、(airBaltic、Privatefly、Flight Centre 和 Eom Travel 的)旅游、(Namecheap HOSTKEY、Private Internet 和 ExpressVPN 的)软件和网络服务、 (Fancy、Lush、Lanieri Schmidt's 的)时尚护肤品,为非盈利机构(Tor、维基百科基金会、美国红十字会和 Electronic Frontier)进行捐赠以及购买(Onfido、HackerOne、BitGo、Chainalysis 的)专业服务。[2019/10/23]
正是上述两个不同之处从根本上改变了网络拓扑结构,导致原来的交易gossip广播网络设计失灵。
以太坊创始人V神发推驳斥不实观点:以太坊创始人V神刚刚发布推特称,那种认为“区块链应该做的是验证而不是交易执行,因为交易执行比验证要慢得多”的观点是“胡说”。事实是以太坊的uncle rate更多和简单tx计算相关,而不是由交易的复杂性导致的。[2018/3/4]
与交易gossip广播不同的目标
别忘了,交易gossip广播的目标之一是,让交易进入矿工所在的网络“中心”。位于网络边缘的节点其实不是很在乎是否能看到所有待处理交易,即使一个都看不到也没关系。它们主要关心的是能否广播自己的交易,并让这些交易可靠地打包进区块内。
状态网络不仅缺少中心,而且数据流向与交易gossip广播相反。状态gossip广播的目标是将数据发送到网络边缘进行存储。
另外,在交易gossip广播中,消息来自整个网络;在状态网络中,我们预期新数据只会来自一小部分友善的桥节点。这些桥节点负责生成证明,并将这些证明发送到状态网络。
中继机制会导致DOS攻击和不可归因的错误
我想到的一个改进方向是引入中继节点。
我们预期每个节点会对网络中0.002%的数据感兴趣。我认为,根据我的结论可以构建出多个不同的网络模型,但是一种简单的做法是,根据DHT网络中每个节点的路由表为gossip节点之间的连接构建模型。在这样一个网络中,数据需要经过log(n)跳才能到达需要它的节点那里。
这里的问题在于,如果一个节点转发了其它节点都不感兴趣的数据,但是这个数据需要经历一次以上的跳跃,就会变成一个放大向量。恶意节点可以通过在gossip网络中广播无用数据来放大DOS攻击。
一个笨办法
目前,我比较偏向于一个“笨”办法,旨在从非网络层面解决上述问题。
有“一小批”状态提供商节点为每个区块内新的状态数据生成证明。
每个证明预期有大约2000个trie节点。其中一部分节点是新数据或更新后的数据。只有这个子集需要发送到网络中。
已知每个节点只关心每个区块中0.002%的数据,也就是说不同节点感兴趣的数据之间很少有重叠。如果一个区块内包含2000条新数据,我们可以预见每条数据要发送给完全不同的节点。这就意味着,为了在区块时间内广播新区块的证明数据,一个状态提供商每15秒要将2000个不同的证明发送给2000个不同的节点。要做到这点不是不可能,但是会很难。一旦证明大小增加或网络延迟稍微高一点,状态提供商就无法在区块时间内发送完整的证明数据。
幸好我们可以有不止一个数据提供商。我们可以合理预期将会出现数量不多的状态提供商发送证明数据。在这个模型下,我们可以设计一个能够在不同状态提供商之间平均分配负载的系统。
每个状态提供商都会为每一个新区块生成证明。状态提供商会按照距离其节点ID的远近对该证明包含的每项数据进行排序,先从那些距离最近的数据开始,查询对这些数据感兴趣的节点,并将它们广播出去。在这个模型中,负载会在不同状态提供商之间平均分配。等轮到那些距离其节点ID较远的数据时,状态提供商会发现节点对这些数据的兴趣减弱,因为其节点ID距离这些数据较近的提供商已经广播了这些数据。
可以改进/扩展/优化之处
或许,我们可以稍微优化一下这个方案。
我们的网络结构需要存储的不仅是叶节点,还有中间节点。也就是说,如果按叶子节点和对等节点的需要来分割区块证明,这些碎片证明之间会出现大量重叠。例如,当要你要证明一个叶节点的时候,其证明中也会包含对其默克尔路径上所有中间节点的数据的证明。
如果网络中的某个节点想存储某个叶子,TA当然希望获得该叶子节点的中间节点也可以在网络中找到。如果这些中间节点不可得,甚至都没有人会请求叶子节点数据,因为本地还没有中间节点的数据,还没法顺着这些中间节点发现对叶子节点的需要。我们或许可以利用这一点在整个网络中分散广播数据的责任。
状态提供商只通过gossip方式广播叶节点数据的证明。
节点一收到自己想要存储的内容的证明,就会找出“父证明”——对上一级中间节点数据的证明——并发送出去。
这一“递归”过程可以让状态提供商只需将叶节点数据发送至网络,并将广播中间节点数据的责任分配给那些对叶节点数据感兴趣的节点。这些节点会一级一级地把上一层级的中间节点的数据的证明推送到网络中,直到所有节点都把最终的状态根推送到网络中。
原文链接:
https://ethresear.ch/t/scalable-gossip-for-state-network/8958
作者:??PiperMerriam
翻译&校对:?闵敏&?阿剑
链闻消息,去中心化钱包imToken宣布与以太坊扩容团队MatterLabs达成深度合作,将支持其Rollup方案zkSync.
1900/1/1 0:00:003月29日,EOS创始人DanLarimer发表针对新治理系统EdenOS路线图的建议。据介绍,EdenOS旨在使EOS主网成为"任何区块链中最去中心化、最透明、最民主的治理过程",且将在EOS.
1900/1/1 0:00:00全球最大资产管理公司之一纽约梅隆银行发布了一份报告,报告将比特币与黄金进行了比较,并强调了S2F模型,以评估数字资产的价格及其在实体经济中的作用.
1900/1/1 0:00:00尊敬的用户:????为了给您带来更好的交易体验,我们将于新加坡时间2021年3月14日1:00-2:00(UTC8)停服升级,请您提前做好相应安排,如升级提前完成我们会以公告形式通知.
1900/1/1 0:00:00链闻消息,Layer2DAO基础协议Metis宣布完成300万美元A轮融资,主要投资人包括BlockDreamFund、GenblockCapital、CryptomeriaCapital、Co.
1900/1/1 0:00:00链闻消息,加密货币社交投资平台Kikitrade宣布完成800万美元A轮融资,由区块链创投基金DragonflyCapital、心元资本及区块链游戏公司AnimocaBrands联合领投.
1900/1/1 0:00:00