Sharding is a promising technique for addressing the scalability issues of blockchain. It divides the $n$ participating nodes into $s$ disjoint groups called shards, where each shard processes transactions in parallel. We investigate scheduling algorithms for the blockchain sharding systems, where each transaction resides in a shard of the communication graph and attempts to access accounts at possibly remote shards. We examine batch scheduling problems on the shard graph $G_s$, where given a set of transactions, we aim to find efficient schedules to execute them as fast as possible. First, we present a centralized scheduler where one of the shards has global knowledge of transactions to be processed. For general graphs, where the transaction and its accessing objects are arbitrarily far from each other with a maximum distance $d$, the centralized scheduler provides $O(kd)$ approximation to the optimal schedule, where $k$ is the maximum number of shards each transaction accesses. Consequently, for a Clique graph where shards are at a unit distance from each other, we obtain $O(k)$ approximation to the optimal schedule. We also get $O(k \log s)$ approximation for Hypercube, Butterfly, and $g$-dimensional Grid, where $g=O(\log s)$. Next, we provide a centralized scheduler with a bucketing approach that offers improved bounds for special cases. Finally, we provide a distributed scheduler where shards do not require global transaction information. We achieve this by using a hierarchical clustering of the shards and using the centralized scheduler in each cluster. We show that the distributed scheduler has a competitive ratio of $O(\mathcal{A_\mathcal{CS}} \log ^2 s)$, where $\mathcal{A_\mathcal{CS}}$ is the approximation ratio of the centralized scheduler. To our knowledge, we are the first to give provably fast transaction scheduling algorithms for blockchain sharding systems.
翻译:分片是解决区块链可扩展性问题的一种前景广阔的技术。它将 $n$ 个参与节点划分为 $s$ 个不相交的组,称为分片,每个分片并行处理交易。我们研究了区块链分片系统中的调度算法,其中每笔交易位于通信图的一个分片中,并试图访问可能位于远程分片中的账户。我们研究了分片图 $G_s$ 上的批量调度问题:给定一组交易,我们的目标是找到高效的调度方案,以尽可能快地执行它们。首先,我们提出了一种集中式调度器,其中一个分片拥有待处理交易的全局信息。对于一般图,交易及其访问对象之间的最大距离为 $d$,集中式调度器提供的调度方案与最优调度相比具有 $O(kd)$ 的近似比,其中 $k$ 是每笔交易访问的最大分片数。因此,对于分片间距离为单位距离的 Clique 图,我们获得了与最优调度相比 $O(k)$ 的近似比。对于 Hypercube、Butterfly 和 $g$ 维 Grid(其中 $g=O(\log s)$),我们获得了 $O(k \log s)$ 的近似比。接下来,我们提供了一种采用分桶方法的集中式调度器,为特殊情况提供了更优的界。最后,我们提供了一种分布式调度器,其中分片不需要全局交易信息。我们通过使用分片的层次聚类并在每个聚类中使用集中式调度器来实现这一点。我们证明了该分布式调度器的竞争比为 $O(\mathcal{A_\mathcal{CS}} \log ^2 s)$,其中 $\mathcal{A_\mathcal{CS}}$ 是集中式调度器的近似比。据我们所知,我们是首个为区块链分片系统提供可证明快速的交易调度算法的研究。