{"id":"o7v-qH-R_Kc","title":"Lesson 2: Canton Protocol","description":"For a better learning experience, sign up and enroll in this free course at: https://daml.talentlms.com/plus/catalog/courses/153","channel_name":"Digital Asset Training","published_at":"2025-02-20T00:00:00.000Z","thumbnail_url":"https://i.ytimg.com/vi/o7v-qH-R_Kc/hqdefault.jpg","transcript_text":"the Canton protocol is a layer one blockchain protocol that processes and finalizes transactions between the participant nodes it does this by orchestrating the flow of messages between the participant noes and the other components of a Canton sync domain the sequencer and mediator in this lesson you will learn about this orchestration let us take a scenario to trace the flow of messages over the Canton Network the scenario uses a delivery versus payment or DVP workflow Alice and Bob are two parties in a contractual relationship in which Alice wants to buy an asset that Bob owns she will transfer $100 to Bob for that asset for this exchange there are two other parties the bank where Alice has her $100 and a central Securities depository which has Bob's asset in addition to this workflow there are other important requirements first the entire transaction must happen atomically when Alice confirms receipt of the asset only then should $100 be transferred to Bob second the CSD should only see the asset being sent to Bob and not the exchange of $100 similarly the bank should only see the transfer of money and not the asset the Canton protocol plays out the entire transaction in several steps these steps are performed by different elements in the Canon Network the first step is for the sender's participant node to interpret the transaction we will look at interpretation in more detail later but for now think of it as a step where the participant node checks the code locally against its private contract store or PCS to make sure that it is a valid transaction it decomposes the transaction into subtransaction and creates projections or views for each party it creates what the recipient nodes need to update in their private contract stores once interpreted the participant node blinds the decomposed views by encrypting them using the recipient nodes public Keys then these encrypted views are submitted to the sync domain in the Second Step the submitting participant note distri distributes the transaction to other counterparties via a sequencer the sequencer orders and timestamps messages and then passes them on to recipients in the third step the recipient participant nodes validate the new subtransaction against their own private contract stores if they find the transaction to be valid they send their confirmation to the mediator in the fourth step the mediator Aggregates the confirmations coming from all validating participants once all participant nodes have confirmed it broadcasts that the transaction can now be confirmed finally once each node receives this confirmation message it commits the transaction in its PCS by having a single commit message from the mediator to Mark the final commit that is consistently ordered and timestamped for all nodes by the sequencer the protocol ensures that all transactions are either committed at a consistent point in time with all nodes or none at all now let us take a closer look at the process of transaction interpretation since Alice and Bob are the two parties engaged in a DVP transaction both of them will have full visibility into the exchange of $100 and the asset we will call what is visible to them as view one in the subtransaction where Alice's account is debited the bank will also have visibility along with Alice and Bob we will call this view to in the subtransaction where Bob's account is credited that is view three once again the bank will be able to see that step on the other side the CSD can see Bob's name being removed from the assets ownership this is view four in view five the CSD can see the asset now being assigned to Alice Alice and Bob can see all the views the bank can see views two and three the CSD can see views four and five this act of separating the views and creating a view tree is called transaction interpretation each of these views is annotated for the intended parties the submitting node interprets the transaction by creating its transaction tree and generating a view tree annotates the views for each of the recipients and then encrypts these views with the recipient public keys let us now see a complete endtoend flow starting from the initial step where Alice submits her transaction we see Alice Bob the bank and the CSD at their own participant nodes they are connected through a sync domain that has a sequencer a sequencer backend and a mediator Alice submits her transaction her participant node checks the code locally against its private contract store to make sure that it is a valid transaction it then decomposes the transaction into subtransaction and creates a view tree Once validated the participant node blinds the decomposed views by encrypting them using the recipient party's public Keys then submits these encrypted views to the sync domain this way only the intended parties can read their views the bundle of views submitted to the sync domain is called a confirmation request as the submitting node is SE seeking confirmation from all the parties involved before committing this transaction the sequencer assigned to the participant node picks up the messages adds a time stamp and Records them into its backend which may be a database or a blockchain system as the underlying persistent layer these steps are called sequencing note that there may be one sequencer per participant the diagram here shows a single logical sequencer for Simplicity it then forwards those individual views to the intended participant nodes where the recipient parties are registered so Alice's node gets the message marked for Alice Bob's node gets the message marked for Bob bank's node gets the message marked for bank and the CD's node gets the message marked for CSD it also informs the mediator that a particular transaction will be validated and confirmed by certain parties and nodes the recipient participant nodes decrypt and validate the new transaction against their own private contract stores if they find the transaction to be valid they send their confirmation to the mediator via the sequencer the job of a mediator is to aggregate the confirmations coming from all participants and once all participant nodes have confirmed inform the sequencer that the transaction has been confirmed then the sequencer informs all par participant nodes to commit the transaction finally all participant nodes commit the transaction in their local data store in this way the Canton protocol ensures that all transactions are either committed with all nodes at the same time or not at all the illustration in this example shows a single domain with a single sequencer and a single mediator but there can be multiple sync domains with multiple sequencers and mediators interacting with the participant nodes and with each other in a distributed fashion Canton protocol manages synchronization across multiple sync domains using its synchronization layer to summarize the Canton network has different components playing different roles when a transaction submitted by a party traverses through the network to reach the involved parties it starts with the submitting participant node interpreting encrypting and submitting the subtransaction to the domain the sequencer in the domain sequences these messages timestamps and multicasts them to the recipient nodes these nodes receive their respective subtransaction validate them and send their confirmation back to the sync domain where the mediator Aggregates these confirmations and informs the sequencer the sequencer then multicasts confirmations to all the participating nodes which then commit the transaction in their local PCS in this way the Canton protocol ensures atomicity of transactions and preserves privacy of the data that flows omit the transaction","transcript_synced_at":"2026-10-26T04:01:19.564Z","segments":[{"start_seconds":4,"text":"the Canton protocol is a layer one blockchain protocol that processes and finalizes transactions between the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=4s"},{"start_seconds":12,"text":"participant nodes it does this by orchestrating the flow of messages between the participant noes and the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=12s"},{"start_seconds":19,"text":"other components of a Canton sync domain the sequencer and mediator in this lesson you will learn about this","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=19s"},{"start_seconds":27,"text":"orchestration let us take a scenario to trace the flow of messages over the Canton Network the scenario uses a","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=27s"},{"start_seconds":34,"text":"delivery versus payment or DVP workflow Alice and Bob are two parties in a contractual relationship in which","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=34s"},{"start_seconds":43,"text":"Alice wants to buy an asset that Bob owns she will transfer $100 to Bob for that asset for this exchange there are","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=43s"},{"start_seconds":52,"text":"two other parties the bank where Alice has her $100 and a central Securities depository which has Bob's asset","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=52s"},{"start_seconds":60,"text":"in addition to this workflow there are other important requirements first the entire transaction must happen","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=60s"},{"start_seconds":68,"text":"atomically when Alice confirms receipt of the asset only then should $100 be","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=68s"},{"start_seconds":74,"text":"transferred to Bob second the CSD should only see the asset being sent to Bob and not the exchange of","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=74s"},{"start_seconds":83,"text":"$100 similarly the bank should only see the transfer of money and not the asset the Canton protocol plays out the entire","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=83s"},{"start_seconds":92,"text":"transaction in several steps these steps are performed by different elements in the Canon Network the first step is for","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=92s"},{"start_seconds":100,"text":"the sender's participant node to interpret the transaction we will look at interpretation in more detail later but","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=100s"},{"start_seconds":108,"text":"for now think of it as a step where the participant node checks the code locally against its private contract store or","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=108s"},{"start_seconds":115,"text":"PCS to make sure that it is a valid transaction it decomposes the transaction into subtransaction and","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=115s"},{"start_seconds":124,"text":"creates projections or views for each party it creates what the recipient nodes need to update in their private","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=124s"},{"start_seconds":131,"text":"contract stores once interpreted the participant node blinds the decomposed views by encrypting them using the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=131s"},{"start_seconds":139,"text":"recipient nodes public Keys then these encrypted views are submitted to the sync domain in the Second Step the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=139s"},{"start_seconds":148,"text":"submitting participant note distri distributes the transaction to other counterparties via a sequencer the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=148s"},{"start_seconds":154,"text":"sequencer orders and timestamps messages and then passes them on to recipients in the third step the recipient participant","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=154s"},{"start_seconds":163,"text":"nodes validate the new subtransaction against their own private contract stores if they find the transaction to","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=163s"},{"start_seconds":170,"text":"be valid they send their confirmation to the mediator in the fourth step the mediator Aggregates the confirmations","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=170s"},{"start_seconds":178,"text":"coming from all validating participants once all participant nodes have confirmed it broadcasts that the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=178s"},{"start_seconds":185,"text":"transaction can now be confirmed finally once each node receives this confirmation message it commits the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=185s"},{"start_seconds":193,"text":"transaction in its PCS by having a single commit message from the mediator to Mark the final","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=193s"},{"start_seconds":200,"text":"commit that is consistently ordered and timestamped for all nodes by the sequencer the protocol ensures that all","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=200s"},{"start_seconds":207,"text":"transactions are either committed at a consistent point in time with all nodes or none at all now let us take a closer","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=207s"},{"start_seconds":215,"text":"look at the process of transaction interpretation since Alice and Bob are the two parties engaged in a DVP","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=215s"},{"start_seconds":223,"text":"transaction both of them will have full visibility into the exchange of $100 and the asset we will call what is visible","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=223s"},{"start_seconds":232,"text":"to them as view one in the subtransaction where Alice's account is debited the bank will also have","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=232s"},{"start_seconds":238,"text":"visibility along with Alice and Bob we will call this view to in the subtransaction where Bob's account is","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=238s"},{"start_seconds":246,"text":"credited that is view three once again the bank will be able to see that step on the other side the CSD can see Bob's","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=246s"},{"start_seconds":254,"text":"name being removed from the assets ownership this is view four in view five the CSD can see the asset now being","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=254s"},{"start_seconds":262,"text":"assigned to Alice Alice and Bob can see all the views the bank can see views two and three","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=262s"},{"start_seconds":270,"text":"the CSD can see views four and five this act of separating the views and creating a view tree is called transaction","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=270s"},{"start_seconds":279,"text":"interpretation each of these views is annotated for the intended parties the submitting node interprets the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=279s"},{"start_seconds":286,"text":"transaction by creating its transaction tree and generating a view tree annotates the views for each of the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=286s"},{"start_seconds":294,"text":"recipients and then encrypts these views with the recipient public keys let us now see a complete endtoend flow","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=294s"},{"start_seconds":301,"text":"starting from the initial step where Alice submits her transaction we see Alice Bob the bank","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=301s"},{"start_seconds":309,"text":"and the CSD at their own participant nodes they are connected through a sync domain that has a sequencer a sequencer","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=309s"},{"start_seconds":317,"text":"backend and a mediator Alice submits her transaction her participant node checks the code","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=317s"},{"start_seconds":324,"text":"locally against its private contract store to make sure that it is a valid transaction it then decomposes the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=324s"},{"start_seconds":331,"text":"transaction into subtransaction and creates a view tree Once validated the participant node blinds the decomposed","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=331s"},{"start_seconds":340,"text":"views by encrypting them using the recipient party's public Keys then submits these encrypted views to the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=340s"},{"start_seconds":346,"text":"sync domain this way only the intended parties can read their views the bundle of views submitted to the sync domain is","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=346s"},{"start_seconds":355,"text":"called a confirmation request as the submitting node is SE seeking confirmation from all the parties involved before committing this","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=355s"},{"start_seconds":364,"text":"transaction the sequencer assigned to the participant node picks up the messages adds a time stamp and Records","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=364s"},{"start_seconds":371,"text":"them into its backend which may be a database or a blockchain system as the underlying persistent layer these steps","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=371s"},{"start_seconds":379,"text":"are called sequencing note that there may be one sequencer per participant the diagram here shows a single logical","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=379s"},{"start_seconds":387,"text":"sequencer for Simplicity it then forwards those individual views to the intended participant nodes where the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=387s"},{"start_seconds":394,"text":"recipient parties are registered so Alice's node gets the message marked for Alice Bob's node gets the message marked","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=394s"},{"start_seconds":402,"text":"for Bob bank's node gets the message marked for bank and the CD's node gets the message marked for CSD it also","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=402s"},{"start_seconds":411,"text":"informs the mediator that a particular transaction will be validated and confirmed by certain parties and nodes","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=411s"},{"start_seconds":418,"text":"the recipient participant nodes decrypt and validate the new transaction against their own private contract","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=418s"},{"start_seconds":425,"text":"stores if they find the transaction to be valid they send their confirmation to the mediator via the sequencer the job","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=425s"},{"start_seconds":434,"text":"of a mediator is to aggregate the confirmations coming from all participants and once all participant","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=434s"},{"start_seconds":441,"text":"nodes have confirmed inform the sequencer that the transaction has been confirmed then the sequencer informs all","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=441s"},{"start_seconds":449,"text":"par participant nodes to commit the transaction finally all participant nodes commit the transaction in their","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=449s"},{"start_seconds":456,"text":"local data store in this way the Canton protocol ensures that all transactions are either committed with all nodes at","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=456s"},{"start_seconds":464,"text":"the same time or not at all the illustration in this example shows a single domain with a single sequencer","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=464s"},{"start_seconds":472,"text":"and a single mediator but there can be multiple sync domains with multiple sequencers and mediators interacting","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=472s"},{"start_seconds":479,"text":"with the participant nodes and with each other in a distributed fashion Canton protocol manages synchronization across","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=479s"},{"start_seconds":487,"text":"multiple sync domains using its synchronization layer to summarize the Canton network has different components","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=487s"},{"start_seconds":495,"text":"playing different roles when a transaction submitted by a party traverses through the network to reach the involved parties it starts with the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=495s"},{"start_seconds":503,"text":"submitting participant node interpreting encrypting and submitting the subtransaction to the domain the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=503s"},{"start_seconds":511,"text":"sequencer in the domain sequences these messages timestamps and multicasts them to the recipient nodes these nodes","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=511s"},{"start_seconds":519,"text":"receive their respective subtransaction validate them and send their confirmation back to the sync domain where the mediator Aggregates these","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=519s"},{"start_seconds":527,"text":"confirmations and informs the sequencer the sequencer then multicasts confirmations to all the participating","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=527s"},{"start_seconds":535,"text":"nodes which then commit the transaction in their local PCS in this way the Canton protocol ensures","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=535s"},{"start_seconds":543,"text":"atomicity of transactions and preserves privacy of the data that flows omit the","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=543s"},{"start_seconds":562,"text":"transaction","url":"https://www.youtube.com/watch?v=o7v-qH-R_Kc&t=562s"}],"youtube_url":"https://youtube.com/watch?v=o7v-qH-R_Kc","url":"https://ccpedia.xyz/videos/o7v-qH-R_Kc"}