Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CHIP-0036: keccak256 CLVM operator #131

Merged
merged 7 commits into from
Dec 19, 2024
Merged

CHIP-0036: keccak256 CLVM operator #131

merged 7 commits into from
Dec 19, 2024

Conversation

danieljperry
Copy link
Contributor

No description provided.

@danieljperry danieljperry changed the title Add new keccak256 CHIP CHIP-0036: keccak256 CLVM operator Oct 25, 2024
@danieljperry
Copy link
Contributor Author

This CHIP is now a draft. It focuses on implementing keccack256, which was originally included as part of the withdrawn CHIP-34.

@Yakuhito
Copy link
Contributor

Hi! Thank you for considering my request for the keccak256 operator.

I wanted to add some context for the broader community. After this thread, the idea of an EIP-712-compatible Chia puzzle stuck with me. In short, a puzzle could likely be built in such a way that coins are controlled via EIP-712 signatures. EIP-712 is a widely-used signature standard on Ethereum that has significant wallet adoption - meaning that you could sign messages in virtually every Ethereum wallet. The exciting opportunity here is to sign messages with Ledger/Trezor devices or other hardware wallets - if it works, I think this is the best path forward for hardware wallet support for Chia.

As mentioned in the CHIP description, the operator has been included in a previous (abandoned) CHIP. The code required to support it is, to my knowledge, still available in a non-merged branch. I've committed to fully testing this idea by building the puzzle mentioned above and releasing some tests for it as soon as the chialisp compiler/Rust simulator support keccak256.

@Rigidity
Copy link
Contributor

Here is the CLVM implementation for this CHIP:
Chia-Network/clvm_rs#489
Feel free to review, but note that this does not include the softfork activation height since that will be set by a separate chia-blockchain PR.

@Yakuhito
Copy link
Contributor

Yakuhito commented Nov 3, 2024

Hey, all! I got my PoC working yesterday - the keccak operator can be used to enable hardware wallet support. The PoC repository is here, and a quick explanation can be found here. I still have to add soft fork support to the puzzle (the current one assumes keccak256 operator was hard-forked), which I'll probably do next week.

@danieljperry
Copy link
Contributor Author

This CHIP is now in Review. We have added an example of how to use the softfork operator, as well as clarified that if this CHIP is finalized, it will be added to a soft fork of Chia's blockchain. Note that we have yet to choose a fork point block height. This will need to be added to the CHIP before it can be moved to Last Call. However, the reference implementation is otherwise complete.

Please review the CHIP at your convenience by leaving a comment in this PR.

@danieljperry
Copy link
Contributor Author

The block height when this CHIP's soft fork will activate is 6 800 000. All other implementation and testing details are now in place. We will move this CHIP to Last Call shortly. Please get your final reviews in ASAP.

@danieljperry
Copy link
Contributor Author

This CHIP is now in Last Call. If no changes are required in the next two weeks, it will be moved to Final.

@danieljperry
Copy link
Contributor Author

This CHIP is now Final. It can no longer be modified, other than by adding errata. Its soft fork has been implemented in version 2.5 of the reference wallet/blockchain. Be sure to upgrade to at least that version prior to the activation block height.

Copy link
Contributor

@BrandtH22 BrandtH22 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@danieljperry danieljperry merged commit 2e67254 into main Dec 19, 2024
2 checks passed
@danieljperry danieljperry deleted the keccak256 branch December 19, 2024 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants