Back
Road to Mainnet Updates
June 14, 2024

Road to Mainnet Updates

June 2024

We’re now four months along the Road to Mainnet, as our team and community gears up for the final push towards launch. This month, we achieved major milestones that include making our CanaryNet publicly available, testing core functionality against our acceptance criteria, and launching Testnet Beta. 

Our next major milestones are code freeze, which is scheduled for June 15, and finalizing the fully-featured Coinbase Puzzle by the end of June. 

CanaryNet now publicly available

This month, we deprecated the canonical Devnet in favor of having the community run their own isolated devnets to support third-party development and testing to help empower the community to submit bug fixes and protocol upgrades. We also made CanaryNet, previously a closed network, available to the public so they can access new features as soon as possible. When these features are fully validated, they will be upgraded to Testnet Beta.

Testing progress update

In March, we began our weekly core developer meetings with key ecosystem partners and established 7 acceptance criteria required for mainnet, outlined below in more detail under “Mainnet Test Plan.”

Since then, we’ve successfully tested all core functionality. After introducing a few updates, we plan to rerun the acceptance criteria again in Testnet Beta to ensure all new changes are working correctly. We are also implementing the final feature updates to the codebase, including updates to ARC-0041, and are preparing to release the fully featured Coinbase Puzzle.

Deploy on Testnet Beta now

Testnet 3 is officially deprecated and Testnet Beta, a new, public development environment is live, which will allow us to test our acceptance criteria in a more realistic, mainnet-like environment. If you haven’t migrated your app yet, set aside some time and join the folks already running on Testnet Beta.

The updated API endpoints are available below:

To start using and participating in Testnet Beta, you can get Testnet credits from the official Aleo faucets hosted on Leo Wallet and Puzzle Wallet.

Join the ARC-0041 audit contest

Passionate about sniffing out vulnerabilities and interested in making an impact on the security of the Aleo Network? We recently announced our partnership with Sherlock on the ARC-0041 contest, which offers $155,000 for pinpointing and describing code vulnerabilities in ARC-0041. You can register to participate now and begin submitting vulnerabilities on June 10th at 3pm UTC. 

Reaching these milestones has been no small feat, and it has taken no shortage of dedication and hard work. As always, we appreciate how our community comes together to support us as we work together to create a world where a secure blockchain is the new normal.

May 2024

One day, we anticipate that the Aleo Network will secure billions of transactions and data points. This means that certain aspects of the protocol (specifically, the cryptographic logic and consensus as it pertains to value) must be ready from day one. Together with dozens of ecosystem participants, the team is working towards fulfilling a set of acceptance criteria and testing methodology to help provide assurance of the highest standards of security. 

Since our last update in March, we’ve made strides towards our final goal of a mainnet launch. For starters, we implemented ARC-0037 and 0038 with the help of community partners StorSwift, Demox Labs, and Puzzle. These proposals greatly improved the security and usability for validators and delegators and created a new, program-based system for token delegation or “staking.” 

Additionally, the underlying protocol has also been updated to incorporate previous audit fixes, which includes incorporating a fully-synchronous BFT assumption into our Narhwal-Bullshark implementation, updates to the foundational credits.aleo program, and improved client sync performance.  

We’ve validated over 90% of our previously specified test cases in multiple testing environments, including a closed “DevNet” and a semi-open “CanaryNet”. In addition, we have completed testing the Coinbase Puzzle on Devnet and created cannons for public transactions, private transactions, and deployments for easier automated testing.

Testing in progress for ARC-0020

We’ve begun testing a new ARC, ARC-0020. ARC-0020 is a token standard enabling seamless public/private transfer to contracts, which is important for enabling secure DeFi applications on the Aleo Network. It adds several key features, including a one-step approval process for applying off-chain signatures, the ability to send private tokens to smart contracts, and the ability to connect token contracts to the company website using a digital signature. 

Some may be familiar with the popular ERC20 standard, ARC-0020 is similar and different in a few ways. Both define a framework for token interactions on the respective blockchains, featuring similar mechanisms for token transfers, balance inquiries, and third-party transaction approvals. However, ARC-0020 is unique by emphasizing security and efficiency in its operations, using offchain signatures to replace onchain approvals, reducing the amount of data publicly recorded on the blockchain. This approach aims to enhance data security compared to ERC20’s fully public transaction and approval records.

After numerous discussions among various community and ecosystem stakeholders, we’ve reached the current design of ARC-0020. Commenting and voting around ARC-0020 will be on the Aleo Governance platform here. We’ve added unit testing and trialed the initial implementation with ecosystem builders, and hope to implement it soon. 


Mainnet Test Plan

Two weeks ago, we announced our commitment to transparent updates around the criteria for and progress towards Aleo mainnet. Our belief that every individual has the right to privacy online has led us to this moment: creating and launching a network that is truly zero-knowledge by design.

Today, we’re ready to share our plan for a mainnet launch, the features needed to make it successful, and what you can expect going forward.

Programmable. Private. Permissionless.

We’re committed to launching a mainnet that fulfills Aleo’s core principles — programmable, private, and permissionless. We met with several of our ecosystem partners and established a set of baseline features that were most important to everyone, and from these defined the minimum acceptance criteria needed for a confident mainnet launch. 

Together, we worked to outline the features that could not be compromised on. In order to validate the features and their respective acceptance criteria, test cases were defined and agreed upon by not only members of the Aleo Foundation, but also the broader community of Aleo stakeholders. Each feature detailed below has three specific test cases with increasing amounts of stress to satisfy the minimum acceptance criteria and ensure the network is ready to launch.

aleoBFT Consensus

AleoBFT is our novel consensus mechanism that combines the finality of proof-of-stake with the powerful incentive mechanism of proof-of-work. This hybrid architecture helps us achieve instant finality for block confirmation while utilizing a “coinbase puzzle” to reward provers and incentivize the development of better hardware for zero-knowledge cryptography.

Our goal is a secure and resilient consensus system that minimizes downtime,  is robustly Byzantine fault tolerant, and ensures validators can rapidly synchronize to the latest network state, maintaining overall system integrity and performance.

Client Sync

Client synchronization is crucial for the proper functioning of a network, as it ensures that all participants have a consistent and accurate view of the global state. We're focused on ensuring client nodes can sync from any point in the ledger history to tip quickly and reliably.

This involves optimizing two key methods:

  • CDN snapshots for rapid updates

  • Peer-to-peer gossip for efficient, direct data sharing among nodes

Private & Public Transactions

Public and private transactions, both integral to our mainnet launch, are distinct yet interconnected features we're rigorously testing. Users can generate zero-knowledge proofs to transfer value via the record model, as specified in “ZEXE: Enabling Decentralized Private Computation”. For public transactions, users have the capability to transparently update the state using the finalize statement.

Program Deployments

Enabling the development of applications on Aleo is key to our mission, with program deployment playing an essential role. Users will have the capability to create new Aleo programs, utilizing the execute and finalize statements to bring their applications to life. This functionality is foundational to expanding our ecosystem and empowering developers to innovate within Aleo’s secure and privacy-focused environment.

Coinbase Puzzle

The coinbase puzzle is a proof-of-work-type puzzle that is intended to incentivize the development of faster software and hardware for generating zero-knowledge proofs. Provers can submit valid solutions to a coinbase puzzle to receive a reward.

We're integrating the coinbase puzzle to drive advancements in zero-knowledge proof technology, rewarding provers in a way that maintains network stability and sustainable tokennomics.

Staking (ARC 0038

Users have the ability to stake Aleo credits to a validator. Our community partner, Demox Labs, will be leading the effort to implement ARC-0038 on the program level, as well as an audit of that implementation to ensure that the approach is secure. Demox will also be implementing a liquid staking protocol to provide even more flexibility for staking.

Validator/worker separation (ARC 0037)

Our community partner, Provable, has taken the lead on ARC-0037 and published an implementation and design spec that is being reviewed and tested by another one of our community partners, Puzzle.

ARC-0037 aims to reduce the security burden on validators by providing a separate withdrawal address. To address security concerns, during bond_public, validators and delegators designate an unchangeable withdrawal address, securing validator funds in case of compromised "hot" keys. Unbonded credits are directed to this address upon executing claim_unbond_public.

Conducting robust network testing

Several teams from the ecosystem, namely Demox Labs, Monadicus, Supranational, Puzzle, and Kryha, collaborated with us to extend the testing protocol to ensure the network's readiness for launch. To achieve this, we're introducing a range of testing tools. These tools include a genesis block generator, ahead of time (AOT) transaction and block history generation, and node topology management systems. Additionally, we've launched a canary network in partnership with these ecosystem members. These testing tools help us check how well the network's consensus mechanism works, how smoothly clients sync up, and how fast transactions are processed.

To test these various features against their acceptance criteria, the Aleo Network Foundation team will set up and run a series of test environments, starting with an internal devnet and “canary net”. The devnet is an internal testing environment where the Aleo Network Foundation and Provable are managing the testnet validator rollout, and where initial features are tested before being released upstream. The canary net is a more decentralized, semi-open network that, lets us test the network under more realistic conditions. 

We also plan to launch another testnet, which will be fully open and permissionless, and which should most closely approximate what the Aleo mainnet will look like.

What’s next

Our community has been a part of the Aleo story from the beginning. As we come together to launch mainnet, we are working closely with partners across the ecosystem to support the testing efforts and to verify our readiness. It is our goal to ensure the network meets the needs of our users, not just on day one, but every day after that. It’s truly a team effort, and we want everyone to be aware of our progress towards completing each of these important tests. 

You can refer back to this post for updates and check out the Discord for regular updates from our community call.

Related