You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Tracking: optimization of cryptographic algorithm implementations #6376
Describe the feature
This tracking issue includes all work related to the optimization of cryptographic algorithm implementations, including related sub-issues and pull requests.
About one month ago, we started two full nodes to test the optimized BN128 precompiled contracts and the ECKeyV2 synchronization. The first full node began syncing from block 0, while the second node started from block 51,156,712.
Currently, the first node has synced up to block 34,569,049, and the second node has synced up to 73,063,249. So far, synchronization has been running smoothly on both nodes. During the sync process, we also monitored whether any on-chain contracts were invoking BN128 precompiled contracts. The results show:
For BN128Addition and BN128Multiplication, they have been called by contract with method signature 73fa58f5. Its source code can be traced to here.
For the BN128Pairing precompiled contract, we found multiple contract addresses—such as TLsHCcjPY7U6PFrZtJoVEbraKNL5dexyp9, TBd2mjyFMS2BKLZvJ3aJdVn43PBBk45737, and TEFGPUn8zJoHvod7bZbRRytnPmz32QYSLu—invoking it. All of these contracts were deployed by the same address, and none of them has published source code. A small number of BN128Pairing transactions succeeded, for example: tx. However, most transactions failed, such as: tx. Failures appear to be caused by reasons such as transaction timeout or invalid execution.
These findings indicate that although a few contracts attempt to call the BN128Pairing precompile on mainnet, the majority of these transactions fail, meaning the feature is effectively unusable in its current state. Therefore, optimizing the BN128 precompiled contracts is necessary.
Activity
Federico2014 commentedon Nov 28, 2025
About one month ago, we started two full nodes to test the optimized
BN128precompiled contracts and theECKeyV2synchronization. The first full node began syncing from block 0, while the second node started from block 51,156,712.Currently, the first node has synced up to block 34,569,049, and the second node has synced up to 73,063,249. So far, synchronization has been running smoothly on both nodes. During the sync process, we also monitored whether any on-chain contracts were invoking
BN128precompiled contracts. The results show:BN128AdditionandBN128Multiplication, they have been called by contract with method signature73fa58f5. Its source code can be traced to here.BN128Pairingprecompiled contract, we found multiple contract addresses—such as TLsHCcjPY7U6PFrZtJoVEbraKNL5dexyp9, TBd2mjyFMS2BKLZvJ3aJdVn43PBBk45737, and TEFGPUn8zJoHvod7bZbRRytnPmz32QYSLu—invoking it. All of these contracts were deployed by the same address, and none of them has published source code. A small number ofBN128Pairingtransactions succeeded, for example: tx. However, most transactions failed, such as: tx. Failures appear to be caused by reasons such as transaction timeout or invalid execution.These findings indicate that although a few contracts attempt to call the
BN128Pairingprecompile on mainnet, the majority of these transactions fail, meaning the feature is effectively unusable in its current state. Therefore, optimizing theBN128precompiled contracts is necessary.halibobo1205 commentedon May 15, 2026
Closing this tracking issue. Further progress will be tracked in #6374 — please follow updates there for the latest status. Thanks @Federico2014!