127 Followers
·
Follow

在ugChain的架构设计中,整个系统分离出两个大的组成部分,一部分是核心链,另一部分是DAG账本链。核心链负责记录DAG区块哈希值,DAG账本链负责记录实际的交易数据。

Image for post
Image for post

任何用户都能花费一定量的币将哈希值记录到核心链,但是用户可能不广播(或者广播失败)哈希值对应的原像区块,这样就导致DAG账本的区块producer无法验证识别核心链区块是否合法,也就无法看到完备的DAG账本视图,因此需要引入对核心链区块数据的「确认」与「反确认」操作。

Image for post
Image for post

任何DAG账本的区块producer在接收到核心链区块后,都应当验证分析区块里记录的哈希值,并报告是否看到哈希值对应的原像数据。看到了,执行「确认」操作,未看到,执行「反确认」操作。

反确认操作其实很类似于一种举报机制:若用户记录没有原像数据的随机哈希值到核心链,会被反确认举报。然后全网达成共识,并扣除该用户一定的罚金。虚假的、错误的举报不会成功,因为任何DAG账本的producer都会对举报数据进行验证,若发现举报信息不准确,可以推送原像数据给举报者,通过这种方式即确保了区块的广播存储,又避免了错误的反确认操作。

DAG区块producer可能会先收到核心链区块,而延后收到DAG账本区块导致的「失误的反确认」操作。因此DAG区块应该被先广播,尽最大努力交付给DAG网络中的其他区块producer,然后才开始写入核心链。

因为每个producer都可能写入同样的区块哈希值,所以核心链会判断之前是否已经存在同样的哈希值被打包进入核心链区块,若存在,则抛弃,若不存在,则打包。也就是说,最终成功记录区块哈希值到核心链的,不一定是区块的原始producer。每个producer都可能会将其记录到核心链。任意producer都会验证区块本身是否合规,然后选择是否和核心链进行交互。

为了防止恶意广播垃圾数据进行DDOS攻击,收到区块的producer会进行区块验证,区块中的数据必须合法,然后才会执行Gossip广播协议。

通过确认与反确认这两种机制,就确保了只要大部分的DAG账本producer是诚实的,那么整个系统是就能持续运转下去。


Image for post
Image for post

文章作者:UG Tech Team

目前的公链基本上都是封闭的,要完成两个公链之间的交互,就得引入第三方系统进行协调,第三方系统可以有多种模式。假设FooChain与BarChain是两个公链,发行的数字货币分别为FooCoin和BarCoin,那么对应的模式举例如下:

交易所模式

张三和李四在没有信任关系时,要完成FooCoin和BarCoin之间的兑换,就得通过中间机构,比如交易所,进行互换,显然这种模式是中心化的。

多重签名模式

张三和李四把FooCoin和BarCoin都存入多重签名地址,通过多个公证人的签名完成兑换功能。通过从M个公证人中取N个签名的机制(M > N),确保了只要大多数公证人是可靠的,那么兑换功能就是可靠的。

侧链模式

在侧链模式下,主链FooChain感知不到侧链BarChain,但是侧链BarChain需要感知、检测、查询主链FooChain,张三在主链上锁定、冻结一定量的FooCoin到冻结池,侧链感知到之后,会按照约定的比例释放BarCoin,完成数字货币从主链到侧链的流动。侧链上的币流动到主链,则通过多重签名,从冻结池中释放对应量的币。

桥梁模式

ug公链的核心链可作为去中心化的链桥系统,有力支撑应用链之间的跨链交互。

以下给出一个具体的比特币与山寨币进行跨链的流程与在ug公链中的跨链交易流程的对比示例。

张三用自己的1个BTC兑换李四的2个ATC,张三和李四协作兑换交流程如下:

1. 张三生成一个随机数r,并计算h = hash(r),然后将h发送给李四;

2. 张三创建TX-A交易,其输出为1个BTC对应的UTXO-A,并设定两个花费规则:

1) 若张三和李四共同签名,则可花掉UTXO-a;

2) 若李四知道h的原像r,则可花掉UTXO-a;

3. 张三和李四共同签名带有时间锁参数ta的赎回交易Tx-AR,其输入为UTXO-a,输出地址属于张三所有,因此张三可以在TxA被广播上链ta时间后,赎回自己的1个BTC,以防李四不配合完成整个兑换流程。

4. 李四创建Tx-B交易,其输出是2个ATC对应的UTXO-b,并设定两个花费规则:

1) 若张三和李四共同签名,则可花掉UTXO-b;

2) 若张三知道h的原像r,则可花掉UTXO-b;

5. 张三和李四共同签名带有时间锁参数Tb(Tb应该明显小于Ta)的赎回交易Tx-BR,其输入为UTXO-b,输出地址属于李四所有,因此李四可以在Tx-B被广播上链Tb时间后,赎回自己的2个ATC,以防张三异常中止整个兑换流程。

6. 张三和李四将Tx-A、Tx-AR、Tx-B、Tx-BR广播出去,Tx-A和Tx-B分别被录入BTC区块和ATC区块。张三知道r,可以签名一笔交易花掉UTXO-b,得到2个ATC,同时其交易数据也暴露了r,因此李四能够知道r并签名一笔交易花掉UTXO-a,得到1个BTC,整个兑换流程成功结束。

整个流程相对复杂,即使将Bitcoin换成有智能合约功能的Ethereum系统,将ATC替换为另一个支持智能合约功能的区块链系统,张三和李四仍然需要在兑换流程进行过程中一直监控对方的账本状态。

FooChain与BarChain部署在ug核心链上,张三用自己的1个FooCoin兑换李四的2个BarCoin:

1. 张三生成一个随机数密码r,并计算h = hash(r),然后将h发送给李四;

2. 张三在FooChain部署一个合约,并存入1个FooCoin到合约中,合约代码能够被包含了h的原像的核心链区块触发,并执行转账1个FooCoin给李四。

3. 李四在BarChain部署一个合约,并存入2个BarCoin到合约中,合约代码能够被包含了h的原像的核心链区块触发,并执行转账2个FooCoin给张三;2个BarCoin可以在一定的时间段之后被撤回,以防张三异常中止整个兑换流程,因为张三持有r,占据主动地位。

4. 张三将{ r,FooChain.Contract.address,BarChain.Contract.address }写入核心链, 打包了这些数据的核心链区块因包含h的原像r,因此会自动触发FooChain.Contract和BarChain.Contract执行各自的转账,实现跨链兑换功能。

在整个流程中,张三和李四无需监视对方的账本系统,只需确保写入正确数据到核心链即可。而核心链本来就是FooChain与BarChain的共通部分,是参与者双方系统密不可分的共同组成部件。所以桥梁模式的跨链交互是目前最自然、简洁的跨链模式。


Image for post
Image for post

Technical Progress:

  • Improve the technical documentation of the public chain design;
  • Use the program to simulate the interaction process between the DAG and the main blockchain, analyze the possible asynchronous communication problems, and analyze the magnitude relationship between the block broadcast time, the block POW calculation time, and the block verification time.

Application Progress:

  • Increased function development: background support permission allocation, report data real-time statistics, increase background management and function setting module
  • Security function extension: when the user initiates asset transfer and transaction request, the database synchronize backup and run the multiple verification
  • Optimize response speed and improve asynchronous execution of multitasking queue process

Exchange Update:

On August 16, BRC-TALK, hosted by Bisheng Capital, co-organized by Jiuyi Finance, BBNews and five participating projects, was successfully held at Hyatt Hotel. …

About

ugChain

Decentralized Game Ecosystem + Virtual Asset Management Based on Blockchain Technology. Learn more: http://ugchain.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store