Finschia / ostracon

Ostracon, a consensus algorithm, is forked from Tendermint Core. We have added VRF to Tendermint BFT. It adds randomness to PoS Validator elections and improves security.
Apache License 2.0
70 stars 28 forks source link

Entropy as a tx #722

Open ulbqb opened 9 months ago

ulbqb commented 9 months ago

Protocol Change Proposal

Summary

I propose that Entropy is moved from Block to Data.txs. I mean, that Entropy is processed as a transaction. This makes Ostracon block the same as Tendermint and solves the problems due to differences of block interfaces.

Problem Definition

Ostracon Block is different from Tendermint's one. We need forks of scan and explorer projects because of block APIs.

Proposal

I want to remove Entropy from Block and introduce Ostracon transaction (OcTx) like this:

{
  "tx": {
    "@type": "/cosmos.tx.v1beta1.Tx",
    "body": {
      "messages": [
        {
          "@type": "/ostracon.v1.Extend",
          "entropy": {
            "round": 1,
            "proof": "xxxxxxxx"
          }
        }
      ]
    }
  }
}

Proposer who generates VRF proofs add this transaction to proposal blocks. Validators who get proposal blocks validate Entropy in this transaction before DeliverTx.

Consideration


For Admin Use

torao commented 9 months ago

I think it's a proposal worth considering. It'd be good if it could be opted out through a setting, as it's not incompatibility that is necessarily required for all applications.