25-11-9 How to solve the problem concerning on Cosmos SDK issuing steem

in AVLE 코리아2 months ago (edited)

There have been concerns raised about the Cosmos SDK being used by @blaze.apps in the development of the SVM.
Specifically, if a large amount of STEEM is not staked from the beginning, the system could be vulnerable to hacking attacks.

Moreover, there is a risk that STEEM could be minted directly on the Cosmos SDK and sent back to the STEEM blockchain, potentially collapsing the entire STEEM ecosystem.

Therefore, it is strongly recommended that only wSTEEM — a wrapped version of STEEM created on the original STEEM blockchain — be allowed on the Cosmos SDK. I have explicitly demanded that @blaze.apps restrict the SVM to wSTEEM only.

The entire community must closely monitor the future direction of this development.

In particular, the x/mint module in Cosmos SDK can create fake STEEM, which could then be transferred to the STEEM blockchain.
This must be strictly prevented.

However, to operate a DEX and provide staking rewards, some level of inflation is needed. It appears @blaze.apps is considering 2–3% inflation, but I am concerned that this inflation might be used to mint STEEM directly on the Cosmos SDKthis must be firmly blocked.

To prevent arbitrary STEEM creation on the Cosmos SDK, we need:

  • A simple code change to delete the x/mint module
  • A CosmWasm contract that enforces wSTE 1:1 lockup

When I asked an AI, it provided the following code:

#[entry_point]
pub fn execute(
    deps: DepsMut,
    env: Env,
    info: MessageInfo,
    msg: ExecuteMsg,
) -> Result<Response, ContractError> {
    match msg {
        ExecuteMsg::Lock {} => {
            // 1. Verify STEEM was sent
            let steem = cw20::Cw20Coin {
                address: info.sender.to_string(),
                amount: info.funds[0].amount,
            };
            // 2. Mint wSTEEM 1:1
            let mint_msg = Cw20ExecuteMsg::Mint {
                recipient: info.sender.to_string(),
                amount: steem.amount,
            };
            Ok(Response::new()
                .add_message(mint_msg)
                .add_attribute("action", "lock"))
        }
        ExecuteMsg::Unlock { amount } => {
            // 1. Burn wSTEEM
            let burn_msg = Cw20ExecuteMsg::Burn { amount };
            // 2. Return STEEM via IBC
            let ibc_msg = IbcMsg::Transfer {
                channel_id: "channel-0".to_string(),
                to_address: info.sender.to_string(),
                amount: Coin::new(amount.u128(), "usteem"),
                timeout: env.block.time.plus_seconds(600),
            };
            Ok(Response::new()
                .add_message(burn_msg)
                .add_message(ibc_msg)
                .add_attribute("action", "unlock"))
        }
    }
}

In other words, when building the SVM with Cosmos SDK, the following measures must be implemented:

CosmWasm wSTEEM lockup contract deployment is mandatory

  1. Complete removal of the x/mint module → No STEEM minting allowed
  2. Enable CosmWasm + deploy the above code
  3. wSTEEM = 1:1 lockup + IBC return
  4. Public disclosure of contract address + source code

Without these, the SVM risks becoming a "fake STEEM factory."

I hope all STEEM developers pay close attention to this issue

영문번역을 올리는 이유는 증인디스코드에 공유하기 위한 목적입니다.

Sort:  

This post has been upvoted by @italygame witness curation trail


If you like our work and want to support us, please consider to approve our witness




CLICK HERE 👇

Come and visit Italy Community



The Mint Module Cannot be Deleted Because it also is required to Mint the wSTEEM on the SVM chain whenever a Bridge from STEEM -> SVM happens . however the plan is to restrict this to only validators and Consensus needs to be reached between validators to Mint anything on the SVM . Regarding Inflation , in the testnet i have set it to 2% , But its very easy and practical to set it to 0% as well , but this dosent rewards staking and validators , this as well needs t o further Discussed as well