# 通信プロトコルのシーケンス図 ###### tags: `Yellow paper` `通信プロトコル` ## ユーザとオペレーター間通信 ### Transfer ```mermaid sequenceDiagram actor T as Transactor participant O as Operator participant P as Prover participant L as L1 Contract autonumber T ->> T : zkp(verifyuserStateValue) T ->> T : zkp(verifySignedTx) T ->> O : transfer(zkp, tx) O ->> O : verify(zkp) O ->> O : aggregate tx O ->> O : state change P ->> O : get zkp input O ->> P : zkp input P ->> O: zkp(state) O ->> L : commit block ``` ### Update User State Diff ```mermaid sequenceDiagram actor T as Transactor participant O as Operator participant P as Prover participant L as L1 Contract autonumber T ->> T : zkp(verifyUpdateStateDiff) T ->> O : updateUserStateDiff(zkp, newUserMerkleRoot) O ->> O : verify(zkp) O ->> O : aggregate tx O ->> O : state change P ->> O : get zkp input O ->> P : zkp input P ->> O: zkp(state) O ->> L : commit block ``` ### Exit(normarl mode) ```mermaid sequenceDiagram actor T as Transactor participant O as Operator participant P as Prover participant L as L1 Contract autonumber T -> T : zkp(proveUserStateChange) T ->> O : exit(zkp) O ->> O : verify(zkp) O ->> O : aggregate tx O ->> O : state change P ->> O : get zkp input O ->> P : zkp input P ->> O: zkp(state) O ->> L : commit block L ->> T : transfer assets ``` ## ユーザーとL1ブロックチェーン間通信 ### Exit(freeze mode) ```mermaid sequenceDiagram actor T as Transactor participant L as L1 Contract autonumber L ->> L : freeze mode T ->> T : zkp(proveUserStateChange) T ->> T : zkp(proveNoUpdateUserState) T ->> L : exit(zkp) L ->> T : transfer assets ```