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