之前写在语雀https://www.yuque.com/jasonzhouu/ou0kee/vpqdng,复制到这里。
bloXroute 的作用就像它的名字一样:“block router"。
它用于传播区块,降低区块数据的广播延迟。且对上层的区块链没有要求,任何区块链项目都可以结合它使用。
现有的问题
现有的很多区块链项目的广播区块数据用的是 gossip 协议,即矿工打包出新的区块后,发送给连接的几个节点。这些节点再发送给它们所连接的节点,就这样一传十、十传百的传播。这种传播方式非常去中心化,很难被控制或监管。但是一个区块需要经过多个中间人才能到达所有其他节点,延迟比较长,全网达成共识需要更长时间。
改进方法
- 中心网关:包括矿工在内的节点都连接到 bloXroute 的网关服务器,区块和交易通过这个网关进行广播。节点在运行区块链客户端的同时,还运行一个 bloXroute 的客户端,以连接到 bloXroute 网关。
- cut-through block routing: 接受到区块数据的第一个字节后,就立即开始将其广播到其他节点,而不等待区块完整下载下来并验证通过后再广播。这个方法之前在 Falcon (上一代的加速方案)中被应用。
- 缓存:广播的区块数据包并不包含完整的交易,而只包含交易的 ID,从而减小区块体积,加快区块传播速度。bloXroute 网关存储着交易 ID 和对应交易数据的映射,其他节点获取区块头之后,根据其中所包含的交易 ID 索引获取对应的交易数据。拿比特币举例,一笔 540 字节的交易只需要传播 4 字节的 ID,从而将第一个数据包的体积减少 100 多倍。
网络中立性
因为引入中心,有可能会带来:
- discrimination:对区块区别对待。通过寻租从中牟利,或者因为政府监管,而设置 blacklist/whitelist,故意阻拦、减缓某些矿工的区块广播,而加快另外一个矿工的区块广播。
- censorship:作为审查中心,故意阻止某些交易的广播。
- single point of failure
为了解决这些问题,所以:
- 加密区块数据:矿工发送区块数据之前,先进行对称加密,等区块数据被被 bloXroute 广播到其他节点之后,再广播密钥。
- test:区块链节点定期向 bloXroute 网关发送数据进行测试,因为数据是加密的,所以 bloXroute 无法判断哪些是测试数据,只能把测试数据也进行广播。区块链节点可以根据测试结果,判断 bloXroute 是否表现正常。
- relay:类似 Tor 的原理,区块数据不是直接发送给 bloXroute 网关,而是先传递给 P2P 网络中的另外一个节点,由它发送到 bloXroute 网关,以达到隐藏 source address 的目的。
盈利方式
从矿工的交易费中收取一定份额,以及发行BLXR ERC20代币。
公司介绍
总部在芝加哥,在以色列的特拉维夫有个 5 人团队,总共有 25 个员工,70%是工程师。
正在开发第一版,支持 BTC, BCH, ETH。预期今年 7 月份发布,并提供开源 API 以提供与其他区块链对接,很欢迎其他区块链项目跟他合作。
缺陷
- single point of failure:ISP 可以阻止 bloXroute 网关的运行,不过客户端可以通过测试发现这种状况,切换到传统的 gossip 协议传播。
- 中心化:区块链项目结合它提高 TPS 后,将提高运行全节点的成本,减少全节点数量,降低作恶成本和安全性。
参考
- https://bloxroute.com/resources/ bloXroute 白皮书
- https://mp.weixin.qq.com/s/Jbi34CMsmMfnAZDczv92Fw Aleksandar Kuzmonovic 的杭州路演
- Did bloXroute Crack the Scalability Puzzle? -- Emin Gün Sirer - YouTube Emin 的线上采访
- bloXroute: A Network for Tomorrow's Blockchain - SBC '19 - YouTube CTO 在斯坦福区块链峰会的演讲