Announcement: Implementation of Proof of Work (“POW”), Proof of Stake (“POS”) and Smart Contract on the UnitedBitcoin mainnet

After extensive testing, UnitedBitcoin (“UB”) is pleased to announce that it is upgrading its protocol through a Proof of Work (“POW”) and Proof of Stake (“POS”) hybrid consensus mechanism, in addition to smart contract support. This protocol upgrade will be implemented via a planned hardfork on the UB mainnet at block height 551111.

Hardforks are routine, and are used to upgrade the network by making changes to the underlying protocol.

During the hardfork, UBTC owners will not need to do anything, their UBTC will remain spendable. In an abundance of caution, owners may wish to cease transfers around the time of the hardfork itself.

While the hardfork is safe and routine, please note the following points regarding the addition of POS and smart contract functions on the UB mainnet:

New block versions for POS and POW

The new chain will support two new block versions. Miners (POW) must use the new block version for their blocks. The available block versions can be obtained by calling ‘getblocktemplate’ with the new wallet (version 2.1.0).

The new block versions are as follows:

POW block version: 0x02000000

POS block version: 0x01000000

How to enable POS mining in the UBTC wallet

After installing the QT wallet, create a shortcut on your windows desktop. Right click to choose properties and add the following parameter ‘-staking’ at the end of the target field.

Similarly, under the Linux platform, when starting the wallet, just add the ‘-staking’ parameter after ubcd.

POW and POS compete for blocks, so the block time interval of POW and POS will be adjusted to 2 minutes. The block reward will not change and will remain 1 UBTC per block discovered.

The UBTC reward lockup period remains at 7,200 blocks. UTXO confirmations need to reach 4,800 in order for that UTXO to be eligible for POS mining. The weight of POS is related to the amount of UBTC. Therefore, the more UTXO with confirmations, the larger the staked amount of UBTC is and the easier POS mining becomes.

Addition of smart contract support on the UB mainnet

In the coinbase transactions, after the smart contract fork height, an additional txoutput is added. This txoutput holds the root state hash, and the value of this tx output is 0. Relevant mining pools are required to confirm the coinbase transactions of block productions.

Transaction fee calculation in the smart contract transaction is no longer the (sum of vin) minus (the sum of vout), but rather, the sum of vin and the sum of the amount withdrawn from the contract (a value in the script) in vout minus the sum of the amount deposited to the contract (a value in the script) in vout minus the sum of other transactions in vout. In other words, the sum of the amount of vin that the mining pools and exchanges need to allow is less than, equal to or greater than of the sum of vout.

The smart contracts include special script templates and functions such as: creating a contract, invoking a contract, transferring to a contract, and withdrawing from a contract.

The supported programming languages for smart contract development are Java, C#, Kotlin and Lua.

Smart contracts support storage and support RPC to call the value of each storage of a contract.

Deposit of transaction fees of UBTC with smart contracts on exchanges

Just before and during the hardfork itself, exchanges may wish to disable deposits, trades, and withdrawals of UBTC, as a cautionary measure. Following the hardfork, exchanges should note the following:

The deposited and withdrawn UTXO is the normal UTXO, just like Bitcoin. Exchanges involving UBTC deposit and withdrawal need to pay attention if the deposit transaction fees are checked for deposits, as after addition of smart contracts, the transaction fee is no longer vin – vout and some contract relevant vouts are not the UTXO for deposits.

If the deposit transactions taken by the exchange is from the UBTC QT wallet, there is no need for exchanges to check the transaction fees for the deposit transactions. If they are going to check, they need to reconstruct the contract related vout to verify the transaction.

Conclusion

The UnitedBitcoin hardfork to improve the network will take place at block height 551111. Users and exchanges should maintain the same experience to which they accustomed on the network. Owners will not need to do anything differently. Miners will need to update their block templates. Exchanges may need to update their transaction fees on deposits regarding smart contracts.

Node 2.1.0 will be released in the coming days. QT wallet users, please remember to upgrade the wallet.

This planned hardfork will make UnitedBitcoin even better for its wonderful community.

If you have any inquiries or need any assistance, please email us support@ub.com.