Go-Schnorrkel is Audited
Authored by Timothy Hao Chi Ho
Trail of Bits completes audit of the Schnorrkel library implemented in Go
In August 2021, ChainSafe engaged with Trail of Bits to conduct an independent audit of ChainSafe's implementation of Web3 Foundation's Schnorrkel cryptographic signature library in Golang (‘go-schnorrkel'').
The original Schnorrkel library is a general-purpose signature scheme implemented in Rust that improves safety for blockchain applications. It is the default signing algorithm for Substrate-based chains, and by association, this makes it the primary signature scheme for Polkadot.
ChainSafe reimplemented Schnorrkel in pure Go as go-schnorrkel for the Polkadot Host in Golang ‘Gossamer'. It is interoperable with the original Rust library. You can read more about go-schnorrkel from our original announcement.
Since its release, the library has become a linchpin for the entire Go-Polkadot ecosystem, having found usage in Gossamer and go-subkey, a Polkadot keys tool written in Go. Additionally, it has gained usage within the Cosmos ecosystem as a built-in signature scheme for the Cosmos-SDK. This makes go-schnorrkel a dependency for all projects leveraging the Cosmos-SDK.
In August 2021, Trail of Bits - a renowned computer & network security company - was requested to audit the library. This was especially important as dependencies on it have grown since its release. The audit took place over two weeks and consisted of a manual code review and conformance testing with the original rust-schnorrkel implementation.
You can find the full audit report here.
About ChainSafe
ChainSafe is a leader in blockchain development and infrastructure solutions for Web3. We're working toward a more decentralized future by building client implementations for Ethereum, Filecoin, Polkadot, and Mina. We're also maintaining the Web3.js library, working on a Gaming SDK that connects NFTs to Unity, building a distributed cloud storage application, and bootstrapping a multi-chain bridge. To learn more, click here.
Want to help build the foundations of Web3? Join us!
Have a question, comment, or suggestion? Drop into our Discord and join the conversation! We're also always looking for talented people. Check out our open positions and get in touch ➡️➡️ careers@chainsafe.io