Skip to main content

Semaphore Modular Smart Account Modules

· 9 min read
Jimmy Chu
Site Author

Project Artifacts

Origin

This project emerges from the idea of integrating Semaphore within an account abstraction framework. While previous attempts have been made (as detailed in this blog post), they faced limitations due to the available tool stacks and Semaphore's storage access pattern at that time. These constraints made it challenging to create modules that could comply with the account abstraction validation scope rules.

However, the landscape has evolved significantly in the past year. New EIPs have emerged, notably the Modular Smart Account standard (ERC-7579). Additionally, numerous teams have developed tools that simplify smart account module development. This progress has created an opportune moment to revisit our design choices and approach.

After engaging in discussions with the Privacy and Scaling Exploration team, we've formulated a proposal to create Semaphore modules that adhere to the ERC-7579 standard. Smart accounts equipped with these modules will be able to leverage Semaphore's capabilities, allowing them to prove that their members have initiated transactions in a privacy-preserving manner.

To showcase these features, we have also developed a frontend demo UI. This demonstration will provide developers with a hands-on experience of the power and potential of Semaphore in account abstraction.

PSE Core Program 2024 Capstone Project

· 7 min read
Jimmy Chu
Site Author

PSE Core Program

In the past two months, I got into PSE Core Program and have intensively studied zero-knowledge cryptography. In the first five weeks, we have a curated list of materials to study, ranging from cryptographic primitives such as Merkle tree, symmetric and asymmetric encryption to going more in-depth about various zk-SNARK protocols such as Groth16 and PLONK, and finally being introduced to the frontier of cryptography, or so they are called, including multi-party computation (MPC) and fully homomorphic encryption (FHE).

Semaphore - part 1

· 3 min read
Jimmy Chu
Site Author

I have been studying about zero-knowledge proof in the past eight weeks. It is hard to grasp how a software project could integrate zero-knowledge proof. Then, through some community chat groups, I came across Privacy & Scaling Explorations group and one of their projects, Semaphore. Semaphore is a very educational project. In this project, I see how ZKP is being applied (in a fashion I understand) and observe excellent software engineering inside.

Cangjie & Chu Bong Foo - part 1

· 4 min read
Jimmy Chu
Site Author

On one occasion in Taiwan, people around me were amazed that we Hong Kong people type Chinese using the Cangjie (倉頡) method. I realize it is uncommon for people to learn how to deconstruct Chinese characters and type them with the Cangjie encoding. Further thinking about it, it is a brilliant idea that Chinese characters can be deconstructed this way. It makes me wonder how the inventor came up with this input methodology. So I dug deeper into its history and found an inspiring story.

On Learning zk-SNARK

· 2 min read
Jimmy Chu
Site Author

Recently I am picking up the knowledge necessary to understand what is going on in zk-SNARK. For those who are not familiar with this term, "zk" stands for zero-knowledge, and "SNARK" stands for succinct, non-interactive, argument of knowledge. What this term means is:

  • zero-knowledge: this is a way for a prover proving "something" to a verifier in such a way that the verifer will not gain any additional knowledge than before the interaction. We will elaborate the "something" in the following bullet points.

  • succinct: the proof is going to be short compared to the actual knowledge, and the verifier will be able to perform the verification quite fast. To be more concrete, if the knowledge m has a length of |m|, the proof may probably be O(log |m|) or even shorter.

  • non-interactive: there won't be rounds of back and forth interactions between the prover and verifier. The prover will only send a single message to the verifier.

  • Argument of Knowledge: This is the "something" mentioned in the first bullet point. Notice that this is not the knowledge itself, but a proof that demonstrate that the prover indeed knows the knowledge.

On Human Differences

· 3 min read
Jimmy Chu
Site Author

At times, when I observe two individuals, one brimming with motivation, purpose, courage, and wisdom, while the other seems to embody the concept of 'average,' I find myself pondering the root of this disparity. This contemplation is not merely an intellectual exercise but a philosophical journey that holds practical implications for shaping the future generation.