推荐区

DeFi第四期1篇--《如今与将来的去中心化流动性》探讨DEX安全问题

DeFi第四期1篇--《如今与将来的去中心化流动性》探讨DEX安全问题
本期圆桌会议邀请了Bancor首席增长官Nate Hindman和Loopring COO Jay Zhou两位嘉宾,共同探讨DEX的安全问题。
OKEX客户服务 OKEx  0  0

一文读懂流动性挖矿原理

一文读懂流动性挖矿原理
来源:Chainslation近期,去中心化金融(DeFi)的活动和公众兴趣呈爆炸式增长。其主要驱动因素可归结为“流动性挖矿”,一种用于启动流动性的机制。从广义来说,流动性挖矿指DeFi用户通过与某个协议进行交互,然后获得该协议的原生代币作为奖励。Compound最近推出了一个引人注目的流动性挖矿计划。其中,在Compound协议借款或放款的用户均可获得COMP代币奖励。该做法增加了出借方的收益,同时对借款方进行了补贴。这个计划启动后,Compound的借贷活动急剧增加。来源:DeFi Pulse实际上,流动性挖矿不过是新瓶装旧酒。在2018年末,中国有好几家中心化交易所推出了流动性挖矿激励。其中最为著名的要数FCoin。FCoin对在其平台进行交易的用户提供大力的奖励,期望由此产生的流动性能够吸引更多自然用户。它押注流动性激励措施结束后,用户会留存下来。但事实并非如此。由于存在致命的设计漏洞,FCoin的流动性计划失败了。您可以参考Henry He的这篇好文了解更多背景。基于FCoin的流动性挖矿计划,交易员可以计算交易成本(交易费)与他们能够通过出售挖矿代币获得的收益。交易补贴高于交易费,则意味着刷量交易有利可图。因此,FCoin的交易量曾飙升至每天56亿美元,让它看起来是世界上流动性最好的交易所之一。来源:CryptoCompare尽管如此,大多数市场观察者都能明显看出这些交易量是虚假的,买卖双方只是通过刷量交易进行挖矿,转头就卖掉FC(FCoin挖矿平台币)。目前,类似的事情正在上演。例如,在流动性挖矿激励启动后,Compound对借入DAI的用户提供大约3%的净利润奖励。是的,你没有看错:贷款的用户不但无需支付利息,还能获得补贴。根据高纬度的指标,Compound的流动性挖矿计划似乎很成功,但它能否取得长期的成功还不得而知。最初,Compound团队设计的流动性挖矿激励相对合理。但是在COMP的价格上涨10倍以后,原来不变的参数带来了50%的流动性挖矿年化收益。价格的变化降低了大多数用户持币的积极性:排名前十的流动性矿工挖得超过70%的COMP,他们每天都出售分得的代币。有趣的是,流动性挖矿的狂热可能会排挤该协议的真实用户。随着套利者涌进流动性挖矿,协议的所有原始利率被扭曲了。因此,当流动性矿工蜂拥借入BAT的时候,那些原来以5%利率借入BAT的真实用户被迫面临着高达33%(还未包括COMP的奖励)的借贷利率。而一旦“热钱”缺乏挖COMP的激励以后,Compound中很大一部分的资产将涌入利润更高的机会。当出现市场出现其他机会、COMP挖矿奖励下降或者挖矿套利行为被抹平后,这种情况就会发生。话虽如此,其他机会可能存在资金量限制或智能合约风险更高的情况。这些因素都在流动性矿工的考虑范围之内。随着DeFi收益平衡器(如dForce的dtoken、Staked的RAY或iearn.finance等)逐渐将资金动态重新分配到收益最高的流动性挖矿协议中,资本外逃的趋势也可能会加速。因此,对考虑进行流动性挖矿的DeFi项目而言,目前更亟待认真考虑它们的激励,然后设计流动性方案,在期望快速暴富的刷量矿工消失后,留住资本。在本文中,我们探索了流动性挖矿的设计空间,并提出一个框架,DeFi团队可基于该框架搭建一个激励长期资本留存的流动性挖矿计划。流动性挖矿的目标在设计流动性挖矿方案时,最重要的一步是确定方案的确切目标。以下为一些普遍目标:1.激励长期、有粘性的流动性。2.吸引大量热钱创造动能,提高产品知名度。3.在不进行ICO的情况下分发代币,对协议的治理进行去中心化。大多数DeFi团队本意是激励长期、有粘性的流动性。他们希望通过为协议的用户提供一部分所有权股份,这些用户就会留下来。然而,每个用户情况不一,从长期用户中过滤出“热钱”用户是成功实现该目标的关键。目前也缺乏证据表明大多数用户会关心治理。虽然可能有少数用户是关心这一点,但很明显绝大部分用户更关注获利。将流动性挖矿作为吸引媒体报道和提高知名度的营销手段不失为一个有效策略。人们更倾向在听过某个产品后,才有意愿使用它。但该步骤需要谨慎处理,避免整个流动性挖矿预算都花在该目标上。从这个意义上来说,流动性挖矿可视为一种营销活动。而营销策略通常有时间限制,并且目标明确。为了实现协议去中心化治理的目标,许多协议都为其代币注入治理权。然而,如果治理代币的所有权高度集中,则很难保证协议治理的去中心化。协议团队面临的主要挑战之一是如何将他们的治理代币分发给用户。在解决该问题上,流动性挖矿可作为一个强大的工具(相对于其他方式,例如定向空投)。上述目标之间有时会相互冲突。在设计流动性挖矿方案时,定义目标以及确定目标优先级的能力是某个团队取得成功的重要因素。探索流动性挖矿设计空间在搭建一个流动性挖矿策略时,我们确定了三个重要的维度:1.谁获得奖励2.他们都获得多少奖励3.他们什么时候获得奖励每个维度有各自的取舍,我们将在以下章节详细研究。谁获得奖励第一个问题是“谁获得奖励?”。大多数DeFi协议中存在着三种重要市场参与者:(1)挂单方(maker),(2)吃单方(taker)以及(3)服务提供商,例如清算人、保管人、质押节点、保险基金质押方和预言机喂价提供方。这些市场参与者通过流动性和其他服务的形式为协议提供价值。借贷协议(如Aave和Compound)通过对吃单方(借款人)进行流动性挖矿奖励,增加了未偿还借贷的价值,从而增加了协议收入的现金流。但是,这种设计往往会刺激刷量借入/借出,结果导致人为提高了利率,原有的借款方需要支付更高的利率,从而使协议的自然使用受到了排挤。Compound近期的表现证明了这一点。在交易协议中,激励吃单方有助于提升交易量和交易费。由于吃单方能够承受更大的滑点,因此激励吃单方会形成更大的买入/卖出价差,从而损害自然的吃单方。在某种程度上,借贷和交易协议通过流动性挖矿奖励对挂单方进行激励是安全的。但是如果对挂单方/放款人的激励过高,就会驱使它们另开一个账号,自买自卖。因此如果某个协议想要防止交易和借贷的刷量香味,就要保证流动性挖矿的激励不能高于协议的使用费。在各个流动性挖矿参与方中,服务提供商是最经常被忽略的一个角色。实际上它们对各个协议的顺利运行至关重要,如果缺乏足够的资源,可能会导致协议出现重大故障,如MakerDAO在3月12日经历的那样。例如,我们考虑一下即将上线的去中心化永续合约(Perpetual Protocol、DerivaDEX、Futureswap、Injective、Serum等)。对于这些协议,激励保险基金质押方对于吸引流动性并确保交易者获利时得到报酬至关重要。有一个还没有得到充分开发的创新措施是奖励积极参与竞争协议的用户。例如,如果Uniswap想要为流动性提供者启动一个流动性挖矿计划,它可以对某个地址进行乘积奖励,如某个地址在Balancer提供X金额流动性或在Curve提供Y时长流动性。该做法类似于中心化交易所为其他交易所的VIP交易员授予VIP身份,或者航空公司为在其他航空公司的常飞客户授予常客身份。这个想法是从竞品中挖走大客户。决定“谁获得奖励”时,最后一个维度是是否接入历史性因素(奖励那些在流动性挖矿计划启动前就活跃的用户)。该做法最明显的好处是奖励协议的自然用户,而不是奖励那些追求收益的“热钱”。如果根据使用历史进行一部分奖励,其相对应的劣势是奖励新的流动性和用户的预算将会减少。他们都获得多少奖励对所有流动性挖矿方案来说,确定“奖励多少”是一个重要的问题。该问题需要考虑三个维度:(1)奖励总额;(2)每个参与方的分配比例(挂单方、吃单方和服务提供商);以及(3)如何对它们进行奖励。大多数加密协议的理想状态为:治理去中心化,不受少数内部人员的控制。如果流动性挖矿方案的目标之一是为了实现更好的治理而分发代币,则应该以无需许可的方式分发超过50%的治理代币。从长远来看,DeFi协议应该将治理转移给社区。实现该目标的最好方法是将绝大部分代币分发到用户手里。挂单方、吃单方和服务提供商对于一个健康的DeFi协议都至关重要。如果没有出贷方,借入方和清算方,MakerDAO就无法正常工作。某些协议通过激励全部三种协议参与者,可以提供更好的服务,其他协议应该只激励其中两种角色,或者甚至仅激励一种。挂单方的流动性挖矿奖励可通过两个变量来计算:某个协议的流动性资金总额。例如,在某个订单簿交易所,挂单方可以根据他们在订单簿上的订单规模、挂单时长以及订单与中间价格的差价来获得奖励。流动性吃单方实际成交的流动性价值。这是一种简单的挂单方补贴。吃单方的流动性挖矿奖励可通过两个变量来计算:他们在协议成交的交易量(无论是交易量还是借入量)。他们向协议或通过协议支付给挂单方的费用金额。这是一种简单的吃单方补贴。最后,服务提供商的流动性挖矿奖励也可以通过两个变量来计算:清算或它们掌管的清算人交易的美元金额。在某种程度上,这一点是通过清算激励机制来实现的(例如,Compound清算人能够以5%的折扣购买资产),但协议代币的额外奖励可以激励更多人成为清算人。他们为清算人交易储备的价值(例如将资金存入Mainframe固定利率贷款担保人池中),这将有助于防止类似“黑色星期四”的MakerDAO事件,当时清算人没有足够的抵押品快速执行清算,保持系统正常运转。到目前为止,市场上大多数流动性挖矿方案都是在固定时间内奖励固定数量的代币。我们认为,对用户通过协议支付或使用协议产生的实际费用进行补偿是一种更有效的设计。根据该设计,Compound借款人不会每天都获得固定数量的COMP,他们获得的奖励等于支付给Compound贷款人的利息总额,或者支付给Compound协议本身的利差。他们什么时候获得奖励迄今为止,大多数流动性挖矿计划都没有锁定期或基于时间释放。因为缺乏锁定期,套利者轻易就能发现他们的交易是否有利可图。例如,Compound借款人可以计算他们在某个小时产生的利息(诚然,在该小时内利率可能会发生变化)。在该时间段,他们能够基于当前价格估算出从流动性挖矿中获得的COMP。这种刷量行为主要受流动性挖矿套利者驱动,对于希望增加自然使用的流动性挖矿运营商而言,它可能不会有什么成效。对付该行为的方法是延迟发放流动性挖矿奖励。以Compound为例,如果流动性挖矿产出的COMP代币被锁定12个月,那么套利者就无法在不承担COMP价格风险的情况下完成闭环。接着这些交易者可能会成为Compound生态系统的长期利益相关者。如果流动性挖矿代币有锁定期,协议团队就可以引入回收机制了。例如在Compound中,如果某个流动性提供者在第一天提供30个ETH的流动性,获得100个COMP,那么在代币锁定期(我们的例子是12个月),他可能需要保持至少15个ETH的流动性。如果跌破了这个门槛,他们从当天起获得的一半流动性挖矿奖励可能被重新回收到激励池中。这个锁定的招数对DeFi团队效果极佳,能够有效避免排挤真实用户的无效刷量行为。另一种方法是为长期保持协议流动性的用户提供一个乘子(用胡萝卜,不用大棒)。例如,假设某个流动性提供者在第一天获得5个COMP,如果他一直保持相同金额的流动性,那么第30天他将获得额外的15个COMP,第60天获得额外的30个COMP。该模型让团队避免涉及回或罚没相关的负面形象,同时实现类似的效果。协议团队需要考虑的最后一个与时间有关的因素是如何逐步取消奖励。Compound已经宣布COMP将分四年线性释放,然后突然终止。我们认为,随着用户离开该协议,该做法可能会造成一些混乱,流动性在一夜之间消失。实际上,协议团队可以随着时间的推移逐步取消奖励。例如某个团队对吃单方进行补贴,他们可以第一年补贴100%,第二年补贴75%,以此类推。结论流动性挖矿计划的目标是引导网络效应。为了留住用户,推动真实的网络效应,团队必须慎重考虑他们的激励结构,并调整方案的变量。浏览DeFi Pulse网站,我们很容易确定三种可能出现大型和流行的流动性挖矿计划的DeFi赛道:(1)自动化做市商(AMM)交易所,(2)借贷协议,以及(3)订单簿交易所。每种类型的协议团队都可以针对挖矿方案调整不同的变量,但是其主题是一致的:如果他们奖励固定数量的代币并且不设定锁定期,又不考虑新市场参与者的代币价格(不追溯参与历史),他们应该将看到短期套利者蜂拥而至,排挤自然用户。对于某些协议来说,这样无所谓!如果某个DeFi团队想搞个大新闻吸引关注,那么尝试引起轰动、引入短期交易者是说得通的。但是我们认为大多数DeFi团队都希望长期保留用户,将代币分发给真正参与治理的用户。补贴非法刷量交易对DeFi团队来说通常是对资金/股权的不当分配。他们把宝贵的网络所有权拱手让给基本不提供任何价值的用户。对于这些团队,他们应该考虑:(1)锁定挖矿的代币,(2)根据使用历史奖励用户,(3)奖励提供有用功能的协议服务提供商,(4)进行“补贴”,而不是奖励固定数量的代币(还不考虑这些代币的美元价格)。经过精心设计的流动性挖矿计划具备无限的可能性,DeFi领域仅仅触及到它的表面。我们对观察这些方案的发展和演变感到非常兴奋。如果您正在开发一个新颖流动性挖矿方案的DeFi协议,期望获得一些反馈,请与我们联系。感谢Sam Bankman-Fried以及Tony Sheng对本文提出的宝贵意见。注:本文来源https://multicoin.capital/2020/08/13/exploring-the-design-space-of-liquidity-mining/已获得授权发布。
梭哈60万 DeFi/去中心化金融  0  0

人民币数字货币与我们的关系

人民币数字货币与我们的关系
原文链接:https://t.1yb.co/3hZo上周看到消息称四大银行正在深圳等地大规模测试数字钱包应用。人民币数字货币已经越来越近了。我们来回顾一下关于人民币数字货币那些需要了解的事情。人民币数字货币什么时候会来?由于数字货币的创新性,需要进行大量的测试以确保万无一失,因此央行始终没有给出人民币数字货币发行的时间表。但根据官方透露的信息,人民币数字货币或将会在2022年北京冬奥会上进行大范围使用。在这之前,人民币数字货币必将在不同应用场景上反复进行测试。为确保能应对大规模的并发交易,普通百姓也一定会被纳入测试中。按此时间表倒推,估计到2021年下半年很可能会推出大众可以参与的测试版本了。与比特币等虚拟货币差异在哪里?两者最大的差异莫过于人民币数字货币背后有着国家信用背书,比特币有的仅是对代码的信任与共识。由于国家主权背书,人民币数字货币具有法偿性,可以直接用于商品购买与人民币现金没有差异。而比特币尚未得到国家认可,因此难以在国内流通。另一点重要差异是比特币使用了区块链技术。而随着人民币数字货币更多细节的披露,区块链在其中并没有作为核心技术,即央行所述的“不预设技术路线”。人民币数字货币弱化区块链技术的使用是可以预见的。区块链是通过引入多方参与记账从而降低系统整体的风险,这对于没有国家背书的虚拟货币是非常有效的。但货币是一国之命脉,如果采用去中心化的方式,那么将引入国家/央行以外的商业机构参与数字货币的发行与销毁过程。而任何商业机构的可信任程度是不会高于所在国的国家信用。因此引入外部机构参与人民币数字货币发行反而会为人民币系统带来风险。所以为了人民币的安全与稳定,国家是不可能将国家的货币发行权下放哪怕一点点的。“只要我能控制一个国家的货币发行,我不在乎谁制定法律” - 梅耶罗斯柴尔德但并不是说人民币数字货币与区块链完全无关。人民币数字货币的产生与销毁基本不涉及区块链的使用,但流通环节商业银行或支付机构或许会使用区块链技术。人民币数字货币投放采用的是双层运营体系,即央行负责数字货币的发行与销毁,流通过程还是依赖商业银行以及支付机构等。在流通过程中,银行与以银行间、银行与支付宝等支付机构间,或许会采用区块链技术,从而提高数字货币流通的安全性与效率,同时降低整体运营风险。对我们的生活有什么改变?关于这一点往期文章有讨论过《人民币数字货币思考(一)--- 真能改变我们的生活吗?》。简单而言,人民币数字货币对我们的生活影响不会很大。如今支付宝等移动支付的普及,交易方式已经实现数字化了,因此再将人民币数字化未必能对交易体验带来显著提升。此外,支付宝微信等也积极参与到人民币数字货币的应用开发中。或许哪一天,支付宝钱包里的金额就已悄悄换成了人民币数字货币而我们却未察觉差异。如何影响人民币国际化?人民币数字货币被寄予推动人民币国际化的期望,见《人民币数字货币思考(二)--- 人民币数字货币能否实现人民币国际化》。人民币国际化重要一点是需要国外民众愿意使用及储存人民币。选择在冬奥会上大规模使用人民币数字货币,正是让国外民众开始接受、保有人民币数字货币的绝佳机会。届时这些鲜尝移动支付魅力的运动员、观众们在用过人民币数字货币后,定会带着这些人民币数字货币和相关应用回国向他们周围的亲朋展示,从而达到宣传人民币、推动人民币国际化的效果。人民币数字货币也为打破美元霸权带来可能性。美元霸权的实施依赖于SWIFT(环球同业银行金融电讯协会)和CHIPS(纽约清算所银行同业支付系统)。美国可以通过发起经济制裁,限制被制裁国家的银行接入CHIPS完成美元清算,从而使被制裁国与美元脱钩。美国还可以裹挟欧盟国家共同发动制裁,将被制裁国的银行排除在SWIFT体系之外,使其无法使用美元进行国际贸易。尽管SWIFT也支持人民币的交易传输,但只要制裁发生银行被移出SWIFT系统,人民币一样无法通过SWIFT进行交易。因此只有绕开SWIFT才能规避美元霸权。人民币数字货币可以利用支付宝、微信、抖音等应用渗透至世界各个角落,绕开银行体系实现跨境交易,即所谓的“脱媒流转”。并且数字化的形式也将使人民币跨境结算与清算更便捷,从而进一步推进CIPS(人民币跨境支付系统)的推广,逐步削弱SWIFT不可撼动的地位。CIPS人民币跨境支付系统:是由中国人民银行组织开发的独立支付系统,为整合现有的人民币跨境支付渠道和资源,提高跨境清算效率而建立的人民币数字或有没有投资机会?人民币数字货币是法币,本身是不具备投资机会的,因为钱本身是不会生钱,只有投资出去才会增值。但人民币数字货币会带来一波支付设备的更新,因为现有的例如POS机、扫码机尚不具备识别人民币数字货币的功能。而作为法币的人民币数字货币必须要在各个场景都能被使用,以此来保证法偿性,所以支付设备的更新换代是必然。因此可以关注支付设备相关的上市公司股票,未来几年或许将用大规模红利兑现的可能。————e n d————历史文章人民币数字货币思考(二)--- 人民币数字货币能否实现人民币国际化人民币数字货币思考(一)--- 真能改变我们的生活吗?靠不住的黄金和“靠不住”的比特币投资Filecoin前的一盆冷水看懂比特币的大户 - 灰度基金希望大家可以关注微信公众号更加方便交流。公众号的文章也会率先更新~
Grox027 区块链社区  0  0

2020全球算力大会暨新基建矿业峰会

2020全球算力大会暨新基建矿业峰会
2020全球算力大会暨新基建矿业峰会由巴比特、免费送体验金可提款、印比特主办,将于2020年8月22-23日于中国的“矿业之都”——成都举行。本届算力大会,亦是新时代矿业峰会品牌焕新出场,融汇2020年全年矿业热点话题,热门事件,聚集全球矿业核心品牌,上百位矿业核心领袖,上中下游矿圈全产业链,全网千万流量汇聚,巴比特、免费送体验金可提款携手印比特发出最强召唤,唱响矿业最强音!
精选

长铗:流动性挖矿透支未来,Defi需要更好的价值捕获

长铗:流动性挖矿透支未来,Defi需要更好的价值捕获
【你相信什么,就会得到什么。不要盲目追热点,如果你看准了,出手了,就只需要等待,因为如果你对了,时间作为裁判,他站在你这边。——长铗】8月13日晚七点,巴比特&比原链创始人长铗作客币看【大咖来了】,围绕着“Dex群雄并起,MOV何以突围”主题AMA做了相关分享,Dex未来可能超越中心化交易平台嘛?针对现在天价Gas费,Layer2为何能成为DEX的主战场?接下来MOV的发展规划有哪些?Defi当红炸子鸡“流动性挖矿”到底还能火多久?本文将带你窥探Defi热潮下,踏实做事的比原链团队未来发展方向。以下是AMA精选,内容略有删减。1、DEX的规模有可能接近甚至超越各大中心化交易平台吗?答:DEX的规模可能永远也不会超过CEX,这是由交易效率与成本决定了的,最近规模猛增与流动性挖矿的激励密切相关,激励一过,热度与交易量可能下迅速下降。业界存在一种误解,以为DEX会取代CEX,但我个人认为它们更多是补充关系,而不是竞争关系。比如有些DEX,比如BancorV2推出了基于预言机的避免无常损失的AMM,预言机就需要CEX或其它交易所的外部价格。同样,CEX也需要DEX, 比如CEX的合约产品,如果是使用的是DEX的外部价格的话,那么数据就是可验证的,也就没有那么多关于中心化黑箱的非议。2、MOV现在的用户体量怎么样?在市场是什么水平呢?答:目前MOV的每日活跃用户大约是1000左右,相较于CEX当然不值一提,但在DEX中排名居于前五 。我们有信心在未来几个月把用户量做到DEX 前三,因为Layer2的效率优势,同时随着MOV跨链的体验完善,联邦节点完成冷钱包部署,跨链资产规模的扩大,尤其是最近我们推出了网页版,使得那些不喜欢下载钱包的用户也可以方便的通过Metamask跨链,使用MOV。3、您之前说过,DeFi迟早都要转到“链下扩容”方案Layer2上,为何说Layer2将是DEX的主战场呢?MOV是基于比原链Bystack主侧链架构的下一代去中心跨链Layer2价值交换协议,在这块MOV有哪些独特优势呢?答:现在跨链是热点,很多公链都会做跨链。MOV当然有自己独特的一面。首先是主侧跨一体,我们一开始在顶层设计上就是有跨链的一环,可以说跨链是比原的原生应用。所以跨链非常顺滑,第三方钱包可以很方便的支持MOV跨链。其次我们的侧链是DPoS+BBFT共识机制,极限TPS2万以上,完全可以满足DeFi的性能要求。同时,我们的共识节点是与预言机节点一体的,将来会推进链下数据聚合与链上治理于一体的预言机模型。采用链下数据聚合的方式后,对预言机的使用受链的性能限制就会变得很小,可以降低成本、提高效率。另外,采用预言机的链上治理方式,以解决定责问题,即一旦真的发生错误,能够给有完善的定责与赔付。最后,MOV针对DeFi协议统一设计,标准化定义交易、借贷、合成资产三个赛道协议,以避免协议间的冲突与标准不统一的问题。4、最近比原链MOV将推出超导V2,这对MOV会带来什么变化,以及对MOV有何重大意义呢?答:超导V1是针对稳定币互兑场景的,超导V2则将CFMM(常数函数做市商)思想推广到了其它主流币、创新币与稳定币之间的兑换,应用场景更广阔。尤其是V2将无限网格策略引入到CFMM之中,使得流动性提供者(LP)有可能会因策略的成功,而避免无偿损失,甚至获得因资产组合升值带来的阿尔法收益。在一个牛熊周期里,超导 V2使得 LP 能够在牛市区间多“套现” BTC,并在转熊之后能够留守住所“套现”的增值收益,同理在熊市区间,使 LP 可以多“抄底” BTC,并在转牛之后能够留守住这些低位 BTC,等待以后高点再次“套现”,获得财富增值。如图所示,超导 V2 与 Uniswap 在每个阶段结束时各自帮助 LP 获得的总财富价值对比,在前 几个阶段 V2 处于劣势,在后面阶段,凭借对牛熊周期的准确判断,V2 总财富价值大幅度超过 Uniswap, LP 获得手续费之外的超额收益。我认为,业界对AMM(程序化做市商)或CFMM(常数函数做市商)理解会经历三个阶段。第一个阶段,(1)价格发现,以Uniswap为代表的恒定乘积做市商项目,适用初次发行的新兴token。(2)用钱(交易磨损)买时间(流动性),以Bancor V2模式为代表。交易者用手续费换取流动性,LP则获得手续费,同时通过预言机使得流动性池资产与外部价格保持一致,以避免无常损失。但是由于预言机的不确定性,Bancor V2模式还没有得到市场的验证。(3)资产组合,以MOV超导V2为代表,把流动性池视为一种资产组合,同时资产组合在市场中的不同阶段会有不同的交易策略(在V2中表现为分段函数),LP相当于该资产组合的投资者,如果策略成功,LP不仅获得交易手续费的回报,不仅没有无常损失,还会获得投资组合的升值所带来的超额收益。当然,策略失败也会带来无常损失。5、比原MOV相较于以太坊DeFi有什么短板吗?如果有的话,怎么弥补?答:有些朋友可能会问,你讲了这么多MOV的优势,可为什么活跃用户的增长不明显,大部分DeFi用户还是在以太坊上。其实除了刚才说的跨链的阻力,MOV还需要完善更多环节,实现三通:通水、通电、通气。通水是扩大跨链资产的数量与规模,现在MOV上跨链资产的规模还是千万级,支持token种类也不多,接下我们可能会支持莱特币、BCH等主流token以及波卡等新兴币。另外,随着我们联邦节点完成门限多签方案的部署,跨链资产规模应该会上升一个数量级。通电是引入更多稳定币资产,随着超导V1交易规模的上升,我们逐渐成为DAI、USDT、USDC的前四DEX,我们可能会与稳定币资产发行方合作,在比原链上发原生稳定币。通气是把链上手续费降低到最低,目前以太坊上手续费已经占到矿工收入的一半,目前以太坊网络的平均gas价已升至275 Gwei,一笔erc 20代币交易的手续费已超过100元,而复杂的交易甚至要花上四位数,这是非常惊人的数字。前面也讲了,在MOV上GAS费几乎为零,所有DeFi项目方与用户,都可以享受交易成本下降所带来的红利。6、基于以太坊创建的DEX普遍面临着Gas较高的问题,MOV是怎么解决手续费相关问题?答:MOV是运行Layer2上,Layer2 共识激励是由基金会每季度付给所有共识节点,相当于基金会垫付了侧链的Gas费,所以交易成本几乎为零。我相信,只要用户克服了跨链的阻力,MOV上交易的体验会有非常大的竞争力优势。7、比原链除了在MOV上继续发力,接下来会有其他的动作和计划吗?答:由于我们是主侧跨一体架构,那么,DeFi对于其他链可能是一个维度的事,但对我们来说是三个维度的事情。(1)侧链。目前MOV上的协议创新主要是基于Layer2侧链,下一步当然是继续完善我们的协议簇,随着超导V2的上线, 我们链上交易相关协议基本完成,但借贷等相关协议还待完成。(2)主链。其实我们主链的DeFi创新也在同步进行。主侧的分工很明确,侧链负责资产交易,主链负责资产发行,这意味着我们主链DeFi协议主要是针对资产发行与合成的。我们计划将资产发行(IDO)与资产合成(铸币)集成封装成应用,使得外部开发者无需编写复杂的智能合约,而只需要根据自己的项目需要,选择相应的发行曲线(AMM、CFMM或联合曲线),并设置相应参数就能完成资产发行。(3)跨链,我们马上将完成联邦节点的部署,并支持更多主流币的跨链。下一步,我们将支持交叉跨链,在以太坊上映射发行OFMF(比原链去中心化网关)所支持的资产。这意味着比原链和以太坊将共享部分经济带宽。8、请问您如何看DeFi赛道接下来的演变及发展方向,以及看好DeFi赛道的哪些个板块呢?答:DeFi三个赛道,交易、借贷和资产构成三维空间,其实是并行发展,都有广阔的前景。只是目前因为流动性挖矿,交易与借贷两个赛道更吸引眼球,资产这个赛道相对比较平静。其实,资产发行与合成是相当有潜力的DeFi赛道,因为交易与借贷与中心化产品相比,只是多了去中心化,并没有产品层面的大创新。但是资产发行与合成才是区块链的杀手级应用,因为它意味着资产上链,是未来区块链落地的终极方案。首先是资产发行IDO(Initial DEX Offering),可以是目前流行的AMM模式,解决了流动性与价格捕获的问题。除此之外,还会有联合曲线模式,还有以mesa为代表的拍卖模式,相较于过去的ICO有跨越式创新。其次是合成资产,第一个相对成功的合成资产就是DAI,未来会涌现越来越多的合成资产:合成黄金、合成股票等,甚至还会有集AMM与合成资产与一体的ETF资产,即一方面流动性池为交易提供流动性,另一方面流动性池本身就是一种资产组合ETF,用合约实现基金的自动再平衡,而无需基金经理的主动性介入。9、长铗在2011年就已经在布道比特币,在币圈沉浮多年,经历了多轮行业牛熊转换。可以给大家一些投资心得及建议吗?答:你相信什么,就会得到什么。不要盲目追热点,如果你看准了,出手了,就只需要等待,因为如果你对了,时间作为裁判,他站在你这边。10、最后一个问题,近期行情回暖,出现了很多十倍币百倍币,您怎么看这轮行情,以及接下来的走势?答:这波流动性挖矿的项目,我都不怎么关注,也不看好。流动性挖矿好比吃药,药过后又是一地鸡毛,不具可持续性。相对而言,我更看好MakerDAO这种长期性项目。当然流动性挖矿也有其启发意义,就是将token与DAO深度捆绑,实现价值捕获。只是我不太认可目前流动性挖矿的经济模型,因为这只是透支了未来,即时满足投机性。没有真正解决链上治理、链上价值分配的根本性问题。也许有更好的价值捕获方式,比如联合曲线发行、销毁机制等。“泡沫褪去,万物归真”,Defi很火,Defi还很弱,泡沫过后,还有谁能坚持最后,非常值得期待,比原链一开始就定位于资产上链,与Defi方向是无缝连接。MOV上线后,一直稳扎稳打的推进,到底未来比原链会不会成为Defi中的“国产公链之光”,让我们拭目以待。
比原链Bytom BTM/比原链  0  0

创新高,以太坊转账手续费暴涨近15倍,日挖矿收益涨3倍

创新高,以太坊转账手续费暴涨近15倍,日挖矿收益涨3倍
Tokenview密切观察链上数据,我们发现近期以太坊链上数据表现“异常”活跃。每日单笔交易手续费平均值暴涨10倍数据来源:https://eth.tokenview.com/cn/chart/dailyTxFeeUsd我们通过统计以太坊每日单笔交易手续费的平均值变化值,以判断目前以太坊网络的拥堵情况。当以太坊网络拥堵时,转账速度将会变慢,也就是说我们需要更多时间来对交易进行确认,而未确认的交易(pending交易)则会在交易池中等待打包。若想快速打包,就需要提高交易手续费,这样矿工便会优先打包手续费较高的交易,而手续费低的交易则会排在后面,直到前面没有“佣金“更多的交易。这也就意味着,如果你的手续费设置过低,这笔交易可能一直在Pending,有时几周过去也不能保证会被打包。从数据来看,截至8月13日17:00,以太坊每日单笔交易手续费的平均值达到了7.4美金,也就是说发起一笔转账的推荐手续费已经高达1USDT,这比7月12日的0.5美金涨了近15倍。每日挖矿奖励金额数据来源:https://eth.tokenview.com/cn/chart/dailyRewardUsd从图中可以发现,截至8月13日以太坊每日挖矿金额已经达到1178.3万美金,对比7月11日的369.6万暴涨超3倍。也就是说,同样打包一笔交易,现在以太坊矿工的收益是一个月前的3倍多。截至8月13日18:00,以太坊网络待确认交易数已超过36万笔,Tokenview提醒大家在转账时适当提高手续费,同时,由于目前过高的转账手续费,在进行USDT转账时,可选择其他链以降低成本.
Tokenview.com Tokenview  0  0

当下火热的DeFi和曾经的ICO有什么区别?

DeFi当下发展所引发的热潮让很多人不由自主回忆起上一轮2017年ICO的情形,我认为当下DeFi的发展和ICO有两个重要的区别:首先是到目前为止,DeFi类的项目的创新仍然层出不穷,丝毫看不出停歇的意思。就我最近看到的一些新项目,无论在创意和玩法上都非常有新意,姑且不论项目以后能发展到什么地步,但仅从项目的构思看,就不是为了圈钱而圈钱的,是项目方精心设计的结果。这和上一轮ICO走到后来,几乎所有的项目纯粹就是为了圈钱而圈钱,白皮书一看就是抄袭的情形完全不同。源源不断的创新就是驱动DeFi持续成长的驱动力。二是在本次DeFi大潮中,项目在落地应用上完全是上一轮ICO无法相比的。在上一轮ICO狂潮中,几乎所有的项目在融资时都是在讲故事,投资人在听故事时完全看不到产品,这里隐藏着巨大的道德风险----项目方完全可能拿钱跑路,根本不管项目的开发。这是导致ICO后来彻底熄火的根本原因。而在本次DeFi大潮中,到目前为止,我们看到的都是一个项目代币一上线,它的玩法简单明了,合约已经部署,产品已经落地,用户可以直接参与,并且用户在参与中切切实实地获了利。这和ICO项目听故事,凭想象有着根本的区别。老韭菜的一种心态,DeFi目前的发展引起相当一部分人,尤其是一些老韭菜的警惕,有不少就对此不太理解甚至冷眼旁观。前段时间,李笑来就发表了对DeFi的看法:认为DeFi存在很大的安全隐患,而这些安全隐患一旦爆发可能对DeFi带来灾难,因此他对DeFi表现得极其谨慎。对DeFi安全性的担忧我完全认同。当前很多DeFi类代币的合约都没有经过详细的审查,极有可能存在巨大的安全隐患,一旦黑客发现其中的漏洞,后果将不可想象。但我认为如果因为这而不去参与DeFi的实践,就显得因噎废食了,会错失区块链这一轮创领的机会,也无法感受区块链新技术(尤其是DEX)给人们带来的全新体验。此外,还有一种说法是:当前的DeFi是一群懂区块链+懂金融的人在割其他人的韭菜。对此我更愿意从另外一个角度看:我认为DeFi的本质就是要把链下充满限制、充满门槛的金融活动带到没有限制、没有门槛的区块链世界中来。这个过程必然需要既懂区块链又懂金融的人才能把这个模式完美地复制到链上。至于项目方是不是带着割韭菜的心态来的,参与者会不会割被割韭菜,我认为还是只能靠自己对自己的行为负责。对于我们普通参与者而言,牢牢把握住一点:不论项目是好是好,币价如果太高就有风险,有风险就谨慎参与。总的来说,DeFi大潮已经到来,它一定会带来全新的体验和全新的机会,它和ICO不同,我们控制好风险,在这个领域抓住属于自己的机会。
道说区块链 行情分析  1  0

重点发布!河北行动计划发布!聚焦7大重点任务发展大数据产业

重点发布!河北行动计划发布!聚焦7大重点任务发展大数据产业
为加快推动我省区块链技术和产业创新发展,推进区块链技术与经济社会深度融合,日前,省委网信办印发《河北省区块链专项行动计划(2020-2022年)》提出,加强区块链理论研究和技术研发,加速区块链产业生态建设,提高区块链应用和管理能力,推动我省区块链产业快速、健康、有序发展,为构建河北现代化经济体系提供有力支撑。01发展目标发展目标为,到2022年末,区块链相关领域领军企业和龙头企业达到20家,培育一批区块链应用产品,力争打造出1-3个全国知名区块链品牌,形成3个具有区域影响力的区块链产业集聚园区,区块链产业竞争力位居国内前列。02加快区块链技术集成创新发展加强技术研发,开展区块链基础理论研究,推进区块链相关学科建设,布局区块链技术研发,着力解决链上链下的问题。支持雄安新区区块链实验室在核心技术研发和新型研发机构建设方面的探索实践。提升创新能力,建立区块链技术应用创新机制,扶持省内区块链学术团体和产业联盟,在省创新创业大赛中纳入区块链内容,联合国内外专家、学者、知名区块链企业,共建区块链产业技术创新联盟。实施一批区块链重大科技专项项目,不断增强自主创新能力。建立标准体系,以标准促发展,以安全保发展。03推动区块链产业与实体经济融合发展大力培育区块链技术创新和应用骨干企业,遴选省内本土优势区块链企业,集中政策要素重点支持,扶持企业快速发展壮大;引入国内外知名企业,培育我省区块链产业发展新的生力军。依托现有各类园区,把支持服务区块链企业发展纳入园区建设的主要内容,推动区块链产业集聚和相关技术创新应用。依托“区块链+”模式,建设1-2个基于区块链技术的新兴产业集群,推动区块链技术产业化应用。利用区块链技术探索实体经济数字化新路径,加快实体经济数字化进程。鼓励行业领军企业建设本行业区块链平台(BaaS),推动行业链在我省实体经济发展中的普遍应用。04推进区块链技术广泛运用加快区块链技术科研成果在企业转化和推广应用,深化区块链技术的商业应用,开展区块链应用试点示范,打造标杆应用。规划城市级区块链应用试点,建设城市级区块链应用。推进重点领域区块链技术应用试点,力争在交易与支付、电子政务与教育、物联网与大数据、确权溯源与信息防诈等领域有所突破,成为全国或区域先进。积极探索“区块链+”在民生领域的运用,推动区块链底层技术服务和新型智慧城市建设相结合。探索利用区块链数据共享模式,实现政务数据跨部门、跨区域共同维护和利用,促进业务协同办理,深化“最多跑一次”改革。支持雄安新区为区块链创新应用试点,探索区块链在资金管理、民生服务、城市治理、数字贸易等领域的应用。05构建区块链健康发展生态环境举办各类区块链培训讲座,组织各级各部门努力学习区块链、积极运用区块链、有效管理区块链。建设区块链基础服务平台、应用测试平台、教育培训平台、资格认证平台、技术测评平台,开展区块链信息服务备案,新技术、新应用安全评估和安全测试评价。加快区块链和人工智能、大数据、物联网等前沿信息技术的深度融合,推动集成创新和融合应用。推动区块链核心业态、关联业态和衍生业态全方位发展,逐步形成区块链创新应用的全产业链、全治理链和全服务链,构建从上游的硬件制造、平台服务、安全服务,到下游的产业技术应用服务,到保障产业发展的行业投融资、媒体、人才服务的区块链产业生态体系。06加强区块链技术应用的监督管理建立区块链协同发展监管体系,依法严厉整治打击利用区块链违法犯罪行为。加强对区块链技术应用的引导和规范,推动建立适应区块链技术机制的安全保障体系,推进形成标准共识和秩序共识,促进区块链行业安全有序发展。推动建立健全区块链行业自律制度和行业准则,提高区块链信息服务从业人员的职业素养。
CECBC 区块链社区  0  0

我国开启“逆袭战”,区块链的盛夏来了?

我国开启“逆袭战”,区块链的盛夏来了?
“如果说在传统的信息技术领域,我们(中国)一直被‘卡脖子’,在以区块链技术为代表的新兴数字技术赛道上,我们完全有机会实现弯道超车。” 中国证监会科技监管局局长姚前表示。  实现超车的最好方式就是汲取前车之鉴,在侧重生产应用的同时,夯实基础科研。  “区块链”在中国野蛮生长5年后,逐步转变为可信数字时代的基石,成为巨头攻城略地的武器,新玩家突围的的捷径。区块链技术的创新不再局限于加密货币,而是“制造信任的机器”,试图改变着人们的生活方式和企业的合作方式。  中国巨头从犹豫入场到奋起直追  最先涌入区块链赛道的是美国IT巨头IBM和微软,微软于2015年11月宣布在Azure云平台中提供BaaS(基于区块链技术搭建的云计算服务平台Blockchain-as-a-service)服务,IBM在2016年2月宣布推出区块链服务平台。  彼时,大多数中国互联网巨头还处于观望状态。2016年2月,阿里巴巴浅尝区块链领域,宣布将区块链技术应用于支付宝爱心捐赠平台,追溯公益善款;10月,与微软等公司合作开发“法链”;2017年8月,试点“医联体+区块链”项目。  2018年初,伪“区块链”项目掀起融资热,浮躁的市场遭到政府“叫停”。声名狼藉的“区块链”被埋没在乱象丛生的阴影下。而此时,IBM和微软已经紧撺云计算+区块链领域超过50%的市场份额。  2018年下半年,区块链布局转向台面之下,成为中国互联网巨头争夺的一股潜流,巨头们没有在区块链上直接对垒,而是将其融入自己的生态,服务于自己的生态,开启一场没有硝烟的战争。  多年在互联网领域的沉淀,大厂们已经摸索出一套成熟的技术突围的基本方法,即在服务上分化、融合,慢慢将区块链技术嵌入用户黏度高的应用中。  支付宝的路数如出一辙,最开始,将区块链技术嵌入支付宝爱心捐赠平台,随后基于支付宝展开生态构建,包括将区块链技术运用于发票、跨境支付、租赁等场景,以及今年4月启动的“开放联盟链”,思路还是共荣共赢,将流量导出给生态中的其他伙伴,自己牢牢把握入口。  “你以为它是一个离你很远的高科技,有点阳春白雪,但当它一个接一个地嵌入你平时常用的商品、服务,把你合围起来的时候,你才惊觉原来区块链与我的生活息息相关。”一位接近区块链行业的人士表示。  腾讯专注金融,京东去伪存真,阿里系狙击民生。  “从技术发展的角度来看,当前我国区块链的发展与国外基本同步,但在布局上略有不同。我们更侧重于应用层面,而其他国家则注重基础科研。”姚前表示。  政策的春天 可否突围?  随着政策利好,愈来愈多的选手加入区块链赛道。  今年4月,发改委明确新基建范围,并将区块链纳入其中。多省市也相继出台区块链专项发展政策,强调大力发展区块链在金融、政务、民生、跨境电商等领域的应用。  例如,在金融领域,湖南提出要推进基于区块链的金融信息共享,以及推进基于区块链的产业金融;北京计划促进金融服务“多方互信,降本增效”,推动在供应链金融、资产证券化、跨境支付等领域落地一批应用场景;贵州提出推进区块链+金融服务专项工程,支持区块链鼓励金融机构基于区块链开展业务创新;海南省则提出要探索区块链+金融沙箱监管机制,给“区块链+金融”新业态发展提供宽松的创新环境。  政务上,湖南、北京均指出要推动政务数据开放共享;贵州表示将发展区块链+政务服务,依托“一云一网一平台”,建立政府主导的联盟链,实现数据变化实时探知、访问全程留痕、共享有序关联,持续优化营商环境,服务“一网通办”;海南提出推动电子政务项目链改,以政府区块链应用驱动区块链示范应用突破。  民生领域中,湖南计划将鼓励民生服务区块链示范应用;北京则更为具化到公共安全和卫生健康方向,提出要推进公共安全“全程可查,流程可溯”,助力卫生健康“可信共享,存证溯源”;贵州在区块链与民生服务融合应用工程,提出区块链+精准脱贫、区块链+医疗健康等应用;海南和河北均提及要积极推动区块链技术在教育、就业、养老、精准扶贫、医疗健康、商品防伪、食品安全、公益、社会救助等民生领域的应用。  截至2019年8月,中国互联网企业百强中,前50强名已有24个企业布局区块链业务,占比48%;前20强已有15个企业布局区块链业务,占比75%,区块链领域已然成为巨头必争之地。  而纵观全球,区块链技术已成为可信数字时代变革的全新赛道,各个国家都在这一领域加速布局。例如,美国政、产、学、研、用各界积极推动区块链技术的发展和应用,希望抓住这项技术带来的创新机遇,推动数字变革。  值得注意的是,虽然我国在区块链技术上的发展与国外暂时处于同一水平线,但关键性、基础性的技术原创仍集中在国外,汲取此前“中国芯”的教训,中国企业有必要重视对区块链基础科研的投入,同时在应用服务的角度不断优化、完善,加强区块链技术与实体经济的深度融合,探索区块链在民生领域、智慧城市建设、优化政府服务等方面的运用。  区块链的春天肯定是真的来了,至于选手们能不能持续迎来夏天还有待观察。  区块链的发展不仅依靠技术和产业的创新,还要注重加强风险研究和分析,加强行业自律,依法治链。技术革新开启新的赛道,新的浪潮又将涌起,为我国后来者创造超越他国的机会。如果我国区块链安全有序发展,那么区块链的盛夏就不远了。
CECBC 区块链社区  1  0

实战贴:Yam过去24小时,惊险的明线与暗线

实战贴:Yam过去24小时,惊险的明线与暗线
傻哥昨天写完《傻哥在Yam种红薯》后,本以为故事就快结束了。没想到过去24小时,Yam这个项目上演了一幕大戏。这场大戏有明暗两条线,颇为精彩,也极具加密货币社区的特色。傻哥写这个《实战系列》,始终遵循几个原则。一是不推荐任何币种,不做任何投资建议、二是尽可能还原实战过程,让新手也能学会操作,并且尽量提供一些深度的思考。傻哥的操作话说,昨夜凌晨3点,Yam流动性挖矿池开始启动。傻哥犹豫了下要不要熬夜,想来还是算了。傻哥本是研究性质,没有必要为了投资损失自己的睡眠。第二天早上,傻哥起来一看,大吃一惊,Yam的价格暴跌。居然从150美金跌倒了12美金。傻哥当场就想,这点收益还玩什么呢?赶紧提现吧。于是打开yam官网,看看自己种的红薯怎么样了,准备提现。这时,傻哥突然发现自己的红薯数量不对。按照昨天白天的挖矿竞争强度,6-7个小时才挖出来一个。傻哥自己账户余额了10多个Yam,数据显然不对。这是为什么呢?傻哥在想是不是因为价格跌了,所以很多人不挖了,导致挖矿变得容易了。于是傻哥迅速利用YFII机枪池的收益扫描工具,扫描了下Yam staking挖矿的实时收益情况。如图,用Weth stake的话,收益率依然能有833%,还是不低的。在看看昨天极其牛逼的comp池:Comp池的年化收益还是很高,接近4000%,依然十分惊人。如此惊人的回报,不会没人玩了的。于是傻哥再次检查了下官网的数据:没问题,目前的抵押还是6亿美金,新高,说明大家还在玩。那傻哥的红薯Yam为啥多了这么多呢?基本确认了,昨夜系统大幅度增加了币量,导致了币价下跌。这种AMPL的机制,使得每个币都是加了反稀释条款的股权。每个人手上的红薯也同比例增加了,没有损失。因此热度还在,大家还在接着玩。因此,傻哥准备接着参与下流动性挖矿。于是接着从官网收割了所有的红薯,并提现所有weth。一会儿,傻哥的Yam和Weth就都重新回到metamask上了。可是,这时傻哥注意到这个收割和提现动作,在以太网络的Gasfee已经达到150人民币了。可见项目的火爆程度,亦可见小资金是无法承受这么大的摩擦成本的。来到uniswap上,准备在资金性矿池测试下流动性挖矿:可是呢,在uniswap上流动性挖矿,资金池的weth和Yam是按照50:50的比例。傻哥就10个Yam,只需要0.3个eth,因此大部分的Weth用不着。傻哥尝试增加流动性,用过metamask来授权交易。可是试了两次,发现都失败了。这是傻哥意识到自己这点Yam居然占资金池的千分之1.5。结合前文的分析,大量的人还在玩,傻哥意识到Yam系统可能出了问题了。于是暂时放弃流动性挖矿,只是白白可惜了两次gas的费用。此时,傻哥为了安全起见,准备撤退。把大部分用不着的weth,重新解封装为eth了。只留了一点weth和yam,准备找机会再测试流动性挖矿。至此主力撤退。凶险的明线傻哥继续寻找信息,看看yam系统到底怎么了。在twitter上看到,官方说项目出bug了。一张大大的“救救Yam”的图片显示在官方twitter上,傻哥心里一想:要糟!未经审计的项目果然出事儿了。开始官方只是说bug和rebase(币量调节)有关,但staking依然是安全的,并且每个人的红薯?余额也不受影响。这就解释了为啥傻哥今早起来账户有10个红薯,昨夜系统出bug,印了太多钞了。接下来的事情就麻烦了,因为这个bug,导致昨夜凌晨3点开始的流动性挖矿挖不了了。Uniswap上根本无法操作,官方也承认了。这说明傻哥之前的判断是正确的,无数人像傻哥一样,无法在uniswap上挖矿。Defi积木的相互嵌套,真是一个积木出问题,其他都容易出问题。风险连锁的呀。更麻烦的来了,官方补充说,如果bug不修复,之前在uniswap挖矿的yCRV也会被锁起来。如果真这样,可能要激起民愤。后来官方把代码的bug研究了一下,做了进一步解释,并且向社区提交的解决方案的请求。需要解释东西太多,twitter不方便的,就直接在medium上长篇大论了起来。傻哥简要翻一下:在调节币量的过程中,涉及印钞量的程序函数搞错了。现在需要所有的矿工停下手上的活儿,一起拯救Yam网络。看来事儿不小啊。解决方案是什么呢?解决的方法是暂时停止调节币量的功能,这样就不会傻乎乎的让程序瞎印钞了。并且,把Yam控制权适度交给官方,让开发团队有足够的权限快速修复bug.那好了,咱不是去中心化社区吗?这个解决方案需要大家同意才能通过。举手表决把,一旦有超过16万的红薯拥有者表决通过,就能通过提案,Yam就能渡过难关。看到这里,傻哥捏了一把汗。因为这会儿,打击的红薯都锁定了,在挖矿呢,这么高的收益,怎么会停下来呢?而且投票表决要把红薯放在钱包三天时间,三天时间啊,可要损失很多的收益的。这样,傻哥就不能确定会不会有足够的人去表决通过官方的提案。如果救援失败,项目的治理就失败了。所有人都可能归零。这时候,官方出来给定心丸:表决的矿工损失了三天的收益,不要紧。官方说:没跑儿,你如果表决,待我修复bug,一定给你更多的奖励,绝对弥补损失。为了让小白可以操作,官方甚至在medium上做了个教程,告诉大家如何停止挖矿,把币提出来投票。这下好了,社群的群众吃了定心丸,开始在yam官网表决了。嗷嗷嗷,一下子就超过了16万的Yam.但官方希望达到20万,以增加决议的安全性。Yam的后续命运如何,看来还是前途未卜。在发文之时,Yam的价格已经跌到了3美金,泥沙俱下。至此,我们应该静静等待Yam官方如何修复bug,甚至开启Ya**.0。后续的治理工作如何安排,也值得跟进。贪婪的暗线在官方号召抢救Yam项目的时候,其实是有一群人无动于衷的。大家知道前夜3点,Yam staking头矿的收益十分惊人,达到了20000%。无视,在昨夜3点凌晨,更是有无数人在抢Yam的流动性挖矿的头矿。可是,大家知道系统出bug了呀,根本无法在uniswap上挖矿。这时候,无数散户走投无路,无数gas被白白消耗在一遍遍无用的尝试上。于是,有一部分散户想到了YFII的机枪池。试图通过机枪池来挖Yam的头矿。这当然是天真的想法。YFII团队哪有这么快的反应。早上傻哥和接近YFII机枪池的消息人士确认,机枪池无法挖yam的流动性头矿。可是,官方留了一个口子。细心的朋友再仔细看这条twitter:先是说Uniswap上挖不了了,但也提到可以继续在etherscan上挖。可Etherscan上怎么挖呢?给大家看下截图就知道了:是的,只要专业级选手,才能通过etherscan直接调用执行智能合约。而一旦出错,就可能面对资产的损失。因此就只有非常少数的专业级选手挖到了极为丰厚的头矿。据说头半小时挖矿收益达到百分之几百万。无数社区成员,在twitter下苦苦追问,如何通过etherscan调用执行智能合约来挖矿。是呀,这已经是很聪明的人了,奈何不懂技术。天下往往,皆为利往,精彩。也有人厌倦了系统的bug,只希望拿回锁在uniswap中的本金。在写文时,傻哥再度通过YfII机枪池,扫描了下Yam流动性挖矿的收益:依然是惊人的22117%。这个市场给敏锐而动手能力强的人,汇报何其丰厚。总结与思考1、即便Defi非常火热,但动不动1-200块的Gas对小资金不友好。这和真实世界对穷人不友好的道理是一样的。2、Defi协议之间是类似积木耦合。一块积木出问题,另一块也会出问题。风险嵌套放大。3、市场的红利在于极大奖励能力强和敏锐的人。普通大众是难以在市场赚到大钱的。4、Defi项目在目前的技术阶段存在不小的风险。就在刚刚,官方又说发现潜在漏洞,可能会导致修复bug的提案执行不利。5、加密技术是自由市场的巅峰之作。而此刻的Defi正站在巅峰之上。6、人性的贪婪会在去中心化组织中放大。但我们要怀有希望,相信人类具备充足的理性,有更好的未来。ps.再次提醒,傻哥的实战贴不构成任何投资建议,傻哥自己也只是小资金测试研究。纸上得来终绝浅,绝知此事要躬行。
比特傻 区块链社区  4  0

DeFi YAM,一行代码如何蒸发数亿美元?

DeFi YAM,一行代码如何蒸发数亿美元?
By :yudan @慢雾安全团队前言2020 年 8 月 13 日,知名以太坊DeFi 项目 YAM 官方通过 Twitter 发文表明发现合约中存在漏洞,24 小时内价格暴跌 99% 。慢雾安全团队在收到情报后快速进行了相关的跟进及分析,以下是详细的技术细节。发生了什么?以上是YAM 官方对本次事件的简短说明(来源:https://medium.com/@yamfinance/save-yam-245598d81cec)。简单来说就是官方在合约中发现负责调整供应量的函数发生了问题,这个问题导致多余的 YAM 代币放进了 YAM 的 reserves 合约中,并且如果不修正这个问题,将会导致 YAM 的后续治理变为不可能。同时,官方给出了此次漏洞的具体问题代码,如下:从上图可知,由于编码不规范,YAM 合约在调整 totalSupply 的时候,本应将最后的结果除以 BASE 变量,但是在实际开发过程中却忽略了,导致 totoalSupply 计算不正确,比原来的值要大 10^18 倍。但是代币供应量问题和治理是怎么扯上关系呢?这需要我们针对代码做进一步的分析。YAM 会变成怎样?为了深入了解此次漏洞造成的影响,需要对 YAM 项目代码进行深入的了解。根据官方给出的问题代码及项目 Github 地址(https://github.com/yam-finance/yam-protocol),可以定位出调整供应量的rebase函数位于 YAMDelegator.sol 合约中,具体代码如下:function rebase( uint256 epoch, uint256 indexDelta, bool positive ) external returns (uint256) { epoch; indexDelta; positive; delegateAndReturn(); }通过跟踪rebase函数,发现rebase函数最终调用了 delegateAndReturn 函数,代码如下:function delegateAndReturn() private returns (bytes memory) { (bool success, ) = implementation.delegatecall(msg.data); assembly { let free_mem_ptr := mload(0x40) returndatacopy(free_mem_ptr, 0, returndatasize) switch success case 0 { revert(free_mem_ptr, returndatasize) } default { return(free_mem_ptr, returndatasize) } } }通过分析代码,可以发现 delegateAndReturn 函数最终使用 delegatecall 的方式调用了 implementation 地址中的逻辑,也就是说,这是一个可升级的合约模型。而真正的rebase逻辑位于 YAM.sol 中, 继续跟进 rebase 函数的具体逻辑,如下:function rebase( uint256 epoch, uint256 indexDelta, bool positive) external onlyRebaser returns (uint256) { if (indexDelta == 0) { emit Rebase(epoch, yamsScalingFactor, yamsScalingFactor); return totalSupply; } uint256 prevYamsScalingFactor = yamsScalingFactor; if (!positive) { yamsScalingFactor = yamsScalingFactor.mul(BASE.sub(indexDelta)).div(BASE); } else { uint256 newScalingFactor = yamsScalingFactor.mul(BASE.add(indexDelta)).div(BASE); if (newScalingFactor < _maxScalingFactor()) { yamsScalingFactor = newScalingFactor; }else { yamsScalingFactor = _maxScalingFactor(); } } //SlowMist// 问题代码 totalSupply = initSupply.mul(yamsScalingFactor); emit Rebase(epoch, prevYamsScalingFactor, yamsScalingFactor); return totalSupply; }}通过分析最终的rebase函数的逻辑,不难发现代码中根据 yamsScalingFactor 来对 totalSupply 进行调整,由于 yamsScalingFactor 是一个高精度的值,在调整完成后应当除以 BASE 来去除计算过程中的精度,获得正确的值。但是项目方在对 totalSupply 进行调整时,竟忘记了对计算结果进行调整,导致了 totalSupply 意外变大,计算出错误的结果。分析到这里还没结束,要将漏洞和社区治理关联起来,需要对代码进行进一步的分析。通过观察rebase函数的修饰器,不难发现此处限定了只能是 rebaser 进行调用。而 rebaser 是 YAM 中用与实现供应量相关逻辑的合约,也就是说,是 rebaser 合约最终调用了 YAM.sol 合约中的rebase函数。通过跟踪相关代码,发现 rebaser 合约中对应供应量调整的逻辑为rebase函数,代码如下:function rebase() public { // EOA only require(msg.sender == tx.origin); // ensure rebasing at correct time _inRebaseWindow(); // This comparison also ensures there is no reentrancy. require(lastRebaseTimestampSec.add(minRebaseTimeIntervalSec) < now); // Snap the rebase time to the start of this window. lastRebaseTimestampSec = now.sub(now.mod(minRebaseTimeIntervalSec)).add(rebaseWindowOffsetSec); epoch = epoch.add(1); // get twap from uniswap v2; uint256 exchangeRate = getTWAP(); // calculates % change to supply (uint256 offPegPerc, bool positive) = computeOffPegPerc(exchangeRate); uint256 indexDelta = offPegPerc; // Apply the Dampening factor. indexDelta = indexDelta.div(rebaseLag); YAMTokenInterface yam = YAMTokenInterface(yamAddress); if (positive) { require(yam.yamsScalingFactor().mul(uint256(10**18).add(indexDelta)).div(10**18) <yam.maxScalingFactor(), "new scaling factor will be too big"); } //SlowMist// 取当前 YAM 代币的供应量 uint256 currSupply = yam.totalSupply(); uint256 mintAmount; // reduce indexDelta to account for minting //SlowMist// 计算要调整的供应量 if (positive) { uint256 mintPerc = indexDelta.mul(rebaseMintPerc).div(10**18); indexDelta = indexDelta.sub(mintPerc); mintAmount = currSupply.mul(mintPerc).div(10**18); } // rebase //SlowMist// 调用 YAM 的rebase 逻辑 uint256 supplyAfterRebase = yam.rebase(epoch, indexDelta, positive); assert(yam.yamsScalingFactor() <= yam.maxScalingFactor()); // perform actions after rebase //SlowMist// 进入调整逻辑 afterRebase(mintAmount, offPegPerc); }通过分析代码,可以发现函数在进行了一系列的检查后,首先获取了当前 YAM 的供应量,计算此次的铸币数量,然后再调用 YAM.sol 中的rebase函数对 totalSupply 进行调整,也就是说 rebase 过后的对 totalSupply 的影响要在下一次调用 rebaser 合约的rebase函数才会生效。最后rebase函数调用了 afterRebase 函数。我们继续跟进 afterRebase 函数中的代码:function afterRebase( uint256 mintAmount, uint256 offPegPerc) internal { // update uniswap UniswapPair(uniswap_pair).sync(); //SlowMist// 通过 uniswap 购买 yCRV 代币 if (mintAmount > 0) { buyReserveAndTransfer( mintAmount, offPegPerc ); } // call any extra functions //SlowMist// 社区管理调用 for (uint i = 0; i < transactions.length; i++) { Transaction storage t = transactions; if (t.enabled) { bool result = externalCall(t.destination, t.data); if (!result) { emit TransactionFailed(t.destination, i, t.data); revert("Transaction Failed"); } } } }通过分析发现, afterRebase 函数主要的逻辑在 buyReserveAndTransfer 函数中,此函数用于将增发出来的代币的一部分用于到 Uniswap 中购买 yCRV 代币。跟踪 buyReserveAndTransfer 函数,代码如下:function buyReserveAndTransfer( uint256 mintAmount, uint256 offPegPerc ) internal { UniswapPair pair = UniswapPair(uniswap_pair); YAMTokenInterface yam = YAMTokenInterface(yamAddress); // get reserves (uint256 token0Reserves, uint256 token1Reserves, ) = pair.getReserves(); // check if protocol has excess yam in the reserve uint256 excess = yam.balanceOf(reservesContract); //SlowMist// 计算用于 Uniswap 中兑换的 YAM 数量 uint256 tokens_to_max_slippage = uniswapMaxSlippage(token0Reserves, token1Reserves, offPegPerc); UniVars memory uniVars = UniVars({ yamsToUni: tokens_to_max_slippage, // how many yams uniswap needs amountFromReserves: excess, // how much of yamsToUni comes from reserves mintToReserves: 0 // how much yams protocol mints to reserves }); // tries to sell all mint + excess // falls back to selling some of mint and all of excess // if all else fails, sells portion of excess // upon pair.swap, `uniswapV2Call` is called by the uniswap pair contract if (isToken0) { if (tokens_to_max_slippage > mintAmount.add(excess)) { // we already have performed a safemath check on mintAmount+excess // so we dont need to continue using it in this code path // can handle selling all of reserves and mint uint256 buyTokens = getAmountOut(mintAmount + excess, token0Reserves, token1Reserves); uniVars.yamsToUni = mintAmount + excess; uniVars.amountFromReserves = excess; // call swap using entire mint amount and excess; mint 0 to reserves pair.swap(0, buyTokens, address(this), abi.encode(uniVars)); } else { if (tokens_to_max_slippage > excess) { // uniswap can handle entire reserves uint256 buyTokens = getAmountOut(tokens_to_max_slippage, token0Reserves, token1Reserves); // swap up to slippage limit, taking entire yam reserves, and minting part of total //SlowMist// 将多余代币铸给 reserves 合约 uniVars.mintToReserves = mintAmount.sub((tokens_to_max_slippage - excess)); //SlowMist// Uniswap代币交换 pair.swap(0, buyTokens, address(this), abi.encode(uniVars)); } else { // uniswap cant handle all of excess uint256 buyTokens = getAmountOut(tokens_to_max_slippage, token0Reserves, token1Reserves); uniVars.amountFromReserves = tokens_to_max_slippage; uniVars.mintToReserves = mintAmount; // swap up to slippage limit, taking excess - remainingExcess from reserves, and minting full amount // to reserves pair.swap(0, buyTokens, address(this), abi.encode(uniVars)); } } } else { if (tokens_to_max_slippage > mintAmount.add(excess)) { // can handle all of reserves and mint uint256 buyTokens = getAmountOut(mintAmount + excess, token1Reserves, token0Reserves); uniVars.yamsToUni = mintAmount + excess; uniVars.amountFromReserves = excess; // call swap using entire mint amount and excess; mint 0 to reserves pair.swap(buyTokens, 0, address(this), abi.encode(uniVars)); } else { if (tokens_to_max_slippage > excess) { // uniswap can handle entire reserves uint256 buyTokens = getAmountOut(tokens_to_max_slippage, token1Reserves, token0Reserves); // swap up to slippage limit, taking entire yam reserves, and minting part of total //SlowMist// 增发的多余的代币给 reserves 合约 uniVars.mintToReserves = mintAmount.sub( (tokens_to_max_slippage - excess)); // swap up to slippage limit, taking entire yam reserves, and minting part of total //Slowist// 在 uniswap 中进行兑换,并最终调用 rebase 合约的 uniswapV2Call 函数 pair.swap(buyTokens, 0, address(this), abi.encode(uniVars)); } else { // uniswap cant handle all of excess uint256 buyTokens = getAmountOut(tokens_to_max_slippage, token1Reserves, token0Reserves); uniVars.amountFromReserves = tokens_to_max_slippage; uniVars.mintToReserves = mintAmount; // swap up to slippage limit, taking excess - remainingExcess from reserves, and minting full amount // to reserves pair.swap(buyTokens, 0, address(this), abi.encode(uniVars)); } } } }通过对代码分析,buyReserveAndTransfer 首先会计算在 Uniswap 中用于兑换 yCRV 的 YAM 的数量,如果该数量少于 YAM 的铸币数量,则会将多余的增发的 YAM 币给 reserves 合约,这一步是通过 Uniswap 合约调用rebase合约的 uniswapV2Call 函数实现的,具体的代码如下:function uniswapV2Call( address sender, uint256 amount0, uint256 amount1, bytes memory data) public{ // enforce that it is coming from uniswap require(msg.sender == uniswap_pair, "bad msg.sender"); // enforce that this contract called uniswap require(sender == address(this), "bad origin"); (UniVars memory uniVars) = abi.decode(data, (UniVars)); YAMTokenInterface yam = YAMTokenInterface(yamAddress); if (uniVars.amountFromReserves > 0) { // transfer from reserves and mint to uniswap yam.transferFrom(reservesContract, uniswap_pair, uniVars.amountFromReserves); if (uniVars.amountFromReserves < uniVars.yamsToUni) { // if the amount from reserves > yamsToUni, we have fully paid for the yCRV tokens // thus this number would be 0 so no need to mint yam.mint(uniswap_pair, uniVars.yamsToUni.sub(uniVars.amountFromReserves)); } } else { // mint to uniswap yam.mint(uniswap_pair, uniVars.yamsToUni); } // mint unsold to mintAmount //SlowMist// 将多余的 YAM 代币分发给 reserves 合约 if (uniVars.mintToReserves > 0) { yam.mint(reservesContract, uniVars.mintToReserves); } // transfer reserve token to reserves if (isToken0) { SafeERC20.safeTransfer(IERC20(reserveToken), reservesContract, amount1); emit TreasuryIncreased(amount1, uniVars.yamsToUni, uniVars.amountFromReserves, uniVars.mintToReserves); } else { SafeERC20.safeTransfer(IERC20(reserveToken), reservesContract, amount0); emit TreasuryIncreased(amount0, uniVars.yamsToUni, uniVars.amountFromReserves, uniVars.mintToReserves); } }分析到这里,一个完整的rebase流程就完成了,你可能看得很懵,我们用简单的流程图简化下:也就是说,每次的rebase,如果有多余的 YAM 代币,这些代币将会流到 reserves 合约中,那这和社区治理的关系是什么呢?通过分析项目代码,发现治理相关的逻辑在 YAMGovernorAlpha.sol 中,其中发起提案的函数为 propose,具体代码如下:function propose( address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description) public returns (uint256){ //SlowMist// 校验提案发起者的票数占比 require(yam.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold(), "GovernorAlpha::propose: proposer votes below proposal threshold"); require(targets.length == values.length && targets.length == signatures.length && targets.length == calldatas.length, "GovernorAlpha::propose: proposal function information arity mismatch"); require(targets.length != 0, "GovernorAlpha::propose: must provide actions"); require(targets.length <= proposalMaxOperations(), "GovernorAlpha::propose: too many actions"); uint256 latestProposalId = latestProposalIds[msg.sender]; if (latestProposalId != 0) { ProposalState proposersLatestProposalState = state(latestProposalId); require(proposersLatestProposalState != ProposalState.Active, "GovernorAlpha::propose: one live proposal per proposer, found an already active proposal"); require(proposersLatestProposalState != ProposalState.Pending, "GovernorAlpha::propose: one live proposal per proposer, found an already pending proposal"); } uint256 startBlock = add256(block.number, votingDelay()); uint256 endBlock = add256(startBlock, votingPeriod()); proposalCount++; Proposal memory newProposal = Proposal({ id: proposalCount, proposer: msg.sender, eta: 0, targets: targets, values: values, signatures: signatures, calldatas: calldatas, startBlock: startBlock, endBlock: endBlock, forVotes: 0, againstVotes: 0, canceled: false, executed: false }); proposals[newProposal.id] = newProposal; latestProposalIds[newProposal.proposer] = newProposal.id; emit ProposalCreated( newProposal.id, msg.sender, targets, values, signatures, calldatas, startBlock, endBlock, description ); return newProposal.id; }通过分析代码,可以发现在发起提案时,需要提案发起人拥有一定额度的票权利,这个值必须大于 proposalThreshold 计算得来的值,具体代码如下:functionproposalThreshold()publicviewreturns(uint256){ returnSafeMath.div(yam.initSupply(),100);}//1%ofYAM也就是说提案发起人的票权必须大于 initSupply 的 1% 才能发起提案。那 initSupply 受什么影响呢?答案是 YAM 代币的 mint 函数,代码如下:function mint(address to, uint256 amount) external onlyMinter returns (bool){ _mint(to, amount); return true; } function _mint(address to, uint256 amount) internal{ // increase totalSupply totalSupply = totalSupply.add(amount); // get underlying value uint256 yamValue = amount.mul(internalDecimals).div(yamsScalingFactor); // increase initSupply initSupply = initSupply.add(yamValue); // make sure the mint didnt push maxScalingFactor too low require(yamsScalingFactor <= _maxScalingFactor(), "max scaling factor too low"); // add balance _yamBalances[to] = _yamBalances[to].add(yamValue); // add delegates to the minter _moveDelegates(address(0), _delegates[to], yamValue); emit Mint(to, amount); }从代码可知,mint 函数在每次铸币时都会更新 initSupply 的值,而这个值是根据 amount 的值来计算的,也就是铸币的数量。现在,我们已经分析完所有的流程了,剩下的就是把所有的分析串起来,看看这次的漏洞对 YAM 产生了什么影响,对上文的流程图做拓展,变成下面这样:整个事件的分析如上图,由于rebase的时候取的是上一次的 totalSupply 的值,所以计算错误的 totalSupply 的值并不会立即通过 mint 作用到 initSupply 上,所以在下一次rebase前,社区仍有机会挽回这个错误,减少损失。但是一旦下一次rebase执行,整个失误将会变得无法挽回。通过查询 Etherscan 上 YAM 代币合约的相关信息,可以看到 totalSupply 已经到了一个非常大的值,而 initSupply 还未受到影响。前车之鉴这次事件中官方已经给出了具体的修复方案,这里不再赘述。这次的事件充分暴露了未经审计 DeFi 合约中隐藏的巨大风险,虽然 YAM 开发者已经在 Github 中表明 YAM 合约的很多代码是参考了经过充分审计的 DeFi 项目如 Compound、Ampleforth、Synthetix 及 YEarn/YFI,但是仍无可避免地发生了意料之外的风险。DeFi 项目 Yam Finance(YAM) 核心开发者 belmore 在推特上表示:“对不起,大家。我失败了。谢谢你们今天的大力支持。我太难过了。”,但是覆水已经难收,在此,慢雾安全团队给出如下建议:1、由于 DeFi 合约的高度复杂性,任何 DeFi 项目都需在经过专业的安全团队充分审计后再进行上线,降低合约发生意外的风险。2、项目中去中心化治理应循序渐进,在项目开始阶段,需要设置适当的权限以防发生黑天鹅事件。
慢雾安全团队 区块链社区  0  0