The significance of the existence of trust is that for cross-chain, if ChainX can support the verification of the light node of the cross-chain (such as Bitcoin), but the cross-chain cannot support the verification of the light node of ChainX, only one-way cross-chain (one-way cross-chain) can only be carried out. Relay). Therefore, a chain that can cross-chain in both directions does not need trust, and only a chain that can cross-chain in one direction requires trust. **Trust is a compromise solution for the inability to cross-chain in both directions. **
This compromise solution requires a high degree of flexibility, and many details cannot be processed on the chain (such as trust qualification confirmation, etc.), so trust can be regarded as requiring a certain amount of trust to some extent. Therefore, ChainX gives trust great flexibility and rights
Therefore, for a one-way cross-chain (such as Bitcoin), an address/account needs to be locked (saved) on the cross-chain side of the assets that need to be cross-chain, and the relevant personnel who generate and manipulate this address/account, Called “trust” in ChainX.
Trust: It is the role of ChainX to host the tokens of the corresponding chain, so the trust is the real currency custodian of cross-chain tokens. Therefore, the participants of the trust must undergo strict KYC verification and publish their own node information, and rank high among the verification nodes to ensure sufficient interest binding relationship to prevent evil.
Classification of trusts: Trusts are distinguished by chain units. For example, the trust corresponding to Bitcoin only handles BTC. If Ethereum uses trusts in the future, ETH and ERC20 tokens on Ethereum belong to trust custody.
Cross-chain (original chain): The name for cross-chain on ChainX, such as Bitcoin.
Cross-chain (original chain) token is the name on ChainX for the credential that came from the cross-chain on ChainX, such as Bitcoin cross-chain to ChainX, the BTC on the original chain is locked in the multi-signature address of the trust , on ChainX, it will be exchanged 1:1 for a token on ChainX.
Candidate trust: Register your own trust information on ChainX when you are already a node, that is, a candidate trust.
Register as a candidate trust: To ensure the security and openness of cross-chain addresses, when an account (an entity operating a node) wants to become a trust node, it first needs to register itself as a node (candidate node, verification node) , and then you can register the relevant information (hot public key/address, cold public key/address) you want to become a trust of a certain chain (such as Bitcoin) on ChainX, which is called candidate trust node.
Information of candidate trust registration: The core part of registered trust information needs to have hot public key/address, cold public key/address, of which hot public key/address participates in generating hot address on the chain, cold public key/address The key/address participates in the generation of cold addresses on the chain, and the hot addresses are used to accept users’ cross-chain deposits and perform cross-chain withdrawals. When the number of hot addresses saved is large, some funds are transferred to cold addresses for safekeeping.
Trust list (group): Select some nodes from candidate trusts to form a trust list. For the real currency custody address the relevant information provided by the current trust list (hot public key/address, cold public key/address)** is generated on the chain**, the address/account is generally **multi-signature (Multi-signature) address/account**, the operation of this address/account requires most of the trusts in the current trust list to operate in the form of multi-signature.
Trust change (session): There is a change of trust list, a round of trust list is called “session” trust list, and the change of trust list is called “trust change”. ChainX gives trusts great flexibility and rights, so trusts** can only be selected by the previous trust list to the next trust list**.
Multi-signature (multi-signature) address/account: Note that this multi-signature (multi-signature) address/account refers to the address on the corresponding escrow chain (such as Bitcoin’s multi-signature address). After the candidate trust registers its own trust information on the chain, when a new term of trust is designated for the new term, ChainX automatically generates the multi-signature of the current term based on the trust information on the chain of the new term trust list. (Multi-signature) addresses/accounts, in the current session, these trusts are required to participate in the signature (multi-signature) operation on the corresponding chain when users withdraw (such as Bitcoin participating in the signature of the original text to be signed).
Trust list processing user withdrawal: The trustee in the current trust list should monitor the application list for user withdrawal. When the user can withdraw, any trustee in the current session can use the user’s application list component to create an original application list. The original text of the withdrawal transaction on the chain (the original text to be signed for Bitcoin withdrawal) is sent to ChainX, and other trustees sign the original text of the withdrawal on ChainX (or reject the withdrawal). If the number of signatures reaches the multi-signature requirement, this The transaction will be broadcast to the original chain, and after ChainX is confirmed, the cross-chain tokens on ChainX to the original chain will be destroyed.
Trust multi-signature operation: Note that this multi-signature refers to ChainX, and some operations related to trust need to be decided through multi-signature voting on the ChainX chain, such as changing the withdrawal fee for Bitcoin users. One trust list selects the next trust list, etc.
The first trust node is composed of several well-trained nodes during the test network period. After the network is gradually stabilized, the new nodes will join and become familiar with them and begin to change their terms gradually.
At present, the replacement cycle of the proposed trust node is about 10 days. First, check the nodes that have set up the Bitcoin chain trust among the verification nodes.
Then take the N with the highest number of votes. With the development of the system maturity, N gradually increases from 4 to 15
The last trust node examines whether these N nodes have disclosed their identity information, whether they have basic node and fund custody capabilities, and prevent malicious nodes from appearing, and screen out M nodes.
The core condition selected is to ensure the reliability of the next trust. Therefore, the judgment conditions can be filtered through the following, and passed the trust multi-signature operation of the current trust list:
The detailed description of steps 3 and 4 is as follows:
The hot and cold addresses of the current trust are called: cold-addr1, hot-addr1, and the hot and cold addresses generated by the next simulation are called: cold-addr2, hot-addr2.
The testing process is as follows:
Since trust is a group, operations and trust-related functions on the ChainX chain (note the non-original chain, please distinguish clearly) need to be operated through the multi-signature module on ChainX.
Trust is also a multi-signature operation group. On the ChainX chain, for each trust of each chain, a trust multi-signature address corresponding to them can be generated according to the trust list. For trusts, the functions that generally require multi-signature operations are as follows:
Compared with ordinary verifiers, trusts have to bear more responsibilities and obligations, so ChainX currently plans to give trusts the following rewards:
TODO