Title Page
Abstract
Contents
Chapter 1. Introduction 13
1.1. Motivation 13
1.1.1. Problems and Approaches 15
1.2. Contributions 18
1.3. Outline 19
Chapter 2. Background 21
2.1. Blockchain 21
2.2. Blockchain Wallet 22
2.2.1. Single-signature wallet 22
2.2.2. Multi-signature wallet 23
2.3. Regular transaction in blockchain system 24
2.4. Smart contract in blockchain system 24
2.5. Key-Value Store 24
2.6. Consensus Algorithm 25
2.7. Related Work 26
Chapter 3. Efficient and Secure Multi-Signature Wallet 32
3.1. Motivation 32
3.1.1. Blockchain wallet 32
3.1.2. Threshold signature scheme 34
3.1.3. Bloom filter 35
3.2. Design and Implementation 36
3.2.1. Overview 37
3.2.2. Preparing to exchange information. 39
3.2.3. Generating a multi-signature wallet 40
3.2.4. Signing transaction via multi-signature and Bloom-filter 42
3.2.5. Identifying a participant of a transaction 45
3.3. Evaluation 46
3.3.1. Experimental setup 46
3.3.2. Performance results 46
3.3.3. Discussion of usecase 50
3.3.4. Discussion of privacy 51
3.4. Summary 52
Chapter 4. Enabling SQL-Query Processing in Blockchain Systems 53
4.0.1. Motivation 53
4.1. Design and Implementation 56
4.1.1. Design 57
4.1.2. Implementation 62
4.1.3. Usage 64
4.2. Evaluation 65
4.2.1. Experimental setup 65
4.2.2. Performance results 66
4.2.3. Impact on the number of threads 70
4.2.4. Measuring resource usage 71
4.2.5. Byzantine Fault Tolerant 75
4.3. Conclusions 76
Chapter 5. Proof of Double Committee for Decentralization Consensus Algorithm in Blockchain system 77
5.1. Motivation 77
5.1.1. Centralization of Blockchain 77
5.1.2. Verifiable Random Function 79
5.2. Design and Implementation 81
5.2.1. Overview 82
5.2.2. Selecting a coordinator and seed value 86
5.2.3. Selecting steering members 87
5.2.4. Crash Fault Tolerant of the coordinator 88
5.3. Evaluation 89
5.3.1. Experimental setup 89
5.3.2. Distribution of block proposers 90
5.4. Summary 102
Chapter 6. Conclusion 104
6.1. Discussion 104
6.2. Summary 105
Bibliography 108
Abstract 117
Figure 3.1. Overall architecture of proposed scheme 37
Figure 3.2. A pre-processing overview 38
Figure 3.3. A key generation process for 2 of 3 multi-signature wallets 41
Figure 3.4. Using bloom-filter in a multi-signature wallet (H: hash function, pub: public key) 42
Figure 3.5. A signing process for a 2 of 3 multi-signature wallet (p: random number, k: random number, G: generate point, sig: signature) 44
Figure 3.6. Transaction Validation Time in Two Networks: Bitcoin Blockchain (left) and Ethereum Blockchain (right) 47
Figure 3.7. Transaction Size in Two Networks: Bitcoin Blockchain (left) and Ethereum Blockchain (right) 48
Figure 3.8. Transaction Fee in Two Networks: Bitcoin Blockchain (left) and Ethereum Blockchain (right)(BTC: bitcoin, ETH: ethereum) 48
Figure 4.1. Opensea transaction statistics May-June 2023 54
Figure 4.2. Classification of the database on Ethereum-based blockchain node (Left: external database, Right: Embedded database) 56
Figure 4.3. System overview (left: existing system, right: proposed system) 58
Figure 4.4. Process overview (left: register and store process, right: query process) 62
Figure 4.5. Retrieval regular transaction in the blockchain 64
Figure 4.6. Execution time of select operations (top: smart contract, bottom: regular transaction) 67
Figure 4.7. Throughput of insert operations (top: smart contract, bottom: regular transaction) 68
Figure 4.8. Execution time of select operations in smart contract 70
Figure 4.9. Execution time of insert operations in regular transaction 71
Figure 4.10. Resource usage with the different number of entities (top: CPU, bottom: memory) 72
Figure 4.11. Resource usage with the different number of threads (left: CPU, right: memory) 73
Figure 4.12. Resource usage with the different number of entities (left: CPU, right: memory) 74
Figure 4.13. Resource usage with the different number of entities (left: CPU, right: memory) 75
Figure 4.14. Influence on Byzantine Fault Tolerant according to use in a database (left: external database, right: embedded database) 76
Figure 5.1. Ratio of Pool Distribution (calculated by blocks), 2023.04 2023.05 78
Figure 5.2. Overview of Proof of Double Committee 83
Figure 5.3. Detail of Proof of Double Committee 84
Figure 5.4. Process of the selecting next coordinator and current seed value in a round 85
Figure 5.5. Process of selecting steering members 87
Figure 5.6. The block generation count of a proposer (miner) in Bitcoin blockchain 91
Figure 5.7. The block generation count of a proposer (miner) in Ethereum blockchain 92
Figure 5.8. The block generation count of a proposer in Algorand blockchain 93
Figure 5.9. The block generation count of a proposer in Cosmos blockchain 94
Figure 5.10. The block generation count of a proposer in EOS blockchain 95
Figure 5.11. The block generation count of a proposer (coordinator) in PoDC blockchain 96
Figure 5.12. The block proposer order in EOS blockchain 97
Figure 5.13. The block proposer order in PoDC 97
Figure 5.14. The block generation count of a proposer (coordinator) with different standing members in PoDC 99
Figure 5.15. Probability of validator selection of steering committee candidates in PoDC 101
Figure 5.16. Probability of validator selection in cosmos(tendermint) 102