Back to all posts

Goshen-Community-Call_0427 - Technical Update


Introduction


We took all your questions and dedicated a community call to ensuring you were up to date on everything we have been developing for Goshen. In this article, we will discuss the motivations behind the decision and explore its plans for the future, including its stance on Ethereum Improvement Proposal (EIP)-4844, rollup technologies, account abstraction, and more.


Why Open Source the Goshen Codebase?


There are several key reasons for Goshen to open-source its code:

a. Transparency: By open-sourcing the code, Goshen demonstrates transparency in its operations, enabling anyone to review the code to ensure its security and accuracy. This helps build trust with users and investors.

b. Community Collaboration: Open-sourcing encourages collaboration from the broader community of developers and enthusiasts interested in the project. Allowing others to contribute to the code allows Goshen to benefit from diverse perspectives and expertise.

c. Security: Open-sourcing can improve the project's security, as vulnerabilities or bugs can be quickly identified and patched by the community. This helps prevent potential attacks and ensures the project remains secure.

d. Innovation: Open-sourcing encourages innovation, as developers can build on top of the existing codebase to create new applications and features. This drives adoption and growth of the project.


EIP-4844 and its Impact on L2 and Goshen


EIP-4844 introduces Blobs for submitting data on the Ethereum network. Blobs are short-lived and ephemeral, pruned after approximately two weeks, keeping disk usage manageable. Pricing Blobs cheaper than CALLDATA, which is stored in history forever, allows rollup fees to be reduced significantly, enabling Ethereum to remain competitive without sacrificing decentralization.


Goshen's Choice of Optimistic Rollup over zk-Rollup


Goshen chose Optimistic rollup over zk-rollup for several reasons:

a. Compatibility: Optimistic rollup allows Goshen to reuse existing Ethereum ecosystem code, reducing the risk of vulnerabilities and achieving EVM equivalence.

b. Scalability: While zk-rollup theoretically offers higher security, its scalability is not significantly different from Optimistic rollup. The zk-rollup solution is still under development and requires reimplementing Ethereum's core logic, which is already complex.

c. Security: As a user-oriented product, the theoretical security of the rollup solution does not necessarily represent overall security. The solution's security must withstand the test of time, and many attacked DeFi protocols often have vulnerabilities due to improper implementation.


Goshen's Plan for Integrating Account Abstraction


Account abstraction is a hot topic within the Ethereum community. Goshen's team is actively exploring relevant options and potential integration strategies.


Goshen Mainnet Launch


Goshen plans to launch its Mainnet shortly after EIP-4844 is implemented on the Ethereum Mainnet.


Transaction Fees on Goshen vs. Ethereum Mainnet


Goshen's transaction fees consist of two parts:

  1. Transaction execution fees and data publishing fees. Execution fees are 100 times lower than on Ethereum, but data publishing fees remain the same. The actual cost depends on the ratio of these fees for each transaction.
  2. For complex dApp interactions, costs can be almost 100 times cheaper than on the Ethereum Mainnet. The introduction of EIP-4844 will also significantly reduce data publishing fees.

Handling and Resolving Bugs or Issues Reported by Users


Goshen's development team addresses bugs or issues reported through various channels, such as Discord, GitHub, email, or the bug bounty program. Issues are triaged and prioritized based on severity and potential impact on the system. Critical fixes affecting security or stability are typically given higher priority than enhancements adding new features or functionality.

Once an issue has been triaged and prioritized, the development team works on fixing it, testing the fix to ensure it resolves the issue and does not introduce any new bugs. The development team then releases a new version of the software with the fix implemented.


Overview of Goshen's Development Stack


Goshen utilizes various technologies and programming languages in its development stack:

a. Solidity: Goshen uses Solidity to develop the Rollup contract deployed on the Ethereum mainnet. Solidity is a mature language for developing Ethereum smart contracts and offers numerous development and debugging tools.

b. Golang: Goshen Node, Sequencer, Proposer, and other backend services are developed using Golang. The Optimistic Rollup solution allows for significant reuse of the existing Ethereum codebase, and Golang supports high-concurrency scenarios, making it suitable for developing network-related infrastructure.

c. Rust: Goshen uses Rust to develop the state transition logic in the fraud proof. Rust is fast, memory-efficient, and provides low-level control without sacrificing high-level conveniences, making it ideal for developing the RISC-V instruction set.


Conclusion


Goshen's decision to open-source its codebase demonstrates its commitment to transparency, collaboration, security, and innovation. By addressing key questions about its future plans, Goshen offers valuable insights into its direction and potential impact on the blockchain ecosystem. As the project continues to evolve, it is expected that Goshen will remain at the forefront of blockchain technology and play a crucial role in advancing the Ethereum ecosystem.