# A Blockchain-Based Digital Asset Platform with Multi-Party Certification
## 4 Technical Basis of BDAP
### Security Module of BDAP Based on Threshold ECDSA Algorithm  
BDAP uses a security module based on the threshold ECDSA algorithm to produce and keep private keys. The generation of private keys is based on the private key slicing  
Figure 5: Financing of warehouse receipts. algorithm. The private key fragmentation algorithm has been verified by cryptography theory to ensure security. The generation of each private key is performed by 11 independent servers. The final generated private key is also stored in an encrypted way on the mutually independent servers by means of sharding. The completed private key will never be leaked. The working process of a security module is shown in Figure 6. The security module includes KeyManager and SigServer; KeyManager manages the opening, validation and invalidation of private keys, while the private key signing service can not only use public and private keys for signing but also query the corresponding organization through the public key. Threshold ECDSA algorithms can keep the signature size fixed. Further, a single implementation of the algorithm can support multiple blockchains. Moreover, it is able to protect the privacy of all participants in multi-signature accounts. [PERSON] and [PERSON] have proved their security [17]. Multi-Party Computation Protocol for Universal Data Privacy has high security. Assume that S is a set of t' participants whose purpose is to collaboratively generate a legitimate ECDSA signature on message m. The process of the threshold ECDSA algorithm is shown in Algorithm 1. ```
1 begin
2/* BasepointG is a randomly selected node on the elliptic curve
3/* m is the message to be encrypted
4 def generate_signature(privacy_key,m)do
5q_point=gen_k()
6!>Point_mult(G)
7r=calculate_rem(q_point,G.order)
8s=calculate_s(k, hash_and_encrypted_message(m), privacy_key)
9 output(r,s)
```  
**Algorithm 1** ECDSA Algorithm  
In order to verify whether the security module of the BDAP platform is reasonably effective, we give the flowchart of the algorithm for the formal proof to analyze it, as shown in Figure 7.  
Figure 6: Security module in BDAP. Combining the flow chart of the algorithm, the first step of the algorithm is to generate a polynomial for the key negotiation according to step 1 and to distribute keys to \(t^{\prime}\) players. Take \(player_{i}\) and \(player_{j}\) as an example, both calculate from step 2 to 4. The goal of subprotocol I in step 5 is that \(t^{\prime}\) players collaborate to calculate:  
\[f_{1}(k_{1},\ \gamma_{1},\ldots,\ k_{t^{\prime}},\gamma_{t^{\prime}})=(k\gamma,\ \gamma\ *\ G) \tag{1}\]  
In order to achieve this task, it is necessary to ensure that \(k_{i}y_{j}\) can only be computed by \(player_{i}\) and \(player_{j}\), and the result of the computation needs to be spread between two players. That is, \(player_{i}\) or \(player_{j}\) cannot deduce \(k_{i}y_{j}\) separately. In this step, we also use a protocol called MtAwc. MtAwc (Multiplicative shares To Additive shares With Check) is a two-party secure computation where the objective is for \(player_{i}\) and \(player_{j}\) to input and receive a random number. By using the Paillier additive homomorphic encryption algorithm, we can implement the MtAwc protocol. \(player_{i}\) and \(player_{j}\) run MtAwc protocol. The inputs are \(k_{i}\) and \(\gamma_{i}\). The outputs are \(\alpha_{ij}\). and \(\beta_{ij}\). Then, \(player_{j}\) gets \(2(t^{\prime}-1)\) numbers and calculates:  
\[\delta_{i}=k_{i}\gamma_{i}+\sum_{j\
eq i}a_{ij}+\ \sum_{j\
eq i}\beta_{ji} \tag{2}\]  
By using sub-protocol I, \(player_{i}\) gets \(\sigma_{i}\) and \(k_{i}\), calculating \(s_{i}\) in step 5. \(s_{i}\) is the additive sharing in the signature pair. Sub-protocol II is for detecting malicious players. If all players pass the protocol, signature pair (r, s) will be output. First, the realistic application of the threshold ECDSA algorithm was until recently only partially addressed. Two research teams presented two different algorithms for ECDSA mult-party signatures (GG18, LNR18).