Can TEEs (Trusted Execution Environments) based software be entirely trusted and capable of preventing malicious blockchain nodes from misbehaving? Or it is a premature assumption because of possible bugs and side-channel attacks.
Efficient Byzantine Fault Tolerance using Trusted Execution Environment: Preventing Equivocation is only the Beginning
With the rapid development of blockchain, Byzantine fault-tolerant protocols have attracted revived interest recently. To overcome the theoretical bounds of Byzantine fault tolerance, many protocols attempt to use Trusted Execution Environment (TEE) to prevent equivocation and improve performance and scalability. However, due to the broken quorum intersection assumption caused by the reduction of the replica number, the improvement is mostly at the cost of increased communication complexity which prevents existing TEE-based protocols to be applied to large-scale blockchain systems. In this paper, we propose TBFT, an efficient Byzantine fault-tolerant protocol in the partial synchrony setting, which has 𝑂(𝑛) message complexity in both normal-case and view-change. Compared to previous protocols, TBFT use TEE-assisted primitives to limit more types of malicious behaviors of replicas rather than preventing equivocation only, thereby reducing the latency and communication complexity of clients and replicas. Besides, we also introduce lightweight cryptographic primitives including a novel leader election mechanism and an efficient voting message aggregation mechanism for better security and performance. We evaluate TBFT via systematic analysis and experiments, and the results show that TBFT has better performance and scalability compared to other protocols
https://arxiv.org/pdf/2102.01970.pdf
_____
_____
TBFT: Understandable and Efficient Byzantine Fault Tolerance using Trusted Execution Environment
After decades of research, traditional BFT protocols have achieved nearly optimal performance improvements. However, they still cannot meet the rapidly increasing performance and scalability requirements of distributed systems, especially blockchain. Fortunately, the development of trusted execution environments brings new opportunities. Utilizing TEE, BFT protocols can achieve significant improvements, e.g., reduce the minimum number of replicas from 3f+1 to 2f+1. There have been several TEE-based BFT protocols. They generally share a common BFT-driven design pattern, i.e., to limit byzantine behaviors of replicas using TEE. However, while TEE solves some security issues, it also introduces new security issues. With this confusing design pattern, a protocol need not only tolerate arbitrary byzantine faults(which is already hard enough) but also handle those new security issues. Consequently, those protocols are complex and difficult to understand. With this drawback, those protocols have hardly been applied to real distributed systems. We start from a different question, i.e., what are the key differences between TEE-based BFT and Crash Fault Tolerance(CFT). We revisit CFT and propose four principles to help bridge the gap between TEE-based BFT and CFT. Based on these principles, we propose a novel TEE-based BFT protocol called TBFT. With inspirations from CFT, TBFT is more understandable and simpler compared to previous protocols. With a solid foundation provided by existing CFT protocols, TBFT has more opportunities to be applied to a practical system. Besides, We make comprehensive improvements to TBFT for both performance and security. Our evaluation shows that TBFT has better performance and scalability compared to previous