Welcome to the SYSTEX2024 GitHub repository! This repository contains resources and materials related to my master’s thesis in IBM & ETH Zurich, which was accepted for presentation at the SYSTEX2024 workshop. Paper title: Revisiting Rollbacks on Smart Contracts in TEE-protected Private Blockchains.
- drawio/: Contains diagrams and flowcharts created using draw.io for the thesis presentation.
- systex24-final56.pdf: The final version of the document submitted for SYSTEX2024.
- presentation/: Contains the presentation slides in SYSTEX2024.
Blockchain technology offers decentralized security but fails to ensure data confidentiality due to its inherent data replication across all network nodes. To address these confidentiality challenges, integrating blockchains with Trusted Execution Environments (TEEs), such as Intel SGX, offers a viable solution. This approach, by encrypting all data outside the SGX enclave and making them unrecognizable to untrusted network nodes, ensures secure processing of data and computations within TEEs. Fabric Private Chaincode (FPC), an enhancement of Hyperledger Fabric, demonstrates this integration by securing smart contracts in enclaves, thereby enhancing confidentiality. However, FPC's reliance on states stored on the blockchain introduces vulnerabilities, especially to rollback attacks. This work provides a detailed analysis of rollback attacks in FPC, evaluates existing protection mechanisms, and proposes a solution: a Merkle Tree approach implemented in an FPC application named Secret Keeper. Through experimental validation, this solution shows significant security enhancements against rollback attacks within FPC contexts.
- Hyperledger Fabric v2.3.3: GitHub link
- FPC branch go-support-preview: GitHub link
-
FPC Application Secret Keeper:
- The implementation of the secret keeper mentioned in section 2.5
- Github Branch: Secret Keeper Go
- Permanent link: Secret Keeper Go
- Loom demonstration video: Watch here
-
Fabric Malicious Peer:
- The implementation of the malicious peer mentioned in section 2.5
- Github Branch: Malicious Peer
- Permanent link: Malicious Peer
- Loom demonstration video: Watch here
-
FPC Rollback Protection Main Branch:
- The implementation of all the FPC rollback protection methods mentioned in section 4.
- Github Branch: Rollback Protection
- Permanent link: Rollback Protection
-
SKVS Solution:
- The implementation of the SKVS solution mentioned in section 2.7
- GitHub Pull Request: SKVS Solution
- Permanent link: SKVS Solution
- Loom demonstration video: Watch here
-
TLE Solution:
- Fabric TLE Support:
- The implementation of TLE support in Fabric mentioned in section 2.7
- GitHub Branch: Fabric TLE Support
- Permanent link: Fabric TLE Support
- FPC TLE Implementation:
- The implementation of TLE in FPC mentioned in section 2.7
- GitHub Branch: FPC TLE Implementation
- Permanent link: FPC TLE Implementation
- Loom demonstration video: Watch here
- Fabric TLE Support:
-
Merkle Tree Approach:
- Fabric Merkle Tree Support:
- The implementation of Merkle Tree support in Fabric in section 3.2
- GitHub Branch: Fabric Merkle Tree Support
- Permanent link: Fabric Merkle Tree Support
- FPC Merkle Tree Implementation:
- The implementation of the Merkle Tree in FPC.
- GitHub Branch: FPC Merkle Tree Implementation
- Permanent link: FPC Merkle Tree Implementation
- Loom demonstration video: Watch here
- Fabric Merkle Tree Support: