Yezcoin, a project that aims to “create a safe environment inside of the smart economy with ID Verification and ID Management,” has airdropped 5 YEZ tokens to every wallet containing NEO. The airdrop completed successfully, however some network performance issues were encountered due to the large number of free transactions that required validation.

The Yezcoin team aims to offer a variety of services, including a decentralized exchange with the performance of a CEX. It recently released an Android wallet application and launched the “Shop for YEZ” program where users that completed KYC/AML were able to submit receipts in return for 5% of the spent value in YEZ.

As noted on the Yezcoin website, the team aims to “increase security” for traders by requiring biometric data. The project offers several airdrop campaigns to users that submit their government-issued ID information.

Airdrop Network Difficulties

The most recent airdrop saw 5 YEZ distributed to each wallet that contained NEO. During the airdrop on October 20th, the Neo blockchain experienced lengthened block times due to overflowing consensus node mempools.

The airdrop involved thousands of free transactions being distributed within a small window. As only 20 free transactions may be processed within one block, the remaining transactions must be held over for following blocks. This means only a small number of transactions are being processed, with most taking minutes if not hours to be included in blocks.

Due to the performance degradation experienced by nodes with full mempools, it is speculated that some consensus nodes began to struggle with block validation. As they could not provide signatures on new block proposals in a timely manner, new blocks were delayed from being added to the network.

The Neo consensus mechanism, dBFT, employs an exponential backoff procedure through its view change mechanism, ensuring network liveness by delaying future blocks until consensus nodes can achieve agreement on new blocks. However, due to this backoff, blocks can be delayed for minutes or even hours until a sufficient number of nodes are able to participate in consensus.

It should be noted however that despite the presence of some long blocks, the network still maintained an average block time of 18.5 seconds during the congestion. This achievement can be attributed to the changes made in dBFT 2.0, which provided the blockchain with several stability improvements.

Potential Solutions

Although the mechanism did behave as expected in this scenario, it highlighted the need to further address the delays between blocks that can occur when the mempool begins to bloat. Neo core developers will investigate and seek further improvements and optimizations to ensure the network remains performant under high load.

In Neo3, the free transaction model has been removed, which ensures blocks fill up to capacity so that the network can consistently process large batches of transactions. Alternative mechanisms for providing users with free transactions are being explored.

For the existing MainNet, other strategies can be employed by projects looking to distribute tokens through airdrops or other mechanisms. One example is the usage of priority fees; projects are encouraged to attach the minimum transaction fee (0.001 GAS) to each transaction. This ensures that airdrop transactions are able to fully saturate blocks, allowing large quantities of transactions to be processed in a timely manner.

Alternatively, projects could use a manual claim system, allowing users to trigger an airdrop transaction off-chain, lowering the number of transactions that needed to be validated in a given time by consensus nodes.