What Is Kyber Network (KNC)?
Kyber Network is a hub of liquidity protocols that aggregates liquidity from various sources to provide secure and instant transactions on any decentralized application (DApp). The main goal of Kyber Network is to enable DeFi DApps, decentralized exchanges (DEXs) and other users easy access to liquidity pools that provide the best rates.
All transactions on Kyber are on-chain, which means they can be easily verified using any Ethereum block explorer. Projects can build on top of Kyber to utilize all the services offered by the protocol, such as the instant settlement of tokens, liquidity aggregation, and a customizable business model.
Kyber looks to solve the liquidity issue in the decentralized finance (DeFi) industry by allowing developers to build products and services without having to worry about liquidity for different needs.
The Kyber Network Crystal (KNC) token is a utility token that is the "glue that connects different stakeholders in Kyber's ecosystem." KNC holders can stake their tokens in the KyberDAO to help govern the platform and vote on important proposals — and earn staking rewards in Ethereum (ETH) that come from trading fees.
What Makes Kyber Network Unique?
Kyber Network is the first tool that allows anyone to instantly swap tokens without the need of a third-party, like a centralized exchange. The unique architecture of Kyber is designed to be developer-friendly, which enables the protocol to be easily integrated with apps and other blockchain-based protocols.
DeFi has many use cases and possibilities. Therefore, no single liquidity protocol can fit the needs of all liquidity providers, takers, and other market participants. Kyber’s liquidity hub architecture allows developers and the Kyber team to rapidly innovate and integrate new protocols into the overall Kyber Network to cater to different liquidity needs.
In April 2021, Kyber launched the Kyber DMM, the world’s first dynamic market maker protocol (DMM). Kyber DMM is a next-generation AMM designed to react to market conditions to optimise fees, maximise earnings, and enable extremely high capital efficiency for liquidity providers, especially for stable pairs with low variability in price range (like USDC/USDT, ETH/SETH). They will be able to support pools with extremely high amplification factors, which means given the same liquidity pool and trade size, slippage can be 100x (or more) better than typical AMMs. Depending on their amplification strategy, liquidity providers can maximise the use of their capital and have the opportunity to earn much more fees relative to their contribution size, while takers can enjoy extremely low slippage on their trades.
Kyber DMM is the first of many new liquidity protocols that will be launched on the Kyber 3.0 Liquidity Hub.
In the Kyber ecosystem, KNC token holders play an important role in deciding new growth and value-capture opportunities and incentive mechanisms. Through KyberDAO, KNC holders can participate in the governance of the network by voting on important proposals. Kyber’s community is sizable and made up of a wide range of developers, in addition to other members of the blossoming DeFi industry.
Kyber’s fully on-chain design enables the protocol to maintain full transparency and verifiability. The platform claims to be the most used liquidity hub in the world.
How Is the Kyber Network Secured?
As an ERC-20 token, Kyber is built on top of and secured by the Ethereum blockchain. In addition, Kyber uses an extensive trust and security model that protects users from misbehaving administrators or exchanges, thanks to security measures built in both at the protocol and smart contract level.
The platform has been audited by several third-party security firms and researchers, including Chainsecurity, which have determined that the protocol is secure and hence free of vulnerabilities.
TransparentUpgradeableProxy.constructor(address,address,bytes)._admin (#346) shadows:
- TransparentUpgradeableProxy._admin() (#439-445) (function)
BEP20UpgradeableProxy.constructor(address,address,bytes).admin (#475) shadows:
- TransparentUpgradeableProxy.admin() (#383-385) (function)
Rename the local variables that shadow another component.
Additional information: link
Modifier TransparentUpgradeableProxy.ifAdmin() (#366-372) does not always execute _; or revert
All the paths in a modifier must execute _ or revert.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#141-147):
- (success) = recipient.call{value: amount}() (#145)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#207-228):
- (success,returndata) = target.call{value: weiValue}(data) (#211)
Low level call in UpgradeableProxy.constructor(address,bytes) (#255-263):
- (success) = _logic.delegatecall(_data) (#260)
Low level call in TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (#429-434):
- (success) = newImplementation.delegatecall(data) (#432)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Proxy._delegate(address) (#23-43) uses assembly
- INLINE ASM (#25-42)
Address.isContract(address) (#114-123) uses assembly
- INLINE ASM (#121)
Address._functionCallWithValue(address,bytes,uint256,string) (#207-228) uses assembly
- INLINE ASM (#220-223)
UpgradeableProxy._implementation() (#280-286) uses assembly
- INLINE ASM (#283-285)
UpgradeableProxy._setImplementation(address) (#301-310) uses assembly
- INLINE ASM (#307-309)
TransparentUpgradeableProxy._admin() (#439-445) uses assembly
- INLINE ASM (#442-444)
TransparentUpgradeableProxy._setAdmin(address) (#450-457) uses assembly
- INLINE ASM (#454-456)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['^0.6.0', '^0.6.2']
- ^0.6.0 (#5)
- ^0.6.2 (#91)
- ^0.6.0 (#235)
- ^0.6.0 (#317)
- ^0.6.0 (#470)
Use one Solidity version.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#207-228) is never used and should be removed
Address.functionCall(address,bytes) (#167-169) is never used and should be removed
Address.functionCall(address,bytes,string) (#177-179) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#192-194) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#202-205) is never used and should be removed
Address.sendValue(address,uint256) (#141-147) is never used and should be removed
Proxy._implementation() (#49) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.6.0 (#5) allows old versions
Pragma version^0.6.2 (#91) allows old versions
Pragma version^0.6.0 (#235) allows old versions
Pragma version^0.6.0 (#317) allows old versions
Pragma version^0.6.0 (#470) allows old versions
solc-0.6.4 is not recommended for deployment
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
TransparentUpgradeableProxy.upgradeToAndCall(address,bytes).newImplementation (#429) lacks a zero-check on :
- (success) = newImplementation.delegatecall(data) (#432)
UpgradeableProxy.constructor(address,bytes)._logic (#255) lacks a zero-check on :
- (success) = _logic.delegatecall(_data) (#260)
Check that the address is not zero.
Additional information: link
Token is not listed at Mobula.Finance
Additional information: link