你們許多人可能已經質疑了區塊鏈的總體有效性,特別是以太坊的有效性。你們一些人可能在好奇心中走得更遠,遇到了許多奇特的特性,例如分散、透明、沒有中介的信任和黑客抵抗。這很了不起,不是嗎?的確如此,但是……
?
在目前的狀態下,區塊鏈完全適合于完成范圍狹窄的任務,除非您考慮將“添加一些納米技術以達到wow效果”——實際上,您可以調整幾乎任何東西來與此目標保持一致。當然,首先需要做一些事情,通過各種各樣的實驗來幫助理解潛在的需求,并顯示需求可能在哪里,一個意想不到的死胡同在哪里,以及缺陷在哪里。但是,您確實需要了解這些邊界,以便做出明智的決定,并在特定場景中嘗試并跳過它們是否合理。
順便說一句,以太坊不是有史以來最好的選項。也許,區塊鏈是實現目標的正確工具,盡管它是一種不同類型的區塊鏈。然而,我們將在本文中進一步提到“區塊鏈”時聯系“以太坊”。
讓我們嘗試概述一下區塊鏈和智能合約的特性,它們使解決表面上有希望的任務的過程變得無效或完全不可能。我想從一開始就指出,下面的特性是一般化的,因此對于特定的用例,仍然有相當可行的解決方案。因此,您應該將此列表視為在開始項目之前需要考慮的以太坊弱點的一個集合。
1、高進入壁壘
如果你的受眾是普通用戶而不是區塊鏈的狂熱者,那么很少有人會費心給你的解決方案一個機會。想想看,他們不僅需要安裝帶有節點的MetaMaskor Mist,而且還需要購買以太幣,這對初學者來說是一個很重要的過程。因此,如果你想要覆蓋最多的受眾,那么目前為止以太坊不是一個正確的選擇。例如,僅僅基于智能合約創建在線商店可能不是一個好主意。
措施:
? 提供的優勢要超過劣勢。
? 目標受眾在該主題上具有一定的專業知識。
? 通過將區塊鏈邏輯移到后端,混淆用戶的區塊鏈邏輯是有意義的。
2、分散集中
無論你如何劃分,區塊鏈都是非常棒的,因為即使參與者彼此不信任,它也能工作。然而,只有當用戶是其私鑰的唯一所有者時,這個標志才成立。這是簽署事務和從它們的地址做其他事情的主要先決條件。如果區塊鏈邏輯位于后端會發生什么?密鑰以集中的方式使用,并且沒有機制來避免用戶不認可的事務。因此,剩下要做的就是希望服務器足夠安全并得到適當的維護。
措施:
? 了解是否需要透明性和不可變性,或者是否需要操縱加密貨幣。如果不這樣做,那么使用常規數據庫會更經濟、更方便。
? 詳細說明您的操作機制,以便技術保證到位。
3、所有數據都是公開的
不管智能合約是如何編寫的,如果需要,相關方可以檢索其中任何數據字段的值。事務歷史也是如此。因此,如果您記錄并保留關于用戶的任何個人身份信息,比如他們的電子郵件地址和姓名,那么這些用戶所做的一切都是公開可訪問的。因此,您可能不得不在此基礎上進行某種類型的加密。如果是這樣,它的密鑰必須存儲在接收者的終端,這意味著用戶必須再次信任第三方提供他們的個人數據。使用普通的私有存儲來保存或多或少有些敏感的信息可能是一個更好的主意。如果你打算簽訂基于區塊鏈的合約,那么你的損失可能大于收益。
措施:
? 了解您的智能合約邏輯是否需要用戶的個人數據。如果有,考慮使用散列而不是適當的數據。
4、區塊鏈不是一臺超級計算機
有些人可能會認為,礦工利用巨大的處理能力可以進行良性計算,但這是一種誤解。恕我直言:以太坊的生產力類似于嵌入式系統的生產力,因為它涉及有限的資源、有限的內存和有限的“固件”(合約字節碼)大小。因此,應該將最大限度的非臨界計算移出鏈。這就是為什么在智能合約或加密貨幣之類的東西中執行復雜數據分析很難實現的原因。
措施:
? 任何類型的計算都不要使用區塊鏈。
? 如果需要進行與區塊鏈相關的計算,請考慮利用Oraclize的計算特性
5、區塊鏈不是一個通用存儲
一些人認為區塊鏈可以用來存儲信息或文檔。在這方面需要注意的是:首先,以這種方式存儲數據是昂貴的;其次,區塊鏈不適合像搜索這樣的東西——您要么需要有鍵值映射,這會給每個條目增加額外的成本,或者您必須手動查找感興趣的信息。但是,沒有權限管理。因此,用區塊鏈替換傳統的數據庫沒有多大意義,除非您確切地知道為什么需要它。當涉及到存儲特定文件時,請記住公共可訪問性方面:例如,如果您存儲一個IPFS鏈接,每個人都會看到它,并可以下載您保存在那里的所有內容。長話短說,如果你打算在區塊鏈上存儲個人照片,請三思。
措施:
? 您最好簡單地存儲一個哈希值,以驗證所有存儲在鏈外的內容。
? 只存儲智能合約工作邏輯所需的數據。
6、將區塊鏈與現實世界綁定
區塊鏈本身可以很容易地發送代幣,但如何發送你為他們購買的東西?即使它是一個文件,您如何驗證發送它而不涉及第三方的事實?這里有一個快速的答案:這并不容易,因為我們假設雙方都想欺騙對方,所以我們需要一些驗證以及加密和解密的實例。如果有爭議,你就不能沒有非鏈式計算或裁判。
很明顯,對于實物商品或服務來說,整個過程將變得更加復雜,因為需要輸入一些信息,粗略地說,這些商品已經被接收了。這個人不能是利益相關方,這意味著他或她是我們應該信任的第三方。在這種情況下,我們的區塊鏈解決方案在這個裁判的形式下有一個薄弱環節。而且,假設我們相信那個人,為什么不把其他的事情都托付給他或她呢,例如,托管一個常規的數據庫并進行支付?這是你在開始區塊鏈計劃之前應該問自己的一個基本問題。舉個例子,我真的不明白在線下商店里,你提供一個代幣來換取折扣有什么用。
措施:
? 給自己一個明確的答案,為什么集中式邏輯不適合。如果你做不到,那就放棄你的區塊鏈想法。
7、總有人為失誤的時候
如果你不小心把錢轉錯了人,或者你的銀行賬戶被黑了,你可以提交一個技術支持票,然后有一段時間取消或回滾交易。有了智能合約,您就不能手工做代碼中沒有涉及到的事情。這再次讓我們意識到,有必要聘請一名裁判,他將擁有巨大的特權,使整個解決方案幾乎集中起來。
措施:
在適當的情況下,智能合約可以延遲資金轉移。
8、交易需要時間
如果您有一個動態系統,其特性是永久地改變狀態和邏輯,那么等待時間很可能會讓您不滿意。例如,在以太坊中,正常的事務驗證時間是半分鐘甚至更長。即使您的解決方案不需要額外的幾秒鐘,您仍然應該考慮不確定事務超時的可能性,并定義足夠的時間間隔。因此,到目前為止,像撲克這樣的游戲要么完全不可能在以太坊智能合約的基礎上進行創造,要么它們非常原始,需要強調離線邏輯。
措施:
? 如果您打算頻繁地查詢區塊鏈,那么以太坊可能不適合您,并且您可能不應該將您的愿景僅限于區塊鏈。
? 如果可能,將多個事務合并為一個事務,執行邏輯鏈外的部分。
? 在最壞的情況下,你可以在適當的時候提高費用 (執行一個操作的費用)。
? 如果一個事務需要很長時間才能完成,您可以指定更高的價格并重新提交它。
? 到目前為止,審查規避還不完美
如果您打算使用區塊鏈來抵制政府或類似的東西,請記住web服務仍然是一個集中的實體,即使它是基于區塊鏈的。換句話說,域名或IP地址仍然很容易阻塞,用戶必須知道鏡像地址或找到VPN服務。這樣做的好處是您不必進行數據庫備份,而且通過了解以太坊網絡中的地址,您可以通過不太用戶友好的技術獲得訪問權限,比如mist、MyEtherWallet、Etherscan等。然而,審查制度仍是一個問題。
措施:
? 抗阻塞能力無疑是一個好處,但是您不應該僅僅基于這個事實就決定使用區塊鏈。
有什么替代方案?
有很多。其他區塊鏈和非區塊鏈解決方案可以犧牲其分散性、開放性或無限制的用戶受眾,以換取更高的事務速度、可靠的隱私保護等。這些例子包括EOS、Hyperledger、Exonum、Hashgraph、Corda等的解決方案。不過,一個流行的品牌名稱仍然是一個重要因素。它意味著擁有龐大的用戶群,大量的應用程序,數據管理和開發工具,以及嚴謹的測試機制。
有那么糟糕嗎?
貫穿上述所有觀點的根本問題是,除了區塊鏈,什么都不選。這項技術應該能解決這個問題。將區塊鏈集成到已經解決的任務中不太可能使解決方案更加有效。例如,如果你是賭博業的新玩家,想要開一家賭場,那么你最關心的就是贏得聲譽,展示正直,吸引用戶群。通過提供一個基于區塊鏈的解決方案,你至少可以在理論上保證客戶的透明度,盡管很少有人會在他們開始玩之前審計你的聰明合約。通過這種方式,您還可以吸引那些手頭有備用加密貨幣資產和大量使用該資產的人。在某種程度上,你的目標實現了。
另一方面,如果您打算在信使r的架構中添加區塊鏈,那么您可能無法解決任何問題,比如審查和隱私風險。相反,你會得到新的問題。
當用戶數量增長,購買加密貨幣變得比現在更容易的時候,找到更好的用例可能是不久的事情。但是,一般來說,考慮以下應用程序域是有意義的:
? 官僚主義的和耗時的過程,如匯款到國外和繁瑣的文書工作。
? 基于平臺信任的流程,包括慈善基金和賭場。
? 管理在不同領域或不相關的公司使用的數據:旅游經營者,貸款歷史,和各種黑名單。
? 控制本質上不可信的過程,比如投票和籌款。
這不一定意味著區塊鏈能夠完美地融入其中。您應該始終掌握其他更優化的技術。你的思路應該集中在解決一個特定的問題上,而不是就簡單將區塊鏈嵌入到你的活動中。
評論