banner
leaf

leaf

It is better to manage the army than to manage the people. And the enemy.
follow
substack
tg_channel

加密業務模型和防禦能力

加密業務模型和防禦能力
提出者
安德烈森・霍洛維茨・阿里・葉海亞

此內容僅供參考,不應作為法律、業務、投資或稅務建議。

關於那些事情,你應該諮詢你自己的顧問。對任何證券、數字資產、代幣和 / 或加密貨幣的引用僅用於說明目的,並不構成對任何此類工具的投資建議,也不構成提供投資諮詢服務的要約。此外,本內容不針對任何投資者或潛在投資者,也不打算由任何投資者或潛在投資者使用,並且在決定投資 a16z 管理的任何基金時,在任何情況下都不得依賴本內容。(投資 a16z 基金的要約只能通過私募備忘錄、認購協議和任何此類基金的其他相關文件進行,並應完整閱讀。)提及、提及或描述的任何投資或投資組合公司並不代表ā16z 管理的投資工具的所有投資,也不能保證這些投資是盈利的,也不能保證將來進行的其他投資會有類似的特徵或結果。安德烈森・霍洛維茨基金管理的基金的投資清單(不包括發行人未允許 16z 公開披露的投資,以及對公開交易的數字資產的未公布投資)可在 https:/al6z.com/investments/, 獲得

image

image

image

image

image

image

image

籌資和交易結構:加密創業的考慮因素

image

image

image

image

image

這篇文章給大家造成很大的困擾,是因為大家都知道以太坊和 Hyperledger 當前都是基於賬戶模型的,沒有任何 UXTO 的概念。而作者在文章中指出 Hyperledger 已切換到 UTXO,以太坊也在考慮增加,究竟是怎麼回事。

首先說 Hyperledger fabric,fabric 裡連代幣都沒有(比特幣裡有比特幣,以太坊裡有以太幣),說什麼 UTXO 就沒頭沒腦了。遍查 fabric1.0 的整個代碼,只在 chaincode example 裡找到一些關於 UTXO 的內容,那只是用 chaincode 實現對比特幣 UTXO 的一個存儲功能,而且只是個智能合約的示例。

那作者為什麼說 fabric 已經切換到 UTXO 了呢?遍查網絡,的確發現了相關的內容。一篇是 ConsenSys 的文章,開頭第一句話就是:Recently there has been a proposal to have UTXO based architecture as the fabric of the Hyperledger project.(網址:https://medium.com/@ConsenSys/thoughts-on-utxo-by-vitalik-buterin-2bb782c67e53#.sttqvpfqe)。

另一篇是數字資產公司(Digital Asset Holdings)的文章,裡面說到:We are also switching from our simplistic notion of accounts and balances to adopt to de facto standard of the Bitcoin UTXO model, lightly modified.(網址:https://digitalasset.com/press/hyperledger-beta-retired.html)

這些似乎印證了作者的觀點。但實際不然,因為這兩篇文章都是時間比較老(2016 年 3 月份),在那個時間點的確有那樣的建議和討論。並且很顯然當前代碼裡沒有任何 UTXO,所有的代碼和工作模式仍然是賬戶模型。我們在網絡上繼續尋找,在 Reddit 的帖子上找到了關於這方面的討論:Both Vitalik and ConsenSys do indeed believe that UTXO is unnecessarily complicated to serve as the Hyperledger fabric.

所以結論是:fabric 的 UTXO 只是曾經的討論,目前並沒有在 fabric 1.0 中實現。而且以後如果要增加的話首先得為 fabric 引進自己的代幣。我個人的觀點認為,fabric 為商用智能合約系統設計,基於賬戶模型更加合適。

下面我們說以太坊的 UTXO。以太坊的確是在考慮引進 UTXO,但是此 UTXO 非彼 UTXO。並不是像大家想象的那樣,用 UTXO 來替換現有的賬戶模型。首先以太坊為智能合約而設計,其賬戶模型裡除了有餘額(balance),還有智能合約代碼,還有 nonce(為防止重放攻擊),以及自定義的存儲。把這些換成 UTXO 顯然不合適,因為 UTXO 勝任不了。比特幣的 UTXO 裡只有一個簡單的屬性:餘額(balance)。

那麼以太坊的 UTXO 是指什麼呢?這就是以太坊的另一個話題了:分片(Sharding)。分片是擴展以太坊、增加 TPS 的有效方法,目前正在社區裡被廣泛討論和研究。目前的以太坊的工作模式是所有節點(比如共 16 萬個)同時驗證所有交易,實際上這是極度低效和沒有必要的一種模式。為了保證一致性,如果我們按照地址的前 4 位來分片,可以把所有地址分成 16 片。這樣每個交易只需要其中 1 萬台節點驗證便可通過。如果一個交易涉及的賬戶都在同一片區並沒有什麼問題,但如果涉及到不同片區問題就來了。

為了解決不同片區之間的交易問題,以太坊設計出了稱為收據(receipt)的工作模式。而這個收據的模式和 UTXO 類似,故而也稱為以太坊的 UTXO。

既然此 UTXO 並不是指替換當前賬戶模型,變成比特幣模式的 UTXO,那麼是不是說明當前賬戶模型就沒有問題呢?也不是!當前賬戶模型的確存在一些弊端。

以太坊中以太幣的轉移安全性不如比特幣高。下面是一個真實的例子。一個網友請我幫忙,讓我幫助從 Yobit.net 追討 258 個 ETH。原因是他從 Yobit.net 轉移幣到雲幣網賬戶時,發生了 out of gas 錯誤。雲幣網給出的目標地址是一個合約地址,而 Yobit.net 以為是個外部地址,交易設置的 gasLimit 為 21000(這對於合約賬戶就不夠了),因此發生了 out of gas 的異常。幣的轉移被取消,但是這個交易(Transaction)卻是完成的。

所以結論是:fabric 的 UTXO 只是曾經的討論,目前並沒有在 fabric 1.0 中實現。而且以後如果要增加的話首先得為 fabric 引進自己的代幣。我個人的觀點認為,fabric 為商用智能合約系統設計,基於賬戶模型更加合適。

下面我們說以太坊的 UTXO。以太坊的確是在考慮引進 UTXO,但是此 UTXO 非彼 UTXO。並不是像大家想象的那樣,用 UTXO 來替換現有的賬戶模型。首先以太坊為智能合約而設計,其賬戶模型裡除了有餘額(balance),還有智能合約代碼,還有 nonce(為防止重放攻擊),以及自定義的存儲。把這些換成 UTXO 顯然不合適,因為 UTXO 勝任不了。比特幣的 UTXO 裡只有一個簡單的屬性:餘額(balance)。

那麼以太坊的 UTXO 是指什麼呢?這就是以太坊的另一個話題了:分片(Sharding)。分片是擴展以太坊、增加 TPS 的有效方法,目前正在社區裡被廣泛討論和研究。目前的以太坊的工作模式是所有節點(比如共 16 萬個)同時驗證所有交易,實際上這是極度低效和沒有必要的一種模式。為了保證一致性,如果我們按照地址的前 4 位來分片,可以把所有地址分成 16 片。這樣每個交易只需要其中 1 萬台節點驗證便可通過。如果一個交易涉及的賬戶都在同一片區並沒有什麼問題,但如果涉及到不同片區問題就來了。

為了解決不同片區之間的交易問題,以太坊設計出了稱為收據(receipt)的工作模式。而這個收據的模式和 UTXO 類似,故而也稱為以太坊的 UTXO。

既然此 UTXO 並不是指替換當前賬戶模型,變成比特幣模式的 UTXO,那麼是不是說明當前賬戶模型就沒有問題呢?也不是!當前賬戶模型的確存在一些弊端。

以太坊中以太幣的轉移安全性不如比特幣高。下面是一個真實的例子。一個網友請我幫忙,讓我幫助從 Yobit.net 追討 258 個 ETH。原因是他從 Yobit.net 轉移幣到雲幣網賬戶時,發生了 out of gas 錯誤。雲幣網給出的目標地址是一個合約地址,而 Yobit.net 以為是個外部地址,交易設置的 gasLimit 為 21000(這對於合約賬戶就不夠了),因此發生了 out of gas 的異常。幣的轉移被取消,但是這個交易(Transaction)卻是完成的。

image

基本判斷:

首先,你要對當前的情況有個基本的判斷。當前(2017 年 3 月)是處於數字貨幣牛市的起步 + 前期階段,這就是基本的判斷,也是你進入市場的前提,如果這個結論被推翻,那麼你就不應該參與進來。

準備活動:

當你要進入一個市場前,要有一定的準備活動,如果你不能滿足以下的條件,請你立即離開:

一筆沒有期限和壓力的資金(如果有期限,至少是 5 年以上,即這筆錢投入市場在很長的一段時間內你不需要拿出去);

0 槓桿(經過前期整頓,目前數字貨幣交易所大部分都是 0 槓桿的);

長線持有,買賣只做一次(或者叫一段時間內建倉,一段時間內清倉)。

你做了這些準備活動,那麼下面一個問題是,該買什麼?

牛市來臨時,基本上所有數字貨幣都會漲,即使是一些特別垃圾的。現在有十幾種知名貨幣,還有上百種的二代幣、山寨幣。選擇哪些品種成為投資的關鍵,筆者認為只能投資以下品種:

注意:以下是筆者的觀點,不作為任何投資建議,任何看了此篇文章而進行相關投資的人,應該清楚任何風險和後果自負,筆者不會得到 1 分錢好處,只是進行技術和觀點分享。

1、比特幣(bitcoin)

比特幣是區塊鏈概念的發源地,也建立了最為廣泛的信任。當前的比特幣價格在場外 9000 元,場內 8000 元左右。筆者認為其合理價格應該在 3 萬左右。現在越來越多的觀點認為比特幣將進一步建立信任,成為數字黃金。支持該類觀點的人已經越來越多,其中也不乏大名鼎鼎的以太坊創始人:Vitalik(他的中文說得特別好)。

目前比特幣的總市值約是黃金總市值的 0.3%(黃金總市值 8 萬億美金,比特幣目前 125 億美金),從這個角度,比特幣還有廣闊的上漲空間。

目前影響比特幣價格進一步走高的主要是兩個問題:

內因:比特幣的擴容問題。比特幣的網絡已經超負荷運行了幾年,而擴容問題遲遲得不到解決,比特幣的支付需要高額手續費,且確認速度緩慢已成為影響其正常功能的重大問題。在擴容問題上 bitcoin core 的隔離見證方案和 bitcoin unlimited 的提升區塊限制的方案遲遲不能達成一致,且有一定的分裂風險。筆者傾向於支持隔離見證,在此也期望和呼籲各方能以社區整體利益為重,早日達成一致!如果隔離見證成功激活,比特幣價格將迎來一波上漲!

外因:政策打壓和交易所限制提幣。這點就不想多說了,政策問題在很長一段時間內都是影響幣價的主要因素之一。

2、以太坊(ETH)

以太坊的上漲沒有太多懸念。早在去年 12 月份的視頻中預言過數字貨幣的牛市將以 eth 的上漲作為代表,並在 70 元左右的時候多次呼籲大家建倉 ETH,因為其價值被大大低估。未來 ETH 將毫無疑問成為千億市值的平台(呼籲大家時市值才到百億,而經過最近這輪上漲,市值已達 200 億)。

ETH 天生沒有政策的困擾,這是它的優勢。目前來說影響 ETH 幣價的因數多為積極因素,如:

企業版以太坊聯盟的成立

ENS(以太坊域名系統)的上線

PoS 的預期

說到以太坊,很多人會問 ETC,我也多次說過我的觀點,建議大家趁高清倉 ETC。個人完全不支持 ETC,認為其將逐漸衰亡,或淪為普通的二代幣。

個人覺得 ETH 的合理價格應該 500-1000 之間。

3、ZEC(Zcash)

相對於比特幣和以太坊,Z 幣的風險會更大一些,其價值的體現也將需要更長的時間。但從長遠來看其匿名的價值將是人類普遍追求的價值之一。當前來看,其缺點也很明顯:

更加政府不友好;

技術尚不成熟,客戶端支持較少,需要大內存,CPU,發送匿名交易需要近 1 分鐘;

可能隱藏的 bug 和增發無從發現的問題;

儘管如此,筆者在幣價 260 左右的時候呼籲過大家建倉,並看高價格至 3000 元,但需要更長時間(也許是 5 年以上)。

以上幣種的選擇也是被普遍認可的選擇。實際上,大家認為比特幣才是核心。只有為了解決比特幣不能解決的問題而產生的新幣才有生命力。比如,以太坊解決了比特幣不能發布數字資產、寫智能合約的問題;Z 幣解決比特幣隱私的問題。

如果你用長遠的眼光看,你就知道不管是比特幣、ETH 和 Z 幣,現在都是買點,儘管它們已經距離底部上漲了很多倍。有的人想尋找黑馬,想找到百倍甚至是千倍利潤空間的幣。我的觀點是它是有的,但是被找到是極其難的。它應該符合以下的特徵:

它有功能性的創新,解決了某個問題,或者引領未來的一種新的方式;

它的發明者或團隊不被關注,因為只有這樣它的初始價格才能很低;

如果你找到了,也麻煩通知筆者一聲:)

最後,所有數字貨幣的投資,應該都轉移至自己的本地錢包保存,並做好全面的安全備份。

說到區塊鏈的企業級應用,大家首先想到是 IBM 主導的 hyperledger fabric 項目和有微軟、intel、摩根等大企業參與的企業以太坊(Enterprise Ethererum)項目。

企業以太坊聯盟剛剛成立,其產品發布還待時日。hyperledger fabric 1.0 alpha 則已經發布。我有幸參與了國內最早一批應用 hyperledger 進行企業級區塊鏈的設計和開發。不幸的是,我覺得它不好,非常的不好。我們似乎走在了一條錯誤的道路上,fabric 的設計者也似乎走在了一條錯誤的道路上。

問題一:不區分應用系統和區塊鏈系統

fabric 的設計沒有區分應用系統和區塊鏈系統。fabric 試圖在引導大家將應用系統區塊鏈化,將原先可簡單解決的問題複雜化。例如一個供應鏈系統,我們稱之為應用系統,它已經存在,在區塊鏈技術被應用之前已經大規模存在。我們現在來改造它,或者重新設計,讓其具有區塊鏈的特性。fabric 給我們的方案會引導我們將大部分業務邏輯放進 chaincode,使得整個系統變成一個區塊鏈系統。這是非常錯誤的,原因有三:

區塊鏈的運行效率很低;

區塊鏈的存儲消耗高,查詢效果很差(儘管 fabric 1.0 支持結構化查詢,如:CouchDB,但相比傳統的,如:mysql,其效率低一個數量級);

系統過於複雜,且沒有必要。

問題二:endorsement 的設計似是而非

fabric 1.0 的 endorsement policy 的設計只在理論上工作,實際情況下運行效果很差。例如,一個供應鏈區塊鏈系統涉及到 3 家企業,我們分別部署 1 個 peer(同時是 endorse peer 和 commit peer)在各自的機房(或雲系統),我們的 policy 定義為必須同時獲得這 3 個 peer 的 endorsement。當一個交易發生時,我們的請求需要通過網絡穿越公網進入各自的機房(或雲系統),然後和各個 peer 進行交互,獲取 endorsement。而這其中的延遲非常不確定,可能很大,會導致各種交易失敗的情況發生。

問題三:channel 的設計讓人又愛又恨

fabric 1.0 中的 channel 設計似乎是一個很棒的功能,可以讓不同企業間的商業隱私得到極大的保護。但是它卻是不完整的,或者很難使用的。因為不同 channel 間不能交互,很多數據需要在多個不同的 channel 間共享,我們要麼將冗餘數據寫入不同的 channel,要麼將系統設計成顆粒度很細,讓不同的 peer 加入到多個 channel 中。無論何種方式都是在將簡單問題複雜化。讓系統變得更加複雜,和更加容易出錯。

問題四:用 docker 執行 chaincode 設計粗糙

沒有像以太坊裡設計有 EVM,而只是用 docker 來執行 chaincode,其設計相當粗糙,而且會有很多運行過程中發生的問題。這點非常易於理解,不用多說。

以上說得都是 fabric 設計中的問題,那麼如果用 enteth 會不會就沒有問題了呢?很顯然,我偏愛以太坊。企業級以太坊(enteth)會很大程度上解決以上的問題。但是並不全部,而且不能解決的是一個核心問題:我們為什麼要用區塊鏈?

區塊鏈唯一的作用,是為了解決信任問題。提供一個防篡改、無抵賴、公開透明(這點在企業應用中不一定適用)的交易和商業環境。

在我們的供應鏈例子中涉及到三家企業 A、B、C。不管是 fabric 的方案還是 enteth 的方案,只能在 ABC 之間保證數據一致性。但是現在 A 篡改了數據,BC 因為手上有所有數據的副本,可以輕鬆地證明 A 的篡改行為。這時 A 請來了黑客,攻入了 BC 系統,將 BC 系統裡的數據副本也一並篡改。攻入 BC 系統的難度遠遠小於劫持公有鏈中(如以太坊)51% 的算力的難度。

實際上,在現實的商業環境中,很多系統都是由強一方提供,如 A,幫助 BC 部署其區塊鏈系統。在這樣的環境中區塊鏈的防篡改特性難以生效。

另外,基於 fabric 或 enteth 的區塊鏈方案在部署和運行時也存在諸多問題。一般很難有多家企業共同開發一款區塊鏈系統,通常由其中一家企業或者某個第三方軟件公司提供。因為缺乏相應的知識,相關企業很容易被軟件提供商留下後門,這點讓區塊鏈不可篡改的特性得不到安全的保障。

介於以上問題,筆者認為,基於共有鏈(如以太坊)的企業級應用解決方案將是未來的一個方向

(至少是個必要的補充)!

設計思路:

將企業級區塊鏈應用中,需要用到區塊鏈的地方抽離出來,邏輯上分成應用系統和區塊鏈系統,而用公有鏈(如以太坊)實現其區塊鏈功能。

這樣設計的優點有很多,如:

應用系統、區塊鏈系統分離,最大程度復用原有系統的功能和特性;

利用公有區塊鏈的網絡安全強大、不可篡改等特性保證區塊鏈功能;

設計簡單、費用極低;

公有鏈解決企業問題,也將面臨很多挑戰,主要的挑戰有如下幾點:

挑戰一:企業級應用的隱私問題

企業級應用涉及到商業、用戶數據,系統需要大量的保密安全措施,不可公開泄漏到網絡上,解決這一問題有 2 個可選方案:

加密,只將加密數據存在在公有網絡上;

兩級分離,只將頭部信息,數據 hash 值存儲在公有網絡上,將真實數據存儲在安全的企業環境中。

挑戰二:公有鏈網絡費用的問題

使用公有網絡,如以太坊存儲企業區塊鏈,將面臨著較高的網絡費用,尤其涉及到大量存儲時。解決的方案有 2 個:

只存儲企業區塊鏈的頭部信息(類似於比特幣的 SPV),將區塊內容放在非常便宜的企業數據環境中;

剪裁功能,對於歷史無用數據可以實施備份存儲和剪裁。

下面筆者給出兩個方案建議:

方案一:基於以太坊的企業應用解決方案

在以太坊智能合約中維護企業區塊鏈的頭部信息; -〉網絡安全、防篡改

企業區塊鏈區塊內容放在二級存儲(安全的企業存儲環境中);-〉企業信息隱私保護,省錢

對於歷史頭信息進行剪裁;-〉省錢

關聯以太坊地址和企業身份;-〉不可抵賴

方案二:基於字節雪球(byteball)的企業應用解決方案

用字節雪球的存儲功能,形成企業區塊鏈;-〉網絡安全、防篡改;

對於敏感信息加密存儲,安全級別較高的放在二級存儲;-〉隱私保護;

關聯雪球地址和企業身份;-〉不可抵賴

雪球費用相對較低,存儲空間大,未來將是以太坊方案的一個很好補充,也可和以太坊方案結合使用;

以上方案是筆者根據其經驗和知識的總結和思考。我相信已經走在了絕大多數人的前面。也歡迎有興趣的企業聯繫,嘗試實現以上方案,以作為這塊領域的實踐探索!

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。