Foreword |
|
xv | |
Preface |
|
xvii | |
Acknowledgments |
|
xix | |
Introduction |
|
xxi | |
1 Overview |
|
1 | (10) |
|
|
1 | (1) |
|
1.2 Overview of Background |
|
|
1 | (1) |
|
|
1 | (1) |
|
1.2.2 Modern Cryptography |
|
|
2 | (1) |
|
1.3 Motivation and Foundation of This Book |
|
|
2 | (2) |
|
|
2 | (1) |
|
|
3 | (1) |
|
1.4 Overview of Designing Practical PKC Scheme |
|
|
4 | (2) |
|
1.4.1 Validating a PKC Scheme |
|
|
4 | (1) |
|
1.4.2 Steps to Investigate PKC Scheme |
|
|
5 | (1) |
|
|
6 | (3) |
|
|
9 | (2) |
2 Preliminaries |
|
11 | (14) |
|
|
11 | (1) |
|
2.2 Definitions of Research Objects |
|
|
11 | (2) |
|
2.2.1 Defining Blockchain |
|
|
11 | (1) |
|
2.2.2 Defining PKC Schemes |
|
|
12 | (1) |
|
|
13 | (1) |
|
2.3.1 Computational Complexity Measurement |
|
|
14 | (1) |
|
2.4 Provable Security Theory and Proof Techniques |
|
|
14 | (5) |
|
2.4.1 Proof by Security Reduction |
|
|
15 | (1) |
|
2.4.2 Proof by Sequences of Games |
|
|
16 | (2) |
|
2.4.2.1 Transitions based on Indistinguishability |
|
|
16 | (1) |
|
2.4.2.2 Transitions based on Failure Events |
|
|
17 | (1) |
|
2.4.3 Proof by Contradiction |
|
|
18 | (1) |
|
|
18 | (1) |
|
2.4.5 Random Oracle Model |
|
|
19 | (1) |
|
|
19 | (1) |
|
2.5 Algebraic Notions and Numeric Theory |
|
|
19 | (5) |
|
2.5.1 Group, Ring and Fields |
|
|
20 | (2) |
|
|
20 | (1) |
|
|
20 | (1) |
|
|
21 | (1) |
|
|
21 | (1) |
|
2.5.1.5 Proof of Knowledge |
|
|
21 | (1) |
|
|
22 | (2) |
|
|
24 | (1) |
3 Background |
|
25 | (20) |
|
|
25 | (1) |
|
3.2 Introduction to Blockchain |
|
|
25 | (10) |
|
|
27 | (2) |
|
|
29 | (3) |
|
3.2.3 Other Cryptocurrencies |
|
|
32 | (3) |
|
3.2.3.1 Cryptographic Scheme-Centered Altcoins |
|
|
32 | (2) |
|
|
34 | (1) |
|
3.3 Security Vulnerabilities, Attacks & Countermeasures |
|
|
35 | (9) |
|
3.3.1 Vulnerabilities of Altcoins |
|
|
35 | (1) |
|
3.3.2 Privacy Threat of Altcoins |
|
|
36 | (1) |
|
3.3.3 Attacks of Altcoins |
|
|
37 | (2) |
|
|
39 | (5) |
|
|
44 | (1) |
4 Public-Key Signature Scheme for Blockchain |
|
45 | (26) |
|
|
45 | (1) |
|
|
45 | (3) |
|
4.2.1 Introduction to PKS |
|
|
45 | (1) |
|
|
46 | (1) |
|
4.2.2.1 Use Case 1: ECDSA in Bitcoin |
|
|
46 | (1) |
|
4.2.2.2 Use Case 2: MLSAG in Monero |
|
|
46 | (1) |
|
|
47 | (1) |
|
|
48 | (3) |
|
4.3.1 Construction of ECDSA |
|
|
49 | (1) |
|
4.3.2 Analysis of ECDSA's Security and Efficiency |
|
|
50 | (1) |
|
|
51 | (5) |
|
4.4.1 Construction of BLS |
|
|
51 | (1) |
|
4.4.2 Security Requirement of BLS |
|
|
52 | (1) |
|
4.4.3 Security Analysis of BLS |
|
|
52 | (4) |
|
4.5 Group Signature and Case Analysis |
|
|
56 | (7) |
|
4.5.1 Background of Group Signature |
|
|
56 | (1) |
|
4.5.2 Definition of Group Signature |
|
|
57 | (1) |
|
4.5.3 Case Study: MLSAG Scheme |
|
|
58 | (4) |
|
4.5.3.1 Construction of MLSAG |
|
|
58 | (1) |
|
4.5.3.2 Security Analysis of MLSAG |
|
|
59 | (3) |
|
4.5.4 Efficiency Analysis of MLSAG |
|
|
62 | (1) |
|
4.6 Ring Signature and Case Analysis |
|
|
63 | (7) |
|
4.6.1 Background of Ring Signature |
|
|
63 | (1) |
|
4.6.2 Case Study: LRRS Scheme |
|
|
64 | (8) |
|
4.6.2.1 Construction of LRRS |
|
|
64 | (1) |
|
4.6.2.2 Security Requirement of LRRS |
|
|
65 | (1) |
|
4.6.2.3 Security Analysis of LRRS |
|
|
66 | (2) |
|
4.6.2.4 Efficiency Analysis of LRR,S |
|
|
68 | (2) |
|
|
70 | (1) |
5 Public-Key Encryption Scheme for Blockchain |
|
71 | (30) |
|
|
71 | (1) |
|
|
72 | (1) |
|
|
72 | (3) |
|
|
72 | (2) |
|
5.3.1.1 Use Case 1: ECC-Based Encryption in Bitcoin |
|
|
73 | (1) |
|
5.3.1.2 Use Case 2: RSA in Blockchain |
|
|
73 | (1) |
|
5.3.1.3 Use Case 3: Pedersen Commitments |
|
|
73 | (1) |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
75 | (8) |
|
5.4.1 Background of IBE Scheme |
|
|
75 | (1) |
|
5.4.2 Construction of IBE Scheme |
|
|
76 | (1) |
|
|
76 | (1) |
|
5.4.2.2 Basicldent Scheme |
|
|
76 | (1) |
|
|
77 | (1) |
|
5.4.3 Security Analysis of IBE Scheme |
|
|
77 | (2) |
|
5.4.3.1 Security Analysis BasicPub |
|
|
77 | (1) |
|
5.4.3.2 Security Analysis of Basicldent |
|
|
78 | (1) |
|
5.4.4 Security Analysis of Fullldent |
|
|
79 | (4) |
|
|
83 | (5) |
|
|
83 | (1) |
|
5.5.2 Security Analysis of CS |
|
|
84 | (4) |
|
5.6 Case Analysis of HDRS |
|
|
88 | (5) |
|
5.6.1 Background of Signcryption |
|
|
88 | (1) |
|
5.6.2 Construction of HDRS |
|
|
88 | (2) |
|
5.6.3 Security Requirement of HDRS |
|
|
90 | (1) |
|
5.6.4 Security Analysis of HDRS |
|
|
90 | (2) |
|
5.6.5 Efficiency Analysis of HDRS |
|
|
92 | (1) |
|
5.7 Methods to Construct an IND-CCA2 Secure Encryption Scheme |
|
|
93 | (6) |
|
5.7.1 Generic Methods to Achieve IND-CCA2 |
|
|
94 | (1) |
|
5.7.2 Background of IND-CCA2 |
|
|
94 | (2) |
|
5.7.3 IND-CCA2 from Non-Interactive Zero-Knowledge (NIZK) |
|
|
96 | (1) |
|
5.7.4 IND-CCA2 from Random Oracle Model |
|
|
96 | (1) |
|
5.7.5 IND-CCA2 from (UHF) |
|
|
96 | (2) |
|
5.7.5.1 Universal Hash Function |
|
|
97 | (1) |
|
5.7.5.2 UHF Case: CS Scheme and Its Variants |
|
|
97 | (1) |
|
5.7.6 IND-CCA2 from Hybrid Encryption (HY) and Use Case |
|
|
98 | (1) |
|
5.7.7 IND-CCA2 from ElGamal and Its Extensions |
|
|
98 | (1) |
|
|
99 | (2) |
6 Public-Key Hash Function for Blockchain |
|
101 | (22) |
|
|
101 | (1) |
|
|
101 | (3) |
|
|
102 | (1) |
|
6.2.2 Introduction to PKH |
|
|
103 | (1) |
|
|
103 | (1) |
|
|
104 | (2) |
|
6.3.1 Construction of ACH |
|
|
105 | (1) |
|
6.3.2 Security Analysis of ACH |
|
|
105 | (1) |
|
|
106 | (5) |
|
6.4.1 Construction of HCCH |
|
|
107 | (1) |
|
6.4.2 Security Requirement of HCCH |
|
|
107 | (1) |
|
6.4.3 Security Analysis of HCCH |
|
|
108 | (2) |
|
6.4.3.1 Proof of Indistinguishability |
|
|
108 | (1) |
|
6.4.3.2 Proof of Public Collision-Resistance |
|
|
109 | (1) |
|
6.4.4 Efficiency Analysis of HCCH |
|
|
110 | (1) |
|
|
111 | (4) |
|
6.5.1 Construction of TUCH |
|
|
111 | (1) |
|
6.5.2 Security Requirement of TUCH |
|
|
112 | (1) |
|
6.5.3 Security Analysis of TUCH |
|
|
113 | (1) |
|
6.5.3.1 Proof of Indistinguishability for TUCH |
|
|
113 | (1) |
|
6.5.3.2 Proof of Collision-resistance |
|
|
114 | (1) |
|
6.5.4 Efficiency Analysis of TUCH |
|
|
114 | (1) |
|
|
115 | (6) |
|
6.6.1 Construction of RCH |
|
|
115 | (1) |
|
6.6.2 Security Requirement of RCH |
|
|
115 | (2) |
|
6.6.3 Security Analysis of RCH |
|
|
117 | (3) |
|
6.6.3.1 Proof of Indistinguishability |
|
|
117 | (1) |
|
6.6.3.2 Collision-Resistance between Non-Revoked Hash |
|
|
118 | (2) |
|
6.6.3.3 Collision-Resistance between Revoked and Non-Revoked Hash |
|
|
120 | (1) |
|
6.6.4 Efficiency Analysis of RCH |
|
|
120 | (1) |
|
|
121 | (2) |
7 Zero-Knowledge Proof for Blockchain |
|
123 | (22) |
|
|
123 | (1) |
|
|
123 | (1) |
|
|
124 | (1) |
|
7.3.1 Use Case 1: NIZK in ZCoin |
|
|
124 | (1) |
|
7.3.2 Use Case 2: zk-SNARK in ZCash |
|
|
124 | (1) |
|
|
125 | (1) |
|
7.4 Introduction to of ZKP |
|
|
125 | (4) |
|
7.4.1 Zero-Knowledge Proof and Argument |
|
|
126 | (1) |
|
7.4.2 Non-Interactive Zero-Knowledge Proofs (NIZK) |
|
|
126 | (2) |
|
7.4.3 Zero-Knowledge Succint Non-Interactive Arguments of Knowledge (zk-SNARK) |
|
|
128 | (1) |
|
7.4.4 Known constructions and security of zk-SNARK |
|
|
128 | (1) |
|
7.5 Steps to Achieve a zk-SNARK |
|
|
129 | (3) |
|
7.5.1 Computation to Algebraic Circuit |
|
|
129 | (1) |
|
7.5.2 Algebraic Circuit to R1CS |
|
|
130 | (1) |
|
7.5.2.1 What's Arithmetic Circuits? |
|
|
130 | (1) |
|
7.5.2.2 Rank 1Constraint System (R1CS) |
|
|
131 | (1) |
|
|
131 | (1) |
|
7.5.3.1 Quadratic Arithmetic Program (QAP) |
|
|
131 | (1) |
|
7.6 Case Analysis: GS08 Scheme |
|
|
132 | (4) |
|
7.6.1 Introduction to GS08 Scheme |
|
|
132 | (1) |
|
7.6.2 Definition and Security Requirement of GS08 Scheme |
|
|
132 | (1) |
|
7.6.3 Analysis of GRO8 Scheme |
|
|
133 | (1) |
|
7.6.4 Security Analysis of Groth and Sahai's Scheme |
|
|
134 | (2) |
|
7.7 Case Analysis: GR16 Scheme |
|
|
136 | (3) |
|
7.7.1 Non-Interactive Zero-Knowledge Arguments of Knowledge |
|
|
136 | (1) |
|
7.7.2 Construction of Groth's GR16 Scheme |
|
|
137 | (1) |
|
7.7.3 Analysis of GR16's First Construction |
|
|
137 | (1) |
|
7.7.4 Analysis of Groth's Second Construction |
|
|
138 | (1) |
|
7.8 Case Analysis: CA17 Scheme |
|
|
139 | (3) |
|
7.8.1 Prepare to Attack: Building ZK-SNARKs from QAP |
|
|
140 | (1) |
|
7.8.2 Potential Attacks: Learning Information by modifying the CRS |
|
|
141 | (1) |
|
7.8.3 Open Problems for zk-SNARK |
|
|
142 | (1) |
|
|
142 | (3) |
8 Tools as Optimizations for Blockchain |
|
145 | (16) |
|
|
145 | (1) |
|
8.2 Main Problems in Blockchain |
|
|
145 | (3) |
|
|
145 | (1) |
|
|
146 | (1) |
|
8.2.3 Efficiency and Scalability Problem |
|
|
147 | (1) |
|
8.2.4 Inflexibility and Vulnerabilities |
|
|
147 | (1) |
|
8.3 Tools to Enhance Security |
|
|
148 | (3) |
|
|
149 | (1) |
|
8.3.2 Trapdoor Commitment |
|
|
149 | (1) |
|
|
150 | (1) |
|
8.3.4 Public-Key Encryption |
|
|
151 | (1) |
|
8.4 Tools to Enhance Privacy-Preservation |
|
|
151 | (2) |
|
8.4.1 Zero-Knowledge Proof |
|
|
151 | (1) |
|
8.4.2 Group Signature, Ring Signature, and Variants |
|
|
152 | (1) |
|
8.4.3 Multi-Party Computation (SMPC) |
|
|
152 | (1) |
|
8.4.4 Fully Homomorphic Encryption |
|
|
153 | (1) |
|
8.5 Tools to Improve Flexibility and Vulnerabilities |
|
|
153 | (4) |
|
8.5.1 Chameleon Hash as Solution |
|
|
153 | (1) |
|
8.5.2 Malleable Signature as Solution |
|
|
154 | (3) |
|
8.5.2.1 Malleable Signature |
|
|
154 | (1) |
|
8.5.2.2 Chameleon Signature |
|
|
155 | (1) |
|
8.5.2.3 Sanitizable Signature |
|
|
155 | (1) |
|
8.5.2.4 Redactable Signature |
|
|
155 | (1) |
|
8.5.2.5 Redactable Blockchain |
|
|
155 | (2) |
|
8.6 Tools to Improve Efficiency and Scalability |
|
|
157 | (3) |
|
|
157 | (1) |
|
|
158 | (1) |
|
|
158 | (1) |
|
8.6.4 Lightning Payment Channel |
|
|
159 | (1) |
|
|
160 | (1) |
9 Regulation and Economies of Blockchain |
|
161 | (16) |
|
|
161 | (1) |
|
|
161 | (1) |
|
9.3 Blockchain Regulation |
|
|
162 | (5) |
|
9.3.1 Global Developments of Regulation on Blockchain |
|
|
162 | (2) |
|
9.3.2 Challenge & Open Problem for Regulation |
|
|
164 | (1) |
|
9.3.3 Regulatory SandBox and Deployment |
|
|
165 | (2) |
|
9.3.4 Redactable Blockchain |
|
|
167 | (1) |
|
|
167 | (8) |
|
|
168 | (2) |
|
9.4.2 Research of ICO in Blockchains |
|
|
170 | (1) |
|
9.4.3 Ponzi Scheme in Blockchains |
|
|
171 | (1) |
|
9.4.4 Study of Blockchain Economies |
|
|
172 | (1) |
|
9.4.5 Business Process Execution |
|
|
173 | (1) |
|
9.4.6 Application associated with Blockchain Economies |
|
|
174 | (1) |
|
|
175 | (2) |
10 Concluding Remarks |
|
177 | (8) |
|
10.1 Summary of Design and Analysis |
|
|
177 | (3) |
|
|
180 | (3) |
|
10.2.1 Challenges in Designing Practical PKS |
|
|
180 | (1) |
|
10.2.2 Challenges in Designing Practical PKE |
|
|
180 | (1) |
|
10.2.3 Challenges in Designing Practical PKH |
|
|
181 | (1) |
|
10.2.4 Challenges in Designing Practical ZKP |
|
|
181 | (1) |
|
10.2.5 Challenges in Optimizing Blockchain |
|
|
182 | (1) |
|
10.2.6 Challenges in Blockchain Regulation & Blockchain Economies |
|
|
182 | (1) |
|
|
183 | (2) |
Bibliography |
|
185 | |