Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project Smoot proposal upload #24

Open
wants to merge 14 commits into
base: gh-pages
Choose a base branch
from

Conversation

weijia31415
Copy link

This is project smoot proposal upload for TAC review and approval. Project Smoot was originally named as project Lattice under the review of Peter and Rama. It has been renamed as Project Smoot per feedback and recommendations from David.

This is project smoot proposal upload for TAC review and approval.
Project Smoot was originally named as project Lattice under the review of Peter and Rama.  It has been renamed as Project Smoot per feedback and recommendations from David.  

Signed-off-by: weijia31415 <[email protected]>
@weijia31415 weijia31415 requested a review from a team as a code owner February 15, 2025 01:40
@weijia31415
Copy link
Author

Merge the PR from Wanchain's fork to LFDT per Tracy's recommendation.

@tkuhrt
Copy link
Contributor

tkuhrt commented Feb 17, 2025

@weijia31415 : We will discuss this at the TAC meeting on February 20th. You can find the meeting invite on the LF Decentralized Trust's community calendar. Please do let us know if you will not be able to make it.

weijia31415 and others added 3 commits February 18, 2025 10:08
Co-authored-by: Tracy Kuhrt <[email protected]>
Signed-off-by: weijia31415 <[email protected]>
Co-authored-by: Tracy Kuhrt <[email protected]>
Signed-off-by: weijia31415 <[email protected]>
Co-authored-by: Tracy Kuhrt <[email protected]>
Signed-off-by: weijia31415 <[email protected]>
@weijia31415
Copy link
Author

@weijia31415 : We will discuss this at the TAC meeting on February 20th. You can find the meeting invite on the LF Decentralized Trust's community calendar. Please do let us know if you will not be able to make it.

Thanks Tracy. I have a schedule conflict for Feb.20 TAC meeting with EEA workgroup meeting. I am available the following week on Feb.27 at the same time, or one hour earlier on Feb.20.

weijia31415 and others added 8 commits February 18, 2025 10:12
Co-authored-by: Tracy Kuhrt <[email protected]>
Signed-off-by: weijia31415 <[email protected]>
Co-authored-by: Tracy Kuhrt <[email protected]>
Signed-off-by: weijia31415 <[email protected]>
Signed-off-by: weijia31415 <[email protected]>
Signed-off-by: weijia31415 <[email protected]>
Update image link of project-smoot.md
@weijia31415 weijia31415 requested a review from tkuhrt February 18, 2025 03:38
@tkuhrt
Copy link
Contributor

tkuhrt commented Feb 18, 2025

@weijia31415 : We will discuss this at the TAC meeting on February 20th. You can find the meeting invite on the LF Decentralized Trust's community calendar. Please do let us know if you will not be able to make it.

Thanks Tracy. I have a schedule conflict for Feb.20 TAC meeting with EEA workgroup meeting. I am available the following week on Feb.27 at the same time, or one hour earlier on Feb.20.

We will schedule this for February 27th TAC meeting @weijia31415 (cc: @LF-Decentralized-Trust/tac)

Harmonia implements the Enterprise Ethereum Alliance's DLT Interoperability Specification's transaction messaging methods. Project Smoot will focus on implementing the event messaging method. The Smoot team will also explore the possibility of combining Project Smoot with Harmonia.

* Hyperledger Cacti
Cacti is an interoperability project that builds routing mechanisms for cross-chain minting and burning of assets. There are some common components that can be developed with various interoperability projects. For example, the cross-chain network identifier can be standardized so that different projects can use the same specification for blockchain identities.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a document to discuss the gaps within the interoperability space? I am interested in visualizing how these different projects complement each other.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our EEA InterOp specification lists multiple mechanisms for blockchain interop and contains a table showing the characteristic (and limitations) of each mechanism for visualization. The link of the EEA specification is in the reference section of the proposal.


* Various layering mechanisms including Multisig relay, MPC relay, and ZKP relay

**Multisig relay:** a mechanism that leverages multi-signature consensus for relaying messages across blockchains. In this approach, the message originating from a source chain is cryptographically signed by multiple independent relay nodes. These relay nodes or validators have public key signatures that are registered and verified against a whitelist of trusted nodes maintained on the target chain's smart contract. The relay nodes' signatures on the message are aggregated and attached to the communication payload sent from the source chain to the smart contract on the target chain.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Suggestion: s/whitelist/allowlist/

The architecture of Smoot is composed of three layers: the Messaging Layer, the Function Calls Layer, and the Application Layer.

* The Crosschain Messaging Layer facilitates the secure exchange of data and events between networks, ensuring the integrity and validity of information passing between them. This is the communication backbone, ensuring that events generated on one network can be trusted on another. This layer is foundational to the trustless nature of DLTs, providing the mechanisms for verification and validation of events across different networks without the need for a centralized authority.
* The Crosschain Function Calls Layer enables the execution of operations across networks, allowing cross-chain applications to trigger and coordinate activities on multiple networks. This is the operational core of the stack, enabling functions to be executed remotely on another network. This capability is crucial for allowing synchronous workflows across networks in scenarios where actions on one network depend on the state or outcomes on another. It is this layer that orchestrates the remote execution of smart contract functions, ensuring that transactions are not only executed but done so in a manner that aligns with the overarching business logic defined in the Applications Layer.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: How is atomicity achieved across two different chains?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For atomic transaction, the messaging will need to add additional passes.
On the source chain, a user needs to have a secret x (randomly generated for each transaction). The crosschain smart contract on the source chain will need to implement two functions: 1) atomic_transaction_initiate; 2) atomic_trasaction_commit

With atomic_transacton_initiate function, a user on the source chain initiates an atomic transaction across chain. The hash of secret x, H(x), is appended to the messaging event, and x is passed separately to the intended user on the target chain.

The atomic_transaction_commit will require a hash H and secret x in order to execute. Since x is a secret, it will not execute by the smart contract until x is revealed after the tx on the target chain is executed.

The crosschain initiation message is relayed to the target chain. The target chain smart contract needs to implement an execution function that takes in a Hash H and an input x, where H is the hash of x. The function will only execute when H matches H(x). Once this function successfully executes, it will emit and reveal x.

When the target chain smart contract executes the function, the secret is revealed. This secret is passed back to the source chain to execute the atomic_transaction_commit.

Co-authored-by: Arun S M <[email protected]>
Signed-off-by: weijia31415 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants