Crypto AMA with Balancer (10.1.2019)
Guests:
Fernando Martinelli
FollowTheChain
Moderator:
Moderator:
Alright everyone, let’s do this. Please give a warm welcome to Fernando, co-founder & CEO @ Balancer Labs!
As a reminder for everyone participating—please keep the discussion respectful at all times.
Fernando—could you start off by giving us a brief bio on your background as well as how you got started in crypto? And then a short overview of Balancer and a brief update on your progress to date? We’ll then be off to the races with questions.
Fernando:
Hello everyone and thanks for the invite!
I'm Fernando, co-founder & CEO @ Balancer Labs, the company developing Balancer Protocol. I'm a Brazilian control & automation engineer with a masters in robotics and image processing. I have already founded 4 companies prior to BLabs, did an MBA at the Sorbonne University and worked as a strategy consultant for Bain & Co in Germany.
Thanks to FollowTheChain I have been introduced to crypto in early 2013. FollowTheChain is a long-time friend, crypto research partner and close collaborator to BLabs. He is joining me today to help answer any questions you have.
We’ve been following Ethereum since its inception. In early 2016 we got in touch with the Maker team and met them all in person in their first gathering in Miami. We collaborated with research and simulations on automatically updating system parameters to ensure DAI’s peg is maintained. Being very active members of the Maker community in its early days is how we got to know Nikolai Mushegian better. Earlier this year he became Balancer’s seed investor, co-founder and chief architect.
Balancer came to life early last year as a project within BlockScience. Over time we realized there was potential for it to become an important primitive not only for DeFi/Ethereum but also for other chains that hold tokenized assets. We then spun it off from BlockScience and created Balancer Labs. We got out of stealth mode about 10 days ago.
So, what is Balancer?
It's a liquidity provider and portfolio management tool. Balancer provides a smart contract factory that enables the permissionless creation of new Balancer pools.
A Balancer pool is a smart contract that contains 2 or more different types of tokens. It allows anyone to trade any pair of tokens contained in the pool. This way, the pool achieves two main goals at once:
1) It automatically rebalances the portfolio of tokens it holds (e.g if 80% of the value of the pool is in MKR and 20% is in DAI, regardless of the price of MKR relative to DAI, you’ll always have these same proportions of value inside the pool).
2) It generates revenue from trading fees to liquidity providers of the pool.
Balancer protocol supports two types of balancer pools, private and shared:
- *Private pools* are fully flexible. They allow their creator to change any parameters at any time. For instance, a private pool could start with 15% MKR, 15% WETH and 70% DAI, with a 0.1% trading fee. The owner can at any time add a new token type, change the weights of existing tokens or even change the trading fee. However, only the creator of the pool can contribute liquidity to it.
- *Shared pools* must have all their parameters defined upon creation and are fixed forever. A shared pool creator does not have ANY special rights over the pool they created. Anyone can contribute liquidity to shared pools and get pool shares in return. The amount of shares a liquidity provider gets is the same whether they are early liquidity providers or late (no bonding curve embedded)
Participant:
Hi Fernando! What fee levels do you think will be most popular?
(Order of magnitude)
Fernando:
Hi, we believe that they will gravitate around a little bit less than the average across other exchanges. But it really depends on the tokens in the pool.
Participant:
Ah, interesting. So you don't anticipate people setting, like, 10% fees, to reduce the impermanent loss from rebalancing?
Fernando:
In the end, since the trading fees are customizable, we believe the market will find a sweet spot on its own.
Fernando:
We'll be totally permissionless, I'm sure someone will try that out. Let's see how these pools behave in practice.
Participant:
Hi Fernando! Could you compare and contrast Balancer to protocols many of us are familiar with such as 1) Uniswap and 2) Set protocol?
Fernando:
Hey, sure. Let me expand on it
Balancer was conceptualized and designed well before Uniswap was made public, Balancer can be seen as a more flexible/customizable and generalized protocol for liquidity providers. While from our PoV Uniswap was created with a focus on being an exchange (see URL .exchange), Balancer has been designed from the ground up to be a great tool to attract liquidity, allowing for example any custom portfolio to instantly become a Balancer pool an earn trading fees. This significantly opens up the design space for portfolio management and index funds.
Set Protocol does a great job at automating rebalancing functionality and even more complex portfolio management strategies like moving average crossovers. The big difference to Balancer, however, is that Set Protocol consumes liquidity in the occasional events when a rebalance is triggered.
Balancer protocol OTOH *provides* liquidity. It continuously rebalances its pools in that it lets traders buy tokens when a pool needs to sell them to rebalance and vice-versa. The two main advantages of that strategy are:
1) we do not have sporadic trading events that may be subject to slippage and front-running (imagine traders knowing that a big set is about to auction off millions of DAI)
2) we actually make money from traders that use Balancer pools to trade, increasing the chances of making a pool profitable.
Set protocol has a great deal of flexibility in different trading strategies it support while Balancer supports only continuous rebalancing by default. Nonetheless one can build and emulate all sorts of strategies by using smart contracts that own private pools.
Participant:
Hi Fernando! How do you think about composability for Balancer? Beyond the smart order routing engine and the pooling features, can devs build on / plug into balancer to provide other services such as staking management, tax reporting/optimization, etc..?
Fernando:
Great question, it actually already contains some answers that we believe are viable =) Let me expand on some other ideas we have:
The owner of a private pool is an ethereum address. Such address could be a smart contract embedding any rules desired: a company multisig; the treasury of MolochDAO; the emulation of a shared Balancer pool (forwarding liquidity to the underlying private pool) with customized governance; a proxy for atomizing arbitrage actions (making the most of composability opportunities); a contract for automating portfolio strategy updates (allowing anyone to poke it, triggering a change of the private pool parameters according to pre-specified rules); and so on... it’s a huge design space for others to build on top of.
Participant:
How do you avoid sandwich attacks on the price oracle?
Fernando:
Yes. Balancer introduces an exit fee that is also customizable by the pool creator. This fee goes almost fully back to the remaining liquidity providers (so can be seen as a tax paid by short-term oriented LPs to long term oriented LPs). A small part of that fee will go to BLabs for the development/support of Balancer Protocol. We imagine a common exit fee will be around 0.1% (which does not change much of the profit/loss an LP has after staying in the pool for a few months). From that 0.1% we plan on getting 10%, so in the end the protocol will have a 0.01% fee over the liquidity that exits pools.
Fernando:
We do NOT take any cut on trading fees though
We believe that an exit fee has the advantage of providing an incentive alignment for Balancer to attract long term oriented liquidity providers. A 0.1% exit fee on the principal should not bother them at all if they stay long enough in the pool.
Participant:
Could you please help me understand what's considered an exit?
Fernando:
Great question. We expect others to come up with solutions to that. For example one thing that comes to my mind is using an average over a few blocks in the past. So the attacker would have to spend a lot of money gaming the prices in many different blocks in the past.
Fernando:
An exit is when the liquidity provider withdraws liquidity from a Balancer pool
Participant:
> Nonetheless one can build and emulate all sorts of strategies by using smart contracts that own private pools.
Is Balancer building the tools for these types of strategies?
Participant:
So if I'm a liquidity provider and have BAT, REP, and OMG in Pool A and then trade my REP for BAT, do I always exit Pool A?
Fernando:
Our total focus is to first build Balancer protocol as the best primitive possible: well tested/audited, clear documentation, low surface of attack etc. However, if we feel that the community is taking to long to come up with these tools on top of Balancer we do envisage taking on that role with specific dedicated teams within Balancer Labs.
Fernando:
Providing liquidity is totally separate from trading. You can only trade tokens that are not in the pool already. When you trade you only pay trading fees.
Participant:
Got it. Thanks.
FollowTheChain:
Re Composability, here's another thought.
Pools accept any ERC20, so the community will be able to innovate on top: creating whatever building blocks they want and throwing them into Balancer pools, in a permissionless way.
An example to illustrate:
In a pool consisting of lent stablecoin receipts, depositing cDAI instead of DAI would allow liquidity providers to profit from fees while also accruing interest from lent DAI. This however would cause some impermanent loss due to different rate of interests each stablecoin has.
But one could create a “synthetic lent DAI” (SLDAI): user sends DAI to wrapper contract, which forwards it to Compound and stores cDAI; each SLDAI is always worth 1 DAI, and increased value from cDAI is forwarded to another address as newly minted SLDAI. If the forwarding address is a Balancer pool, the pool accumulates more SLDAI (instead of having a more valuable cDAI), eliminating impermanent loss.
You then have the best of both worlds: revenues generated from trading fees PLUS revenues generated from lending platforms, without impermanent loss.
So composability comes in two different flavors: you can use any building block to throw into a pool, and you can also use the private pools as building blocks for more elaborate constructs on top.
FollowTheChain:
By "on top" I mean the different ways a smart contract can control that private pool, as mentioned in this replied msg.
Participant:
How does smart order routing work in Balancer?
Fernando:
We have an efficient algo that uses some mathematical simplifications to solve the multi-variable non-linear optimization problem of choosing what is the best combination of pools to trade with and how much the trader should trade with each pool.
Participant:
That's neat. The added complexity highlights the importance of transparency to help Balancer participants understand holdings, prices, and risk profiles of these assets at various levels of aggregation. So at scale, that design may trigger modularity related network effects.
Participant:
The idea is that by taking all pools you trade with to the same price point you are not leaving money on the table for arb traders to profit. You can prove that by taking different pools to the same price point the trade is equivalent to trading with only one pool with the combined liquidity of all pools.
Does that make sense?
Participant:
Yup, thanks!
FollowTheChain:
I agree. For instance: some people may feel Compound is not decentralized enough and choose another lending protocol to build that wrapper contract I mentioned. Anyone will be free to participate as a liquidity provider in the pools they feel comfortable with, taking everything into account: expected impermanent loss, trading fee, exit fee, governance of the pool (if not a shared pool), exposure to other building blocks failing, etc. As expected, there will be trade-offs and different risk profiles.
Participant:
This has been a fantastic back and forth, thanks from all the lurkers like me.
Fernando:
Thanks, glad you are around! To other lurkers, please don't be shy =)
Participant:
+1, thanks guys 🙂
Fernando:
Thanks for having us!
Participant:
My hallucination is that ETFs are to index funds what Balancer might be to DEXs. The technology is different but ETFs introduced create/redeem related liquidity and more real time pricing features that index funds didn't have. If Balancer succeeds in solving liquidity and other ineficiencies, do you envision a world where DEXs as we know them today are obsolete?
Participant:
The largest Uniswap pools today are Dai/Eth, Mkr/Eth, USDC/Eth, etc. -- do you expect Balancer to compete with Uniswap for those same pools when it launches? If so, why might they choose one over the other? If not, why?
Participant:
We believe there is room for conventional DEXs and also Balancer/Uniswap. There are a set of trade-offs that will lead different traders to different options of decentralized liquidity.
Fernando:
My feeling is that Balancer pools that differentiate themselves from existing Uniswap pools in a smart way (in terms of fees, combination of token types etc) are the ones that will be most likely to succeed in attracting liquidity.
Moderator:
Makes sense. 10-minute warning for everyone, get your questions in!
FollowTheChain:
In a scenario where a lot of real-world financial instruments start to be tokenized, and blockchains start to scale and have a UX that can reach wider audiences (I admit this could be a 10+ yrs future), maybe Balancer could become the underlying protocol for liquidity provision and trading of such instruments as well (not just today's tokens). In short: it could grow out of the cryptosphere when blockchains mature. 💭
Moderator:
As we wrap up here guys, can you walk us through Balancer's launch schedule?
Fernando:
Our expectation is to launch by the end of the year. This will of course depend on the results of audits we are already starting to have.
Moderator:
Great 👍
Last questions?
Participant:
Thanks team!
Moderator:
Alright everyone, please give a big thank you to Fernando and FollowTheChain for coming on today!
Guys, what's the best way to get in touch + stay up to date with Balancer?
Fernando:
Thanks everyone!
If you are interested in knowing more please follow us on twitter: @BalancerLabs
Participant:
Thanks so much Fernando and FollowTheChain
FollowTheChain:
Thanks everyone!
Moderator:
Great. Thanks again guys and thanks everyone for tuning in today!