The CodeHawks platform has an upcoming audit on the Sablier protocol, so I decided to read through the docs and familiarize myself with the existing deployments before the audit contest goes live.
In traditional finance, payment is sent out in discrete lump sum amounts. These payments have numerous fundamental problems, such as being prone to human error and being controlled by numerous intermediaries. Sablier innovates on this concept by allowing continuous streams of payment in any ERC20 token. This technology enables numerous use cases not possible in traditional finance. Firstly Sablier allows for automated vesting, where payment can be sent out on a pre-defined bases to recipients without the need of constant work from a treasury team. The recipient receives a fraction of their allocated compensation every second, granting them more freedom in their finances. This model also eliminates Schelling points in the speculation of token prices. When vesting is done manually, the date and time of a distribution, if known, will effect the market itself. With continuous payment, there is no single discrete moment exists to create a coordinated disruptive market action. The transparency of the Sablier protocol also allows all payment streams to clearly defined in terms of purpose and duration. Errors can also be corrected early, as a payment to the wrong address can be canceled long before the full sum is transferred.
Sablier also allows for a gradual airdrop stream when launching a new project. Often, crypto projects will airdrop their initial supply and the token will dump immediately when recipients sell. The stream method allows for the token supply to be gradually released over time. Additionally, the stream admin has the ability to cancel the steam to any recipient who has stopped engaging with the project. This airdrop management can promote project longevity.
The protocol is built on the ER-1620 standard which was the first proposal on Ethereum for streaming payments. This supports simple linear lockups, where the token becomes available on a by-second basis. However, the programmability of the protocol allows for arbitrarily complex lockups. A "cliff" can be built, where tokens are accumulated but cannot be withdrawn before a certain date. Exponential or logarithmic lockups can be created, along with monthly distributions, or any combination of the above. The only real limitation is the function must be monotonic, since the claimable amount of tokens cannot decrease with time.
Each stream is wrapped in an ERC-721 NFT which grants the owner the permission to withdraw the accumulated tokens. The NFT further creates DEFI opportunity, since the NFT itself can be traded or lent on a secondary market.
No comments:
Post a Comment