信托存在的意义为对于跨链而言,若ChainX可以支持被跨链(如Bitcoin)的轻节点验证,而被跨链无法支持ChainX的轻节点验证,则只能进行单向跨链(单向Relay)。因此能够双向跨链的链不需要信托,只有单向跨链的链需要信托。信托是对于无法双向跨链的一种妥协方案。
对于这种妥协方案需要具备很高的灵活性,很多细节无法在链上处理(如信托资质确认等),因此信托在某种程度上可以看做是需要一定信任的。因而ChainX的给予信托极大的灵活性及权利
因此对于单向跨链(如Bitcoin)而言,在被跨链端需要有一个地址/账户锁定(保存)需要跨链的资产,而生成并操控这个地址/账户的相关人员,在ChainX中称为“信托”。
信托:是ChainX上托管对应链的代币的角色,因此信托是跨链代币的真币托管者。因此信托的参与者必须经过严格的KYC进行验证并公布自己的节点信息,且在验证节点中排名靠前,以保证充足的利益绑定关系防止作恶。
信托的分类:信托以链为单位作为区分,如Bitcoin对应的信托只处理BTC,将来Ethereum若使用信托,则ETH,Ethereum上的ERC20代币都属于信托托管。
被跨链(原链): 在ChainX上对跨链的称呼,比如Bitcoin。
被跨链(原链)代币在ChainX上对跨链过来在ChainX上的凭证的称呼,比如Bitcoin跨链到ChainX上,原链上的BTC被锁定到信托的多签地址中,在ChainX上会1:1兑换一个ChainX上的代币。
候选信托:在已经是节点的情况下将自己的信托信息注册于ChainX上,即是候选信托。
注册成为候选信托:由于确保跨链地址的安全性与公开性,一个账户(操作节点的实体)欲成为信托节点时,首先需要将自己注册为一个节点(候选节点、验证节点),然后才能将自己想要成为某条链(如Bitcoin)的信托的相关信息(热公钥/地址,冷公钥/地址)注册到ChainX上,称为候选信托节点。
候选信托注册的信息:注册信托信息最核心部分需要具备热公钥/地址,冷公钥/地址,其中热公钥/地址在链上参与生成热地址,冷公钥/地址在链上参与生成冷地址,热地址用于接受用户的跨链充值与执行跨链提现,当热地址保存数量交大后转移部分资金进入冷地址保管。
信托列表(群体):从候选信托中选出部分节点可组成信托列表。对真币托管的地址由当前的信托列表提供的相关信息热公钥/地址,冷公钥/地址)在链上生成,该地址/账户一般为多签(多重签名)地址/账户,对该地址/账户的操作需要当前信托列表中的大部分信托通过多签的形式操作。
信托换届(session):信托列表存在更替行为,一轮信托列表称为“一届(session)”信托列表,信托列表的更替称为“信托换届”。ChainX的给予信托极大的灵活性及权利,因此信托只可由上一届信托列表选定下一届信托列表。
多签(多重签名)地址/账户:注意这个多签(多重签名)地址/账户是指对应被托管链上的地址(如Bitcoin的多签地址)。候选信托将自己的信托信息注册于链上后,当换届指定了新一届的信托后,ChainX根据新一届的信托列表在链上的信托信息,自动生成当前届的多签(多重签名)地址/账户,在当前届内,需要这些信托在用户提现时参与对对应链上的签名(多签)操作(如Bitcoin参与对待签原文的签名)。
信托列表处理用户提现:当前届的信托列表中的信托者应监控用户提现的申请列表,当用户可以提现时,当前届中的任意一个信托者可以根据用户的申请列表组件一个原链上的提现交易的原文(Bitcoin提现的待签原文)并发送到ChainX上,其他信托者在ChainX上对这提现原文进行签名(或否决这个提现),若签名数量达到多签要求,则这笔交易将会广播到原链上,并在ChainX被确认后销毁ChainX上对原链的跨链代币。
信托多签操作:注意这个多签指的是在ChainX上,与信托相关的一些操作需要通过ChainX链上的多签投票决定,如更改Bitcoin用户提现手续费,上一届信托列表选定下一届信托表等。
第一届信托节点由测试网时期,经过良好训练的若干个节点组成,等待网络逐步稳定,新节点加入并熟悉后开始进行逐步换届。
目前拟定信托节点的换届周期是10天左右,首先排查验证节点中设置了Bitcoin链信托的节点,没设置的无权参与选举
然后取其中得票数最高的N个,随着系统成熟度发展,N从4逐步增长到15
由上一届信托节点审核这N个节点是否已经公开了自己的身份信息、是否有基本的节点和资金保管能力,防止出现恶意节点,从中筛选出M个。
选定的最核心条件为保证下一届信托的可靠性 因此判定条件可以通过下面进行筛选,并经过当前届的信托列表的信托多签操作:
其中对于3,4两步详细描述如下:
当前届信托的冷热地址称为:cold-addr1,hot-addr1,下一届模拟生成的冷热地址称为:cold-addr2,hot-addr2。
测试过程如下:
由于信托为一个群体,在ChainX链上(注意非原链,请区分清楚)操作和信托相关的功能需要通过ChainX上的多签模块进行操作。
信托也是一个多签操作群体。在ChainX链上,针对每一条链的每一届信托都根据信托列表生成了对应他们可以操作的信托多签地址。对于信托而言一般需要多签操作的功能如下:
信托与普通验证者相比要承受更多的责任与义务,因此ChainX目前拟定给予信托的奖励有:
TODO