接上文。
Facebook如期上線了FBCoin的官網和白皮書,官宣里還放了幾個錢包的截圖,可謂吊足了人們的胃口。坊間已經有了各種討論了1,各種陰謀論2也緊隨其后。這里還是推薦BinanceResearch的調研報告和孟巖老師的訪談。
這一次同時上線的還有一個開發者網站,里面有三篇TechnicalPapers,分別是:
TheLibraBlockchain介紹LibraProtocol以及她的官方實現LibraCore。
Move:ALanguageWithProgrammableResources介紹為Libra量身定做的智能合約語言——Move語言。
StateMachineReplicationintheLibraBlockchain介紹Libra上跑的共識算法——LibraBFT。
之前就在想FBCoin的誕生如果要給開放式金融提供新的可能,就一定要看FBCoin賦予了開發者哪些權限,會不會推出自己的智能合約語言。這個想法現在得到了證實,這個語言直接被命名為Move,一如Facebook的格言「MoveFastandBreakThings」。同時Move也表示智能合約的本質就是對用戶資產的轉移進行編程,還真是一語雙關呢。
初看FBCoin的白皮書和官網,特別是首頁的那個宣傳視頻,里面反復的在各種普通人的生活日常中快速的切換著——大多是還是來自我們這些第三世界國家——這讓我產生了一種非常不真實的穿越感,看來幣圈還真的是一個有時間膨脹效應的地方。
但是無論如何,我們都要在這種不真實感中尋找真實。這三篇TechnicalPapers包含比我預想的還要多的GoodStuff,總之我吃的很飽。
Move語言的必要性
李笑來:Facebook又犯傻,用得著專門設計個Move語言嗎?——巴比特,對于Facebook發幣,行業大咖如此點評
“Ifyou’rewritingaprogramthathastoworkverycloselywithaprogramwritteninacertainlanguage,itmightbeagoodideatowritethenewprograminthesamelanguage.”?——?PaulGraham
FBCoin會推出自己的智能合約語言并不令人意外,畢竟上個月Durov在TON的Channel里就已經丟出了一份Fift的文檔了3。不出一個新語言,感覺扎克伯格在面子上也掛不住。另外FBCoin要處理的Context和我們目前所遇到的Blockchain都不一樣,在Move的TechnicalPaper中這些訴求被歸結為以下四點:
First-classassets
Flexibility
Safety
Verifiability
安全性Safety
我們一個一個來看,先說安全性。和其他擁有自己的智能合約語言的區塊鏈項目一樣,Move設計之初的一個核心訴求就是安全性,你能想象BillionsofPeople因為一個智能合約的漏洞就被黑客薅的傾家蕩產家破人亡嗎?——雖然我實際上相信FBCoin是可以回滾的...
Inparticular,transferringEthertoasmartcontractinvolvesdynamicdispatch,whichhasledtoanewclassofbugsknownasre-entrancyvulnerabilities.High-profileexploits,suchastheDAOattackandtheParityWallethack,haveallowedattackerstostealmillionsofdollarsworthofcryptocurrency.——Move:ALanguageWithProgrammableResources
Sui 將地址長度從 20 字節增加到 32 字節:3月30日消息,Layer1 區塊鏈 Sui Network 發布 0.29.0 版本更新,其中包括將 Sui 地址長度從 20 字節增加到 32 字節。[2023/3/30 13:34:50]
這里Move喜聞樂見的又把Ethereum上的這幾個Case拿出來批判了一番。Move的白皮書提到,想要一勞永逸的解決安全性的問題,不能信任智能合約的開發者,要么在編譯期,要么在執行期一定要做檢查。而Move看起來則是參考了JVM中的設計,選擇了一個折衷主義的方案,在執行期之前,加了一個BytecodeVerifier。
一等公民First-classassets
這是一組PL里的概念,所謂的編程語言中的一等公民就是在我們編程時首要考慮的被編程對象,最常見于理解各種函數式語言。
FirstClass:該類型的值可以作為函數的參數和返回值,也可以賦給變量。
SecondClass:該類型的值可以作為函數的參數,但不能從函數返回,也不能賦給變量。
ThirdClass:該類型的值作為函數參數也不行。
FBCoin這里用這種說法,我認為只是在強調一件事情,就是用戶自己發行的數字資產和Libra里的那個StableCoin是平級的。
這里原文還是繼續ChallengeEthereum。
However,theexpressivityoftheEVMhasopenedthedoortoexpensiveprogrammingmistakes.LikeStrawCoin,theEthercurrencyhasaspecialstatusinthelanguageandisimplementedinawaythatenforcesscarcity.Butimplementersofcustomassets(e.g.,viatheERC20standard)donotinherittheseprotections(asdescribedin(2))—theymustbecarefulnottointroducebugsthatallowduplication,reuse,orlossofassets.Thisischallengingduetothecombinationoftheindirectrepresentationproblemdescribedin(1)andthehighlydynamicbehavioroftheEVM.
一個典型的例子就是美圖幣。雖然這個ICO合約只在OpenZeppelin標準庫的基礎上增加了一個函數,結果那個函數里的操作就溢出了,使得黑客可以無限增發。類似的例子還有POWH、Hexagon、etcs,不勝枚舉。
另一方面,一些用戶自己的代幣不是第一公民,使得合約有的時候處理Ether和ERC20時,需要分別討論。一個典型的例子就是Bancor的合約,為了避免額外的判斷,Bancor合約中單獨寫了一個ERC20Token來打包Ether,將相關的邏輯統一起來。后來這種方式逐漸形成標準,就是我們后來經常看到的wETH交易對。
這方面EOS的處理的則更為優雅,絕大部分底層的功能,也是通過超級節點部署智能合約的方式上線的,其中就包括eosio.token本身。而EOS和你自己發行的數字資產在合約里的唯一區別就是發行的合約不同而已,并且EOS的assets結構,也已經包含了這些邊界保護。
以太坊巨鯨從 Bitfinex 轉移了超8000萬美元的ETH:金色財經消息,以太坊巨鯨從 Bitfinex 轉移了價值 80,656,629 美元的以太坊,交易地址為:0x4862733b5fddfd35f35ea8ccf08f5045e57388b3。[2022/4/19 14:32:34]
EOS中是把原生資產和用戶資產同時下放到了合約層面,而在Libra中,是把用戶資產和原生資產同時上升到協議底層。
可驗證性Verifiability
但是BytecodeVerifier理論上只能檢查一下類型不匹配、內存溢出這樣的簡單Bug,要檢查出所有邏輯上的Bug無異說要解決停機問題,而且這部分時間復雜度也會被加到共識算法的CriticalPath上,必須要做出相應的權衡。Move的解決方法是,只將一些時間復雜度最低,同時又最關鍵的檢查工作放在這個階段,其他則寄希望于鏈下的靜態驗證的工具。
為了簡化這些靜態檢查工具的設計,Move在語言層面的功能上進行了一些必要的犧牲,而這一切都是為了將來做形式化驗證做鋪墊。
Nodynamicdispatch
Thetargetofeachcallsitecanbestaticallydetermined.Thismakesiteasyforverificationtoolstoreasonpreciselyabouttheeffectsofaprocedurecallwithoutperformingacomplexcallgraphconstructionanalysis.
首先拿掉的就是動態分派。動態分派是指在運行期選擇調用方法的實現的流程。現代高級編程語言中被廣泛采用,被認為是面向對象語言的基本特性。但是一旦包含這個特性就會使得做靜態驗證十分困難。一個典型的例子就是TheDAO硬分叉事件里面的Re-entrancy攻擊。
Limitedmutability
EverymutationtoaMovevalueoccursthroughareference.Referencesaretemporaryvaluesthatmustbecreatedanddestroyedwithintheconfinesofasingletransactionscript.Move’sbytecodeverifierusesa“borrowchecking”schemesimilartoRusttoensurethatatmostonemutablereferencetoavalueexistsatanypointintime.Inaddition,thelanguageensuresthatglobalstorageisalwaysatreeinsteadofanarbitrarygraph.Thisallowsverificationtoolstomodularizereasoningabouttheeffectsofawriteoperation.
函數式語言的一個基本特性就是Immutability,這使得我們可以在執行函數之前就可以對程序的狀態進行斷言。但是保持純粹的Immutability的話,編寫業務邏輯勢必會十分痛苦。Move這里依然采取了折衷主義的辦法,參考了Rust的實現,保證每個對象在任何階段只有一個可修改的引用,這樣靜態驗證時就只要trace一個目標。
ENS 發起新提案,計劃將過期域名的臨時溢價從 2000 美元提高到 10 萬美元:1月10日消息,以太坊域名項目ENS 現已在Snapshot發起對最新治理提案的投票,計劃將過期域名的臨時溢價起始價格從 2000 美元提高到 10 萬美元,每小時下調150美元,并在28天后降低為0,以防止域名“狙擊”的情況。[2022/1/10 8:37:41]
Modularity
Movemodulesenforcedataabstractionandlocalizecriticaloperationsonresources.TheencapsulationenabledbyamodulecombinedwiththeprotectionsenforcedbytheMovetypesystemensuresthatthepropertiesestablishedforamodule’stypescannotbeviolatedbycodeoutsidethemodule.Weexpectthisdesigntoenableexhaustivefunctionalverificationofimportantmoduleinvariantsbylookingatamoduleinisolationwithoutconsideringitsclients.
https://doc.rust-lang.org/1.30.0/book/first-edition/mutability.html
Module也是函數式語言中的概念,原本的目標是達成接口與實現分離這個目的,從而實現各個模塊分別開發,驗證與編譯。與Class最大的區別在于Class是動態的,而Module是靜態的。
在Move里則是擴展了這個概念的意義,根據白皮書,Move里的智能合約分為兩類:-TransactionScript:一組順序執行的,可以包含Module調用的轉賬語句,通常是一次性的,不在賬本里進行保存。-Module:定義和某個資產相關的操作方法的集合。
換句話說,這個Module才是更接近我們一般認為的智能合約。但是我強烈猜測只有資產的發行方才能夠定義Module到Libra中去,例如Uber可以在Libra中定義一個資產叫優惠券,可以Claim、使用和轉讓,而Spotify可能可以在Libra中定義另一個資產,比如一首曲子或一部專輯,支持訂閱、轉讓、購買和注銷。
而一般的開發者和Startup很可能只能開發一些TransactionScript,來給你的App和網站描述一些功能有限的業務邏輯。所以大概率那25個合作伙伴才是Libra里的一等公民。
靈活性Flexibility
最后Libra的靈活性僅僅只是相對于BitcoinScript而言的,我們一般開發者還是老實一點寫TransactionScript好了。
形式化驗證FormalVerification
如何保證智能合約的正確呢?這跟保證程序的正確性是一樣的問題。只有懂得如何寫出干凈簡單的代碼,進行嚴密的思考,才能寫出正確的智能合約。關于如何寫出干凈,簡單,嚴密可靠的代碼,你可以參考我之前的一些文章。
做智能合約驗證的工作也許能圈到錢,然而卻是非常枯燥而沒有成就感的。為此我拒絕了好幾個有關區塊鏈的合作項目。雖然我對區塊鏈的其它一些想法是感興趣的,我對智能合約的正確性驗證一點都不看好。——垠神,智能合約和形式驗證
Audius、DODO、Livepeer 等應用從 The Graph 托管服務遷移到主網:6月11日消息,區塊鏈數據索引項目 The Graph (GRT)表示,Audius、DODO、Livepeer、mStable、Opyn、PoolTogether、Reflexer 和 UMA 等應用現已完全從 The Graph 的托管服務遷移到主網,成為 The Graph 主網上的 10 個子圖,且均可使用 GRT 來支付網絡使用費。[2021/6/11 23:29:40]
怎么樣,這一套聽下來,是不是很像Tezos?Tezos設計了一種參考了OCmal語法的函數式語言Liquidity來編寫合約。合約又會被首先編譯成一個Stack-based的中間語言Michelson,并使用了一個魔改出來的Mi-Cho-Coq工具,來跑形式化驗證的Framework。
但是形式化驗證真的是解決智能合約安全性問題的銀彈嗎?對此我抱有反對意見。為了安全性問題而在表達性上做犧牲似乎有舍本逐末的嫌疑,而且我認為即便要跑形式化驗證,也可以讓開發者使用一個Solidity語言的子集,姑且稱之為XSolidity來跑——當然我期待著自由市場來打我的臉。
重新審視區塊鏈
Tosaysomethingissomething,butunlikethepreviousversionofthatsomethingbecauseitsdefiningcharacteristicsaredifferent,isabitlikesaying:
“Unlikepreviousloavesofbread,whichviewtheloafofbreadasacollectivelybakedsetofingredients,theLibraLoafofBreadisasingleingredientstructurethatbakesthecomponentssequentiallyovertime.”--Facebook’sLibra:blockchain,butwithouttheblocksorchain-FinancialTimes
越來越多的人開始注意到,Libra事實上既沒有Blocks,也沒有Chain,只是使用了PBFT跑了一個分布式數據庫而已。但是我們知道,實際上比特幣所要面對的,是一個比拜占庭將軍問題更加困難的場景,在比特幣里你實際上是沒有一個GlobalView的。節點可以隨時加入和離開,通訊路徑也是不可靠的,節點必須持續進行發現新節點,和幫助其他節點啟動的工作。每個節點都只包含一部分關于網絡的信息,因而邏輯上更像是一個MeshNetwork,
Libra這樣的數據結構,也能算是區塊鏈嗎?如果按照ConsenSys的說法,大概是會被冠上"LibramightnotbeaRealBlockchainatAll"的帽子的。JamesonLopp也直接在他的文章標題里給Blockchain加了引號。
Blockchain:Ablockchainisareplicatedstatemachine.Replicatorsinthesystemareknownasvalidators.Usersofthesystemsendtransactionstovalidators.Eachvalidatorunderstandshowtoexecuteatransactiontotransitionitsinternalstatemachinefromthecurrentstatetoanewstate.
動態 | KARMA 從 EOS 離開轉到 WAX:近期,KARMA 宣布了它準備從 EOS 遷移到 WAX,因為他們團隊認為主網中仍存在一些問題,無法實現他們的目標。Karma 是 EOS 上第一個啟動的社交網絡應用,自發布以來就一直在推動著創新的,例如,他們創造了一種能為所有用戶支付 RAM 的方式,并且是 EOS 上第一個啟用“ We Pay CPU”的應用程序。讓他們想要離開 EOS 的問題如下:
1、BP 對 EIDOS 狀況和升級缺少溝通和反應
2、帳戶創建的成本(約在 2.8-10.5 元間)
3、CPU /帶寬的成本 -缺乏 WPS 功能
對于這個計劃的實施,所有當前的 KARMA 用戶將使用相同的公鑰和相同數量的 KARMA 代幣創建一個免費的 WAX 帳戶。這樣,用戶的過渡將非常簡單快捷,無需進行重大的更改。切換到 WAX 之后,EOS 上的所有 KARMA 代幣將被凍結,不再被使用。[2019/12/2]
Cryptocurrency:Adigitalcurrencythatusescryptographytoverifyandsecurefinancialtransactions.
但是從上面Libra給Blockchain和Cryptocurrency的定義來看,好像又沒什么問題。所以為什么我們會感覺那么奇怪呢?
作為銀行的天秤座LibraasaBankService
Fbcoinlookslikeethandbtchadababyandswitchedtobftwithappointednodesthattheyclaimwilleventuallybeelecteddposstyle.Theutxomodelandassetfocusedprimitivesislikelytoheavilyrestrictitsapplications.Theconceptofbackingitwithotherassetsmeansitfailswhenthoseassetsfail.Ineffectit’sanewcentralbank.NoteIhaveonlyreadhalfofthewhitepapersoIreservemyrighttochangemyanalysis.——DanielLarimer
《精通比特幣》和《精通以太坊》的作者,AndreasM.Antonopoulos為此事先專門做了一期QA視頻,來解釋為什么自己認為FBCoin不是真正的Crypto。在這期視頻里,AndreasM.Antonopoulos給了Cryptocurrency的五個支柱,它們分別是:
開放Open
公開Public
中立Neutral
無國界Borderless
抗審查CensorshipResistant
抗審查很容易理解,Facebook只是一家YetAnother坐落在硅谷的公司,僅僅是用戶在上面提供內容就會受到各國政府的審查,更別說提供管制更加嚴格的金融服務了。事實上,這份白皮書一出,Facebook立刻遭到了法國議員、美國民主黨議員的口誅筆伐,據說下個月還要開聽證會。基于同樣的原因,FBCoin也無法做到無邊界和中立。向在美國制裁名單上的國家和個人匯款會違反美國的相關法律,因此美國政府一定會要求FBCoin做出KYC的要求,Whoyouare?Whereyouare?Whatareyoudoingwithyourmoney...我們也很難想象FBCoin會提供一個公開透明的賬本,這相當于把每個人每天做了什么完全暴露出來。
最后最重要的,FBCoin不能夠Open,Libraisonlypermissionlessforthosewhoalreadyhavepermission.你當然也不能脫離這個系統之外使用和出售FBCoin,你不能繞過這個平臺提現走人...因此AndreasM.Antonopoulos的結論是FBCoinisanewkindofbank,isnotacryptocurrency.
留精棄粗ChildError
但是FBCoin似乎在白皮書早就預見了你們的這些問題,直接拎出來三段給予正面回應。
Blockchainsaredescribedaseitherpermissionedorpermissionlessinrelationtotheabilitytoparticipateasavalidatornode.Ina“permissionedblockchain,”accessisgrantedtorunavalidatornode.Ina“permissionlessblockchain,”anyonewhomeetsthetechnicalrequirementscanrunavalidatornode.Inthatsense,Librawillstartasapermissionedblockchain.
ToensurethatLibraistrulyopenandalwaysoperatesinthebestinterestofitsusers,ourambitionisfortheLibranetworktobecomepermissionless.Thechallengeisthatasoftodaywedonotbelievethatthereisaprovensolutionthatcandeliverthescale,stability,andsecurityneededtosupportbillionsofpeopleandtransactionsacrosstheglobethroughapermissionlessnetwork.Oneoftheassociation’sdirectiveswillbetoworkwiththecommunitytoresearchandimplementthistransition,whichwillbeginwithinfiveyearsofthepubliclaunchoftheLibraBlockchainandecosystem.
EssentialtothespiritofLibra,inbothitspermissionedandpermissionlessstate,theLibraBlockchainwillbeopentoeveryone:anyconsumer,developer,orbusinesscanusetheLibranetwork,buildproductsontopofit,andaddvaluethroughtheirservices.Openaccessensureslowbarrierstoentryandinnovationandencourageshealthycompetitionthatbenefitsconsumers.Thisisfoundationaltothegoalofbuildingmoreinclusivefinancialoptionsfortheworld.
可以看出,FBCoin很清楚自己就是一個PermissionedBlockchain,但是我們之所以沒有asopenasbitcoin是因為,咳咳,是因為目前technical水平不行
FBCoin在白皮書里標明自己會在五年后,開始從Permissioned向Permissionless去做Migrate。。。Butwait...這實在太不真實了。畢竟我們都看到了,以太坊從PoWmigrate到PoS都花了那么多年,我實在很難想象FBCoin能真正做到這一點。。。
孟巖:開放金融是個大話題。至于Libra,還不是完全達到了,畢竟現在還是個有準入的限制。他們宣布說未來要實現非許可網絡,我挺驚訝的,技術上挑戰很大,能不能兌現承諾難說。——孟巖:扎小哥,你還能再鋒芒畢露一點嗎?丨SheKnows深度解讀Libra白皮書
但是這一點也不妨礙Libra走向公眾,上一篇文章里我們討論正確。Libra看起來是最不正確的了:
Libra是聯盟鏈,但是不妨害她發幣甚至上所——而且還是雙通證。
Libra要做KYC,但是我一上來就開放源代碼,還要成立基金會。
Libra使用非對稱加密有公私鑰,但是所有人都得來用我的錢包,所有私鑰都在我的云端服務器上管理。
這實在太耐人尋味了,FBCoin很清楚自己想要的是什么,整個白皮書通篇都在對BTC和ETH進行批判,按照BM的話說,就像是BTC和ETH生了一個用PBFT的孩子。但FBCoin的世界觀里認為,BTC和ETH就是兩個需要留精棄粗的childerror,按照魯迅的話說,就是要「取其精華、去其糟粕」。但是什么是精華,什么又是糟粕?FBCoin棄掉的糟粕恰恰是原教旨主義者眼中所認為的精華。
而這也正是Libra真正可怕的地方。
開放式金融的邊界
在傳統金融里面,你自己去發行貨幣,是很難形成市場的。但是在開放式金融里面,基本就沒什么門檻,你需要做的就是利用區塊鏈這個技術,然后再利用自己的一些資源如reputation,參與產品的構建。——X-Order創始人TonyTao:數字資產的貨幣化非常重要
最后回到我們開始的話題,討論開放式金融。之前坊間很多文章都會混淆DeFi和OpenFinance,現在Libra一出,估計以后這兩個概念就能夠更清晰的劃分了。
1900年在巴黎舉行的第二屆國際數學家大會上,希爾伯特作了題為《數學問題》的演講,提出了著名的希爾伯特的23個問題。去年的萬向區塊鏈峰會上,吳忌寒也提出了未來十年區塊鏈技術發展的8個課題。
下面是「吳忌寒第5課題——擴展區塊鏈技術應用場景的專門技術」:
過去的ICO泡沫浪潮中,很多項目都涉及到一個基本的邏輯,區塊鏈和現實世界并不交融。區塊鏈的現實交互接口將在區塊鏈第二個十年結束時得到極大發展。
大概有兩個方向:一是現實世界的重壓事件都在區塊鏈上得到忠實記錄,例如食品溯源;二是區塊鏈上的虛擬事件驅動現實世界的物質產生變化,例如去中心化的Airbnb、網約車。——比特大陸吳忌寒:未來十年區塊鏈技術發展的8個課題
現在我們應該能看得更清楚了。Facebook為我們描繪了開放式金融的新邊界。我們回顧Libra的架構,發現這個連接現實與鏈上空間的基礎設施,最后不是什么技術手段,而是Facebook的信用背書。換句話說,就是「利用自己的資源、Reputation、當然還有放在Facebook那兒的儲備金,參與資產的構建」。而這個構建的過程就是用Move去Submit一個Module,里面定義了關于這個資產的各種方法和接口。再讓thirdparty調用這些接口來編寫自己的業務邏輯。
而這個資產的開放程度,實際上是你在設計Module接口的時候決定的。這里面蘊含了非常多想象的空間,比如Lyft和Uber同時定義了優惠券這個資產,誰預留的接口更豐富,第三方發揮創意的空間也就更多。最后可能會倒逼各個商家都加入這種OpenAssets的創建中去,從而形成新的網絡效應。未來這種開放資產是否會支持跨鏈,從而migrate進其他的publicblockchain?我們尚不得知,但是可以預見的是舊世界一定會因此變得更加開放。
10年前,中本聰打開了加密貨幣的潘多拉之盒,在創世區塊中摘抄了當天泰晤士報的標題,「TheTimes03/Jan/2009Chancelloronbrinkofsecondbailoutforbanks」。那個時候,他是否會想象到,在10年后的今天,世界已經發生了如此多的深刻的變化了。
Tags:THEIONLIBRALIBthedinosuarcoinData TransactionLibra IncentixLIBRE幣
關于Gate.ioStartup打折福利計劃為回饋平臺用戶,Gate.io上線“Startup主流項目打折福利計劃”,在Startup區定期上線區塊鏈主流項目的大幅折扣認購.
1900/1/1 0:00:00親愛的社區用戶: FT持倉情況公示頁面將長期公布FCoinFund、FCoinTeam、FCoin平臺、戰略投資者、社委會成員的持倉情況,并于每周五更新持倉變化.
1900/1/1 0:00:00親愛的用戶:?? IDAX將上線BK。開通BK/USDT交易,立即前往。充值開放時間:2019年6月22日08:00(UTC8)交易開放時間:2019年6月28日08:00(UTC8)公鏈LUK.
1900/1/1 0:00:00親愛的KuCoin用戶:為滿足用戶對新技術的需求,KuCoin宣布將支持運行在BinanceChain上的項目.
1900/1/1 0:00:00據CCN消息,加密貨幣交易所Gemini聯合創始人TylerWinklevoss提醒加密粉絲,五年前,他和哥哥用比特幣支付億萬富翁RichardBranson的維珍銀河太空船2號的旅行費用.
1900/1/1 0:00:00親愛的用戶: 比特國際數字資產平臺創投區即將上線FDS,開放FDS/USDT交易對。 FDS項目介紹 FDS是未來將基于BNB公鏈發布的全新ISO平臺,目前已經包括在線游戲,區塊鏈菠菜等成熟落地.
1900/1/1 0:00:00