Post state snapshots from BFT to PoW, specifically the commit_state_id from a Quorum Certificate.
At least 2/3+ validators must sign a Bitcoin transaction format transaction.
Consider scripting based implementation.
Flow: One machine (based on whatever time/signal) obtains a quorum certificate. Creates a Partially Signed Bitcoin Transaction. Encode the hash as OP_RETURN output, add epoch and round number. Delivers to all other nodes (together with QC?)
Upon receiving a PSBT, other nodes validate the input (QC, hash) and add their signatures, return to initiator.
Upon receiving m signatures, initiator assembles a tx. Delivers to PoW nodes.
PoW nodes have a special coin. TBD what 'special' means.
Coin is locked by multisig script. Only current epoch's BFT nodes can transact.
Before the end of BFT epoch, last created tx is spendable by a quorum of next epoch's validators.
Post at least once per BFT epoch, no more often than once per PoW block; specific timing is a configurable parameter.
If the initial initiator have failed to broadcast the PSBT then after some delay some other node (leader) will be the new initiator. No particular need to check if it was successfully accepted by PoW chain.
TBD: simple fee handling / override.
Post state snapshots from BFT to PoW, specifically the commit_state_id from a Quorum Certificate.
At least 2/3+ validators must sign a Bitcoin transaction format transaction.
Consider scripting based implementation.
Flow: One machine (based on whatever time/signal) obtains a quorum certificate. Creates a Partially Signed Bitcoin Transaction. Encode the hash as OP_RETURN output, add epoch and round number. Delivers to all other nodes (together with QC?)
Upon receiving a PSBT, other nodes validate the input (QC, hash) and add their signatures, return to initiator.
Upon receiving m signatures, initiator assembles a tx. Delivers to PoW nodes.
PoW nodes have a special coin. TBD what 'special' means.
Coin is locked by multisig script. Only current epoch's BFT nodes can transact.
Before the end of BFT epoch, last created tx is spendable by a quorum of next epoch's validators.
Post at least once per BFT epoch, no more often than once per PoW block; specific timing is a configurable parameter.
If the initial initiator have failed to broadcast the PSBT then after some delay some other node (leader) will be the new initiator. No particular need to check if it was successfully accepted by PoW chain.
TBD: simple fee handling / override.