Skip to content

Orbuculum-DAO/dcrm-go-mvp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Control Rights Management

FUSION's Distributed Control Rights Management technology uses distributed computing, homomorphic encryption, zero knowledge proofs and other cryptographic techniques to replace the complete private key with private key fragments. Distributed generation of a valid public key, address and transaction signature in accordance with the targeted blockchain ECDSA algorithm and specification is implemented. With this technology, the management and operation of the crypto-assets on all different blockchains may be realized on FUSION. DCRM is the core technology facilitating the management of assets across heterogeneous blockchains.

To learn more about DCRM, please read the FUSION DCRM Yellow Paper.pdf and visit dcrm.network.

Note: FUSIONDCRM is considered verification program. We make no warranties or guarantees of its security or stability.

1. Release info

FUSION DCRM-v3.0 refactoring with go language. it build a distributed DCRM verification network based on P2P network. it offer RPC api to generate the distributed generation of private keys, public keys and transaction signatures which support crosschain with bitcoin and ethereum, test DCRM 3.0 with the light wallet demo .

FUSION DCRM-v2.0 is a java implementation. it build multiple virtual users locally to demonstrate how to complete the distributed execution of the DCRM. On the basis of the previous version, the new version completes a transfer transaction signature for assets controlled by distributed private key, and generates the RAW transaction. By broadcasting the original transaction to the target main chain, the user can transfer these assets, thus making the user have a more intuitive experience of dcrm technology.This release shows the DCRM technology's support for Ethereum.

FUSION DCRM v4.0 is developing, it will implement Lock-in and Lock-out on the blockchain, which support bitcoin, ethereum and all ERC20 tokens; and offers Multi-currency smart contracts. V4.0 will release testnet and block explorer.

2. Code preview

cmd/fusion-dcrm The dcrm main package

common/math/decimal Package for handles floating point calculations

common/math/gmp-6.1.2 Package for processing large numbers

common/math/libtommath-0.41 Package for processing large numbers

common/math/pbc-0.5.14 Package for handles bilinear pair mapping

crypto/dcrm Implements privatekey distributed signature generation, elliptic curve, commitment, homomorphic encryption, zero-knowledge proof, etc.

crypto/pbc Implementation of password encryption bilinear pair mapping go code package

crypto/secp256k1 Adds a function to calculate the public key for elliptic curves

p2p Package for Peer-to-Peer

3. Program description

3.1 Distributed key generation

The verification program demonstrates the verification process of the FUSION Distributed Control Rights Management, including:

  1. The private key fragments are generated and stored separately by multiple nodes. The public key is generated through distributed computation with the private key fragments.
  2. It implements the signature of the designated messages by multiple nodes based on distributed computation.
  3. There is no passing of the private key fragment or assembling a complete private key in this process.

3.2 Verification of public key and signature

The signature generated by Distributed Control Rights Management complies with the digital signature specification of the targeted blockchain. Signature verification remains unchanged. The validation of message signatures involves three input items:

  • The public key. In this case, it will be generated by the private key fragments based on distributed computation.
  • The message signature. In this case, using private key fragments to generate signature for hash of message based on distributed computation.
  • The message itself.

In this verification program, we verify the public key, message and message signature generated by using the method that conforms to the targeted blockchain ECDSA specification. If verification succeeds, we have demonstrated that FUSION Distributed Control Rights Management achieves the status of using the private key fragments, distributed computation, and zero knowledge proofs to generate the public/private key pairing and the message signature for the targeted blockchain.

WithDistributed Control Rights Management, the control and management of the target blockchain account system and crypto assets can be realized on FUSION.

3.3 Verification of application scope for DCRM

At present, most blockchains use ECDSA algorithm to implement public and private key pairing and message signature.

According to bitcoin and Ethereum's official documentation and code, both adopt the secp256k1 specification. USDT is based on bitcoin implementation. Therefore, all the above three adopt the same ECDSA specification, that is, secp256k1.

The specification of secp256k1 is adopted in this verification program, which shows that the Distributed Control Rights Management of FUSION can generate the public and private key pairs and the message signatures that are valid on bitcoin, Ethereum and USDT.

3.4 Paillier Cryptosystem

The FUSION's Distributed Control Rights Management, adopts the Paillier Cryptosystem to achieve secure computations among nodes without leaking any information. In the scheme design and final implementation, the private key of the Paillier Cryptosystem is generated and stored in a distributed manner, which ensures that no node can decrypt the result alone. There are a lot of mature implementations of Paillier encryption. In this demo verification program, in order to demonstrate Distributed ECDSA Key Generation, we simplify the process of distributed Paillier encryption.

About

The MVP golang version of FUSION DCRM.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 42.0%
  • Assembly 22.1%
  • Makefile 13.2%
  • Shell 6.4%
  • C++ 5.5%
  • M4 3.0%
  • Other 7.8%