【國立臺灣大學109學年度畢業典禮 致詞代表 政治學系林語萱】
Student Address, National Taiwan University Commencement 2021
Yu-Hsuan Lin from the Department of Political Science
.
校長、師長、家長,和在螢幕前難以置信這就是我們的畢典,卻也真實面對的所有臺大畢業生,大家好,我是政治學系四年級的林語萱。
比起說著我們會鵬程萬里、前程似錦,今天,我更想邀請各位一同擔任NTU Sweety Course的貢獻者,整理出綜合過去四年,且能帶著走出校園的三個成長學分:勇氣、彈性和自己。
大二上,我休了學,在零下三十幾度的低溫、強颱般的逆風和看不見天際線的白色大地中,越野滑雪了半個多月,只為了跟著亞洲第一支南極長征隊伍,在世界的盡頭,找到那個能夠超越極限的自己。參與這個計畫,或許是大多人眼中的不正常,然而它卻成為了我人生中最有收穫的選擇之一。相信在臺大這個充滿可能性的校園裡,許多人心中,也有這麼一個想征服的南極,它可能不怎麼正常,也不怎麼容易,但別忘了帶著勇氣這個學分去做、去闖你認爲是對的事物。
再來,還有個學分,叫做彈性。還記得那些腳踏車被水源阿伯給拖吊,只好改成走路或騎Ubike2.0的日常嗎?我們在一次又一次的校內小組合作、校外的家教實習中,反覆上著適應不同情況的實驗課,而疫情又加重了它的loading,原本以為上一屆已經夠慘,沒想到這一屆竟然還更糟的情況下,我們滾動式的調整上課的樣貌,努力用NTU Cool的1.5倍速上課。在唯一不變就是變的這個世間常態中,臺大教會了我們保持彈性的生存之道。
最後,最最重要的學分,是我們自己,沒錯,就是在螢幕前的每一個你你你。從大一忙碌於轉系和雙主修的菜鳥,變成焦慮著左右張望他人下一步的大四老人,我們總汲汲營營的害怕落後別人,擔心無法成為自己心中想成為的樣子,但當回過頭,騎過幾千次椰林大道後的我們,其實早已不是從前那個自己了。所以未來,當外界的環境,督促和逼迫著我們精益求精,好還要更好時,記得回到內心,聽聽它的聲音,由它來告訴我們:你不必成為誰,你只需要相信自己。
除了勇氣、彈性和自己這三個學分外,還有一張加簽單也別忘記,是一路陪伴我們的家人和師長,一個人的任性,需要很多人的愛才能夠成全,謝謝你們在成長路上的陪伴和鼓勵,我們才能夠放肆的任性。
最後的最後,我想起了一戰後的西班牙大流感,它帶走的生命比戰爭還多,但在時間洪流下也終究有結束的一天。誰知道一百多年後的今天,我們也被迫參與了歷史的進程。也許未來看似困難重重,但卡繆在瘟疫裡提醒了我們:「惟有甘願在困難的堅實土壤中去生根立足,才能夠獲得果實。」今天後的明日,我們將在不同的土壤中勇敢挑戰、彈性應對和相信自己,且帶著滿滿的愛去生根立足,為自己、為我們所身處的社會,產出最甜美的果實。準備好了嗎?讓我們一起推動歷史的進程吧!臺大109屆的畢業生們,畢業快樂,或許現在的我們無法面對面相聚,but I’ll see you down the road!謝謝大家。
.
==============================
.
President Kuan, respected faculty, honored guests and family, and to my fellow NTU graduates who would never have imagined our commencement hosted in this way but still making the best of it, good morning. I am YU-HSUAN LIN, from Department of Political Science.
Rather than wishing the best and the brightest futures to us all, today, I want to urge each and every one of you to join in and contribute to NTU Sweety Course, and put together three amongst the most important credits from these past four years. They are courage, elasticity, and ourselves.
I took a temporary leave in my sophomore year. At minus 30 degrees Celsius, with howling headwinds and blizzards all over the sky, I did cross-country skiing for more than half a month, to challenge myself beyond the limit at the very end of the world. My Antarctic venture may seem absurd to many, but it was one of the most rewarding things I’ve ever done in my life. At NTU, a campus of endless possibilities, we all have a South Pole in our hearts, an undoubtedly challenging and perhaps laughable goal we yearn to achieve. But do not forget the credit of courage we have gained from these past years, and choose whatever it is that you believe is right.
The next credit, is adaptability. Do you remember the days when our bikes being towed and having to walk or take Ubike 2.0 to class? We learned to adapt through group projects in the classes and private tutoring off-campus, and the ongoing pandemic has added extra loading to our everyday challenges. We thought the previous year was bad, but this year is even worse. We adjust the way we took courses on a rolling basis, trying to catch up from NTU COOL at 1.5x speed. The only thing that doesn't change is change itself. NTU taught us how to adapt to survive.
Last but not least, and arguably the most important credit, is ourselves. That’s right, It’s each and every one of you behind the screens. From a first-year newbie busy planning your double major or transfer, to a senior wandering around anxiously as our peers taking next steps, we work hard painstakingly in fear of falling behind of other, and wonder if we can become the person we want to be. But looking back, after countless rides along the Royal Palm Boulevard, our old selves have already long gone. So, in the future, when the outside world is constantly pushing us to make the best even better and to reach beyond limits, remember to listen to that little voice inside of you. Listen to it as it tells you, there isn’t a certain or definite role you must fulfill, all you need is to have faith in yourself.
Besides the three credits I just mentioned, don’t forget the Petition for Adding Course: our families and professors who accompanied us along our journeys. It requires loves from many to accomplish caprice of one. Thank you for your company and encouragement along the way to allow us to be self-willed boldly.
Lastly, the Spanish flu outbreak after WWI came to my mind recently. It took even more lives than the battle fields. However, it too, eventually ended as time went by. Who knew that after a hundred years, we would also be a part of a similar history? It seems that adversities are awaiting us, but Albert Camus had already reminded us in La Peste “Like wandering shadows that could have acquired substance only by consenting to root themselves in the solid earth of their distress.” When tomorrow comes, in different corners on the Earth, we shall challenge, respond adaptively, and believe in ourselves. With each step that we take, we take with all the love there is within us. Let us contribute to ourselves and to our society, and may our efforts bear the sweetest fruits. Are you ready? Let’s push history forward! Hats off to all NTU graduates of 2021! Although we are unable to celebrate face to face now, I’ll see you down the road! Thank you all!
.
詳見:
https://www.facebook.com/NTUCommencement/posts/2718181071805650
.
#臺灣大學 #畢業典禮 #NTUCommencement2021 #學生致詞代表 #臺大政治學系 #林語萱
your only limit is your mind 在 Taipei Ethereum Meetup Facebook 的最佳解答
📜 [專欄新文章] Uniswap v3 Features Explained in Depth
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Once again the game-changing DEX 🦄 👑
Image source: https://uniswap.org/blog/uniswap-v3/
Outline
0. Intro1. Uniswap & AMM recap2. Ticks 3. Concentrated liquidity4. Range orders: reversible limit orders5. Impacts of v36. Conclusion
0. Intro
The announcement of Uniswap v3 is no doubt one of the most exciting news in the DeFi place recently 🔥🔥🔥
While most have talked about the impact v3 can potentially bring on the market, seldom explain the delicate implementation techniques to realize all those amazing features, such as concentrated liquidity, limit-order-like range orders, etc.
Since I’ve covered Uniswap v1 & v2 (if you happen to know Mandarin, here are v1 & v2), there’s no reason for me to not cover v3 as well ✅
Thus, this article aims to guide readers through Uniswap v3, based on their official whitepaper and examples made on the announcement page. However, one needs not to be an engineer, as not many codes are involved, nor a math major, as the math involved is definitely taught in your high school, to fully understand the following content 😊😊😊
If you really make it through but still don’t get shxt, feedbacks are welcomed! 🙏
There should be another article focusing on the codebase, so stay tuned and let’s get started with some background noise!
1. Uniswap & AMM recap
Before diving in, we have to first recap the uniqueness of Uniswap and compare it to traditional order book exchanges.
Uniswap v1 & v2 are a kind of AMMs (automated market marker) that follow the constant product equation x * y = k, with x & y stand for the amount of two tokens X and Y in a pool and k as a constant.
Comparing to order book exchanges, AMMs, such as the previous versions of Uniswap, offer quite a distinct user experience:
AMMs have pricing functions that offer the price for the two tokens, which make their users always price takers, while users of order book exchanges can be both makers or takers.
Uniswap as well as most AMMs have infinite liquidity¹, while order book exchanges don’t. The liquidity of Uniswap v1 & v2 is provided throughout the price range [0,∞]².
Uniswap as well as most AMMs have price slippage³ and it’s due to the pricing function, while there isn’t always price slippage on order book exchanges as long as an order is fulfilled within one tick.
In an order book, each price (whether in green or red) is a tick. Image source: https://ftx.com/trade/BTC-PERP
¹ though the price gets worse over time; AMM of constant sum such as mStable does not have infinite liquidity
² the range is in fact [-∞,∞], while a price in most cases won’t be negative
³ AMM of constant sum does not have price slippage
2. Tick
The whole innovation of Uniswap v3 starts from ticks.
For those unfamiliar with what is a tick:
Source: https://www.investopedia.com/terms/t/tick.asp
By slicing the price range [0,∞] into numerous granular ticks, trading on v3 is highly similar to trading on order book exchanges, with only three differences:
The price range of each tick is predefined by the system instead of being proposed by users.
Trades that happen within a tick still follows the pricing function of the AMM, while the equation has to be updated once the price crosses the tick.
Orders can be executed with any price within the price range, instead of being fulfilled at the same one price on order book exchanges.
With the tick design, Uniswap v3 possesses most of the merits of both AMM and an order book exchange! 💯💯💯
So, how is the price range of a tick decided?
This question is actually somewhat related to the tick explanation above: the minimum tick size for stocks trading above 1$ is one cent.
The underlying meaning of a tick size traditionally being one cent is that one cent (1% of 1$) is the basis point of price changes between ticks, ex: 1.02 — 1.01 = 0.1.
Uniswap v3 employs a similar idea: compared to the previous/next price, the price change should always be 0.01% = 1 basis point.
However, notice the difference is that in the traditional basis point, the price change is defined with subtraction, while here in Uniswap it’s division.
This is how price ranges of ticks are decided⁴:
Image source: https://uniswap.org/whitepaper-v3.pdf
With the above equation, the tick/price range can be recorded in the index form [i, i+1], instead of some crazy numbers such as 1.0001¹⁰⁰ = 1.0100496621.
As each price is the multiplication of 1.0001 of the previous price, the price change is always 1.0001 — 1 = 0.0001 = 0.01%.
For example, when i=1, p(1) = 1.0001; when i=2, p(2) = 1.00020001.
p(2) / p(1) = 1.00020001 / 1.0001 = 1.0001
See the connection between the traditional basis point 1 cent (=1% of 1$) and Uniswap v3’s basis point 0.01%?
Image source: https://tenor.com/view/coin-master-cool-gif-19748052
But sir, are prices really granular enough? There are many shitcoins with prices less than 0.000001$. Will such prices be covered as well?
Price range: max & min
To know if an extremely small price is covered or not, we have to figure out the max & min price range of v3 by looking into the spec: there is a int24 tick state variable in UniswapV3Pool.sol.
Image source: https://uniswap.org/whitepaper-v3.pdf
The reason for a signed integer int instead of an uint is that negative power represents prices less than 1 but greater than 0.
24 bits can cover the range between 1.0001 ^ (2²³ — 1) and 1.0001 ^ -(2)²³. Even Google cannot calculate such numbers, so allow me to offer smaller values to have a rough idea of the whole price range:
1.0001 ^ (2¹⁸) = 242,214,459,604.341
1.0001 ^ -(2¹⁷) = 0.000002031888943
I think it’s safe to say that with a int24 the range can cover > 99.99% of the prices of all assets in the universe 👌
⁴ For implementation concern, however, a square root is added to both sides of the equation.
How about finding out which tick does a price belong to?
Tick index from price
The answer to this question is rather easy, as we know that p(i) = 1.0001^i, simply takes a log with base 1.0001 on both sides of the equation⁴:
Image source: https://www.codecogs.com/latex/eqneditor.php
Let’s try this out, say we wanna find out the tick index of 1000000.
Image source: https://ncalculators.com/number-conversion/log-logarithm-calculator.htm
Now, 1.0001¹³⁸¹⁶² = 999,998.678087146. Voila!
⁵ This formula is also slightly modified to fit the real implementation usage.
3. Concentrated liquidity
Now that we know how ticks and price ranges are decided, let’s talk about how orders are executed in a tick, what is concentrated liquidity and how it enables v3 to compete with stablecoin-specialized DEXs (decentralized exchange), such as Curve, by improving the capital efficiency.
Concentrated liquidity means LPs (liquidity providers) can provide liquidity to any price range/tick at their wish, which causes the liquidity to be imbalanced in ticks.
As each tick has a different liquidity depth, the corresponding pricing function x * y = k also won’t be the same!
Each tick has its own liquidity depth. Image source: https://uniswap.org/blog/uniswap-v3/
Mmm… examples are always helpful for abstract descriptions 😂
Say the original pricing function is 100(x) * 1000(y) = 100000(k), with the price of X token 1000 / 100 = 10 and we’re now in the price range [9.08, 11.08].
If the liquidity of the price range [11.08, 13.08] is the same as [9.08, 11.08], we don’t have to modify the pricing function if the price goes from 10 to 11.08, which is the boundary between two ticks.
The price of X is 1052.63 / 95 = 11.08 when the equation is 1052.63 * 95 = 100000.
However, if the liquidity of the price range [11.08, 13.08] is two times that of the current range [9.08, 11.08], balances of x and y should be doubled, which makes the equation become 2105.26 * 220 = 400000, which is (1052.63 * 2) * (110 * 2) = (100000 * 2 * 2).
We can observe the following two points from the above example:
Trades always follow the pricing function x * y = k, while once the price crosses the current price range/tick, the liquidity/equation has to be updated.
√(x * y) = √k = L is how we represent the liquidity, as I say the liquidity of x * y = 400000 is two times the liquidity of x * y = 100000, as √(400000 / 100000) = 2.
What’s more, compared to liquidity on v1 & v2 is always spread across [0,∞], liquidity on v3 can be concentrated within certain price ranges and thus results in higher capital efficiency from traders’ swapping fees!
Let’s say if I provide liquidity in the range [1200, 2800], the capital efficiency will then be 4.24x higher than v2 with the range [0,∞] 😮😮😮 There’s a capital efficiency comparison calculator, make sure to try it out!
Image source: https://uniswap.org/blog/uniswap-v3/
It’s worth noticing that the concept of concentrated liquidity was proposed and already implemented by Kyper, prior to Uniswap, which is called Automated Price Reserve in their case.⁵
⁶ Thanks to Yenwen Feng for the information.
4. Range orders: reversible limit orders
As explained in the above section, LPs of v3 can provide liquidity to any price range/tick at their wish. Depending on the current price and the targeted price range, there are three scenarios:
current price < the targeted price range
current price > the targeted price range
current price belongs to the targeted price range
The first two scenarios are called range orders. They have unique characteristics and are essentially fee-earning reversible limit orders, which will be explained later.
The last case is the exact same liquidity providing mechanism as the previous versions: LPs provide liquidity in both tokens of the same value (= amount * price).
There’s also an identical product to the case: grid trading, a very powerful investment tool for a time of consolidation. Dunno what’s grid trading? Check out Binance’s explanation on this, as this topic won’t be covered!
In fact, LPs of Uniswap v1 & v2 are grid trading with a range of [0,∞] and the entry price as the baseline.
Range orders
To understand range orders, we’d have to first revisit how price is discovered on Uniswap with the equation x * y = k, for x & y stand for the amount of two tokens X and Y and k as a constant.
The price of X compared to Y is y / x, which means how many Y one can get for 1 unit of X, and vice versa the price of Y compared to X is x / y.
For the price of X to go up, y has to increase and x decrease.
With this pricing mechanism in mind, it’s example time!
Say an LP plans to place liquidity in the price range [15.625, 17.313], higher than the current price of X 10, when 100(x) * 1000(y) = 100000(k).
The price of X is 1250 / 80 = 15.625 when the equation is 80 * 1250 = 100000.
The price of X is 1315.789 / 76 = 17.313 when the equation is 76 * 1315.789 = 100000.
If now the price of X reaches 15.625, the only way for the price of X to go even higher is to further increase y and decrease x, which means exchanging a certain amount of X for Y.
Thus, to provide liquidity in the range [15.625, 17.313], an LP needs only to prepare 80 — 76 = 4 of X. If the price exceeds 17.313, all 4 X of the LP is swapped into 1315.789 — 1250 = 65.798 Y, and then the LP has nothing more to do with the pool, as his/her liquidity is drained.
What if the price stays in the range? It’s exactly what LPs would love to see, as they can earn swapping fees for all transactions in the range! Also, the balance of X will swing between [76, 80] and the balance of Y between [1250, 1315.789].
This might not be obvious, but the example above shows an interesting insight: if the liquidity of one token is provided, only when the token becomes more valuable will it be exchanged for the less valuable one.
…wut? 🤔
Remember that if 4 X is provided within [15.625, 17.313], only when the price of X goes up from 15.625 to 17.313 is 4 X gradually swapped into Y, the less valuable one!
What if the price of X drops back immediately after reaching 17.313? As X becomes less valuable, others are going to exchange Y for X.
The below image illustrates the scenario of DAI/USDC pair with a price range of [1.001, 1.002] well: the pool is always composed entirely of one token on both sides of the tick, while in the middle 1.001499⁶ is of both tokens.
Image source: https://uniswap.org/blog/uniswap-v3/
Similarly, to provide liquidity in a price range < current price, an LP has to prepare a certain amount of Y for others to exchange Y for X within the range.
To wrap up such an interesting feature, we know that:
Only one token is required for range orders.
Only when the current price is within the range of the range order can LP earn trading fees. This is the main reason why most people believe LPs of v3 have to monitor the price more actively to maximize their income, which also means that LPs of v3 have become arbitrageurs 🤯
I will be discussing more the impacts of v3 in 5. Impacts of v3.
⁷ 1.001499988 = √(1.0001 * 1.0002) is the geometric mean of 1.0001 and 1.0002. The implication is that the geometric mean of two prices is the average execution price within the range of the two prices.
Reversible limit orders
As the example in the last section demonstrates, if there is 4 X in range [15.625, 17.313], the 4 X will be completely converted into 65.798 Y when the price goes over 17.313.
We all know that a price can stay in a wide range such as [10, 11] for quite some time, while it’s unlikely so in a narrow range such as [15.625, 15.626].
Thus, if an LP provides liquidity in [15.625, 15.626], we can expect that once the price of X goes over 15.625 and immediately also 15.626, and does not drop back, all X are then forever converted into Y.
The concept of having a targeted price and the order will be executed after the price is crossed is exactly the concept of limit orders! The only difference is that if the range of a range order is not narrow enough, it’s highly possible that the conversion of tokens will be reverted once the price falls back to the range.
As price ranges follow the equation p(i) = 1.0001 ^ i, the range can be quite narrow and a range order can thus effectively serve as a limit order:
When i = 27490, 1.0001²⁷⁴⁹⁰ = 15.6248.⁸
When i = 27491, 1.0001²⁷⁴⁹¹ = 15.6264.⁸
A range of 0.0016 is not THAT narrow but can certainly satisfy most limit order use cases!
⁸ As mentioned previously in note #4, there is a square root in the equation of the price and index, thus the numbers here are for explantion only.
5. Impacts of v3
Higher capital efficiency, LPs become arbitrageurs… as v3 has made tons of radical changes, I’d like to summarize my personal takes of the impacts of v3:
Higher capital efficiency makes one of the most frequently considered indices in DeFi: TVL, total value locked, becomes less meaningful, as 1$ on Uniswap v3 might have the same effect as 100$ or even 2000$ on v2.
The ease of spot exchanging between spot exchanges used to be a huge advantage of spot markets over derivative markets. As LPs will take up the role of arbitrageurs and arbitraging is more likely to happen on v3 itself other than between DEXs, this gap is narrowed … to what extent? No idea though.
LP strategies and the aggregation of NFT of Uniswap v3 liquidity token are becoming the blue ocean for new DeFi startups: see Visor and Lixir. In fact, this might be the turning point for both DeFi and NFT: the two main reasons of blockchain going mainstream now come to the alignment of interest: solving the $$ problem 😏😏😏
In the right venue, which means a place where transaction fees are low enough, such as Optimism, we might see Algo trading firms coming in to share the market of designing LP strategies on Uniswap v3, as I believe Algo trading is way stronger than on-chain strategies or DAO voting to add liquidity that sort of thing.
After reading this article by Parsec.finance: The Dex to Rule Them All, I cannot help but wonder: maybe there is going to be centralized crypto exchanges adopting v3’s approach. The reason is that since orders of LPs in the same tick are executed pro-rata, the endless front-running speeding-competition issue in the Algo trading world, to some degree, is… solved? 🤔
Anyway, personal opinions can be biased and seriously wrong 🙈 I’m merely throwing out a sprat to catch a whale. Having a different voice? Leave your comment down below!
6. Conclusion
That was kinda tough, isn’t it? Glad you make it through here 🥂🥂🥂
There are actually many more details and also a huge section of Oracle yet to be covered. However, since this article is more about features and targeting normal DeFi users, I’ll leave those to the next one; hope there is one 😅
If you have any doubt or find any mistake, please feel free to reach out to me and I’d try to reply AFAP!
Stay tuned and in the meantime let’s wait and see how Uniswap v3 is again pioneering the innovation of DeFi 🌟
Uniswap v3 Features Explained in Depth was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
your only limit is your mind 在 Facebook 的精選貼文
To my daughter on International Women’s Day:
Know that you come from a long line of strong-willed, independent and brave women. There is no limit to what you can achieve if only you set your mind to it. 🌟
You see, women don’t need to become stronger. We’ve always been strong. It’s how the world perceives our strength and receives our power that needs to change. 💪🏼
Happy #iwd2021 to all the powerful women out there! 💜💜💜
#iwd #donttellmehowtodress #womensday