Skip to content

The Canton blockchain protocol

The Canton blockchain protocol

A scalable, privacy-enabled enterprise blockchain protocol

Build Daml applications that span across trust boundaries with strong privacy and integrity

The Canton protocol is a blockchain protocol for linking Daml applications across participants and organizations. Daml defines who is entitled to see, and who is authorized to change any given contract. Canton enforces these visibility and authorization rules, and ensures transaction integrity with very high levels of privacy, even in the presence of malicious actors.

Daml is an enterprise grade, open-source smart contract language for building multi-party distributed applications on a safe, privacy-aware runtime.

Key features of the Canton protocol

Global composability

Different Daml applications can interoperate using the Canton protocol. Digital assets and workflows can move between participant nodes and be recorded in multiple ledgers.

Privacy and GDPR compliance

The Canton protocol supports sub-transaction privacy, meaning that parties can only see the part of a transaction that specifically applies to them. It is built around the principle of data minimization and enables adhering to the right to be forgotten regulations.

Integrity

The Canton protocol ensures your ledger is always in a valid state, and a corrupted state never occurs—even in the presence of malicious actors.

Horizontal scalability

The Canton protocol has no upper bound on how many transactions per second it can process. It can be scaled to achieve any transaction processing speed.

Elements of the Canton protocol

Parties

In Canton, parties can create, or participate in, distributed workflows written in Daml. A party can be a legal entity, a physical person, or just one of many accounts for a person/entity.

Participant nodes

Parties register with one or more participant nodes. Nodes can host multiple parties and facilitate party access to the ledger.

Sync domains

Every participant node can connect to any number of other participant nodes using the Canton protocol. These connections are managed by synchronization domains, aka sync domains.

Sync domains route messages among a set of participant nodes, provide a consistent transaction order for those nodes, and confirm transaction commits on those nodes. 

A sync domain can be implemented in different ways, depending on trust requirements. If a highly trusted operator exists the sync domain can be implemented in a centralized way. Sync domains can also be implemented in a decentralized deployment to reduce trust requirements for its operators. 

All transaction data transferred between participant nodes is end-to-end encrypted and only selectively shared with other participant nodes, on a strict need to know basis. The sync domains, therefore, do not learn the transaction contents. Also, the Canton protocol guarantees the integrity of ledgers across participant nodes, even in the presence of malicious participants. 

The virtual global ledger

Participant nodes can at any point choose to connect to multiple domains and transfer workflows between those domains.

Therefore, domains do not impose hard boundaries, and participant nodes effectively participate in a virtual global ledger, which is composed of all participant nodes, linked via multiple sync domains.

The virtual global ledger is the underlying concept and does not exist physically, but is the result of the Canton protocol’s integrity, privacy, auditability and transparency guarantees.

Segregated private sync domains

While all sync domains are conceptually part of the virtual global ledger, they can also be operated by private entities, and limit connections by participant nodes. No outsider will know that a private sync domain even exists. Nevertheless, participants are not locked into their decision, as they can always connect and transfer their smart contracts to other domains and still benefit from the integrity, transparency and privacy guarantees of the virtual global ledger. 

The Canton protocol also supports the option to create public sync domains on the Canton Network which can act as a generally available infrastructure for linking participant nodes and forming distributed ledgers on demand.

About Canton blockchain protocol

Resources

How to get started with Canton

Canton releases are on GitHub. Simply follow the Getting Started tutorial.

Resources

Canton blockchain protocol whitepaper

Read our Whitepaper to learn about the vision for the Canton protocol.

Resources

Documentation page

Learn how to implement privacy and composability with the Canton protocol.

Resources

Daml Developers Community

Connect with your peers and get answers to questions on the Canton blockchain protocol.