UBTC主网上线智能合约以及实现混合共识机制



经过前一阶段广泛深入的测试,UnitedBitcoin(“UB”比特联储)很荣幸地宣布将支持智能合约以及工作量证明(“POW”)和权益证明(“POS”)的混合共识机制,以升级其协议。该协议计划于区块高度551,111在UB主网上通过硬分叉实现升级。

 

硬分叉是通过对底层协议进行更改来升级网络的一种常规方式。

 

在硬分叉期间,UBTC用户无需进行任何操作,其UBTC仍可正常使用。但谨慎起见,用户可以在硬分叉时暂停转账。

 

虽然硬分叉是安全且常规的,请注意以下有关在UB主网上添加POS和智能合约功能的要点:


新的POS和POW区块版本

新的链将支持两个新的区块版本。矿工(POW)必须为他们的区块使用新的区块版本。可以用新钱包(版本2.1.0)的“getblocktemplate”调用可用的区块版本。

 

新的区块版本如下:

POW block version: 0x02000000

POS block version: 0x01000000

 

UBTC钱包启用POS挖矿的方法:

安装QT钱包后,在桌面上创建快捷方式。右键单击以选择属性,并在目标字段的末尾添加以下参数“-staking”。

 

同样,在Linux平台下启动钱包的时候,在ubcd后面加上“-staking”参数即可。

 

POW和POS竞争出块,因此将POW、POS的出块时间间隔调整为2分钟。区块奖励保持1个UBTC不变。

 

UBTC奖励的锁定期仍为7,200个区块。在UTXO确认数达到4,800时,该UTXO才可以被用来做POS挖矿。POS挖矿的权重和UBTC金额关联,因此用户钱包中确认数大于等于4,800的UTXO越多,UBTC金额越大,越容易出块。

关于在UB主网添加智能合约支持的说明:

Coinbase交易中,硬分叉后额外增加了一个txoutput。这个txoutput保存了rootstate hash(根哈希),并且此txoutput的value为0。需要相关矿池确认产块构造coinbase交易的方式。

 

合约交易中手续费的计算方式不再是vin的总金额与vout的总金额之差,而是vin的总金额与vout中从合约提现的总金额 (script中某个数值) 之和减去vout中充值到合约的总金额(script中某个数值)再减去vout中其他交易的总金额。也就是说,矿池、交易所方面需要允许vin金额之和小于、等于或者大于vout金额之和。 

 

也即:

原(非合约)交易手续费 = vin总额 – vout总额

合约交易手续费 = vin总额+vout从合约提现总额-vout充值到合约总额-vout其他交易总额

 

合约中增加的创建合约、调用合约、转账到合约、从合约提现的功能,均为特殊的scripttemplate。

 

支持开发智能合约的编程语言包括Java, C#,Kotlin, Lua。

 

智能合约支持存储,并且支持通过RPC获取某个合约的各storage的值。

关于交易所充值、提现智能合约版UBTC时产生手续费的说明:

在硬分叉之前和期间,谨慎起见,交易所可以暂停UBTC的充值、交易和提现。在硬分叉之后,交易所应注意以下几点:

 

充值提现的UTXO都是和比特币一样的常规UTXO。涉及充值提现的交易所需要注意检查充值交易的手续费,在添加智能合约后不再是vin与vout的差值,并且部分与合约相关的vout不会是充值入账的UTXO。 

 

如果交易所的充值交易是从UBTC的QT重钱包中取得的,可以不检查充值交易的手续费。如果需要检查,需要解构合约相关vout来验证交易。

小结:

改进UnitedBitcoin比特联储网络的硬分叉将于区块高度551,111进行。 用户和交易所的操作体验将与之前的网络体验无异。用户不需要进行任何额外或特别的操作。矿工需要更新他们的区块模板。交易所可能需要更新有关智能合约充值交易的手续费。

 

QT钱包的2.1.0版本即日将会发布。如果您是QT钱包用户,请切记更新您的钱包至最新版本。

 

我们相信,此次硬分叉计划将使比特联储社区更加精彩纷呈。

猜你喜欢

转载自blog.csdn.net/amigocc/article/details/81020439