為什麼要用區塊鏈技術實現智能合約?
智能合約貌似就是一段腳本,可以被準確執行。這用傳統的技術也能實現,為什麼一定要用區塊鏈技術呢?
個人的理解,區塊鏈的特點有兩個1.數據不能修改、刪除,只能查看和增加。2.去中心化。避免了中心化的「人」因素。關於特點1,傳統技術通過軟體做限制,可以實現。特點2,信用好的機構做擔保,保證特點1不會被修改。就是保證數據不被修改和刪除(或者可以把數據公開,如果被修改了,大家都能發現)意思相當於:區塊鏈=傳統技術+機構信用擔保當然,在一些事情上,很難保證「人」不作惡。不過在大部分的事情上(或者說不大的事情上),「人」的信用還是值得相信的,畢竟日常很多事情都是基於「人」的信用進行的(比如,中小事情)。因此,在不大的事情上,是不是可以用:傳統技術+機構信用擔保,來實現區塊鏈要做的事情呢?
智能合約與區塊鏈的關係
尼克?薩博關於智能合約的工作理論遲遲沒有實現,一個重要原因是因為缺乏能夠支持可編程合約的數字系統和技術。區塊鏈技術的出現解決了該問題,不僅可以支持可編程合約,而且具有去中心化、不可篡改、過程透明可追蹤等優點,天然適合於智能合約。因此,也可以說,智能合約是區塊鏈技術的特性之一。
如果說區塊鏈1.0是以比特幣為代表,解決了貨幣和支付手段的去中心化問題,那麼區塊鏈2.0就是更宏觀的對整個市場去中心化,利用區塊鏈技術來轉換許多不同的數字資產而不僅僅是比特幣,通過轉讓來創建不同資產的價值。區塊鏈技術的去中心化賬本功能可以被用來創建、確認、轉移各種不同類型的資產及合約。幾乎所有類型的金融交易都可以被改造成在區塊鏈上使用,包括股票、私募股權、眾籌、債券和其他類型的金融衍生品如期貨、期權等。
智能合約看上去就是一段計算機執行程序,滿足可準確自動執行即可,那麼為什麼用傳統的技術為何很難實現,而需要區塊鏈技術等新技術呢?傳統技術即使通過軟體限制、性能優化等方法,也無法同時實現區塊鏈的特性:1是數據無法刪除、修改,只能新增,保證了歷史的可追溯,同時作惡的成本將很高,因為其作惡行為將被永遠記錄;2是去中心化,避免了中心化因素的影響。
基於區塊鏈技術的智能合約不僅可以發揮智能合約在成本效率方面的優勢,而且可以避免惡意行為對合約正常執行的干擾。將智能合約以數字化的形式寫入區塊鏈中,由區塊鏈技術的特性保障存儲、讀取、執行整個過程透明可跟蹤、不可攥改。同時,由區塊鏈自帶的共識演算法構建出一套狀態機系統,使得智能合約能夠高效地運行。
智能合約工作原理基於區塊鏈的智能合約包括事務處理和保存的機制,以及一個完備的狀態機,用於接受和處理各種智能合約;並且事務的保存和狀態處理都在區塊鏈上完成。事務主要包含需要發送的數據;而事件則是對這些數據的描述信息。事務及事件信息傳入智能合約後,合約資源集合中的資源狀態會被更新,進而觸發智能合約進行狀態機判斷。如果自動狀態機中某個或某幾個動作的觸發條件滿足,則由狀態機根據預設信息選擇合約動作自動執行。
智能合約系統根據事件描述信息中包含的觸發條件,當觸發條件滿足時,從智能合約自動發出預設的數據資源,以及包括觸發條件的事件;整個智能合約系統的核心就在於智能合約以事務和事件的方式經過智能合約模塊的處理,出去還是一組事務和事件;智能合約只是一個事務處理模塊和狀態機構成的系統,它不產生智能合約,也不會修改智能合約;它的存在只是為了讓一組複雜的、帶有觸發條件的數字化承諾能夠按照參與者的意志,正確執行。
基於區塊鏈的智能合約構建及執行分為如下幾步:
1、多方用戶共同參與制定一份智能合約;
2、合約通過P2P網路擴散並存入區塊鏈;
3、區塊鏈構建的智能合約自動執行。
下面詳細描述步驟1「多方用戶共同參與制定一份智能合約」的過程,包括如下步驟:
(1)首先用戶必須先註冊成為區塊鏈的用戶,區塊鏈返回給用戶一對公鑰和私鑰;公鑰做為用戶在區塊鏈上的賬戶地址,私鑰做為操作該賬戶的唯一鑰匙。
(2)兩個以兩個以上的用戶根據需要,共同商定了一份承諾,承諾中包含了雙方的權利和義務;這些權利和義務以電子化的方式,編程機器語言;參與者分別用各自私鑰進行簽名;以確保合約的有效性。
(3)簽名後的智能合約,將會根據其中的承諾內容,傳入區塊鏈網路中。
下面詳細描述步驟2「合約通過P2P網路擴散並存入區塊鏈」的過程,包括如下步驟:
(1)合約通過P2P的方式在區塊鏈全網中擴散,每個節點都會收到一份;區塊鏈中的驗證節點會將收到的合約先保存到內存中,等待新一輪的共識時間,觸發對該份合約的共識和處理。
(2)共識時間到了,驗證節點會把最近一段時間內保存的所有合約,一起打包成一個合約集合(set),並算出這個合約集合的Hash值,最後將這個合約集合的Hash值組裝成一個區塊結構,擴散到全網;其它驗證節點收到這個區塊結構後,會把裡面包含的合約集合的Hash取出來,與自己保存的合約集合進行比較;同時發送一份自己認可的合約集合給其它的驗證節點;通過這種多輪的發送和比較;所有的驗證節點最終在規定的時間內對最新的合約集合達成一致。
(3)最新達成的合約集合會以區塊的形式擴散到全網,如下圖所示,每個區塊包含以下信息:當前區塊的Hash值、前一區塊的Hash值、達成共識時的時間戳、以及其它描述信息;同時區塊鏈最重要的信息是帶有一組已經達成共識的合約集;收到合約集的節點,都會對每條合約進行驗證,驗證通過的合約才回最終寫入區塊鏈中,驗證的內容主要是合約參與者的私鑰簽名是否與賬戶匹配。
圖2 合約區塊鏈示意圖
下面是步驟3「區塊鏈構建的智能合約自動執行」的過程,包括如下步驟:
(1)智能合約會定期檢查自動機狀態,逐條遍歷每個合約內包含的狀態機、事務以及觸發條件;將條件滿足的事務推送到待驗證的隊列中,等待共識;未滿足觸發條件的事務將繼續存放在區塊鏈上。
(2)進入最新輪驗證的事務,會擴散到每一個驗證節點,與普通區塊鏈交易或事務一樣,驗證節點首先進行簽名驗證,確保事務的有效性;驗證通過的事務會進入待共識集合,等大多數驗證節點達成共識後,事務會成功執行並通知用戶。
(3)事務執行成功後,智能合約自帶的狀態機會判斷所屬合約的狀態,當合約包括的所有事務都順序執行完後,狀態機會將合約的狀態標記為完成,並從最新的區塊中移除該合約;反之將標記為進行中,繼續保存在最新的區塊中等待下一輪處理,直到處理完畢;整個事務和狀態的處理都由區塊鏈底層內置的智能合約系統自動完成,全程透明、不可攥改。
——摘自〈區塊鏈:從數字貨幣到信用社會〉(中信出版社)
回答這個問題之前,我們先要搞清楚什麼是智能合約。
這個術語是跨領域法律學者尼克·薩博(Nick Szabo)提出來的,他對智能合約的定義是「一個智能合約是一套以數字形式定義的承諾(promises),包括合約參與方可以在上面執行這些承諾的協議。」換成更加通俗的描述就是「智能合約是一個在計算機系統上,當一定條件被滿足的情況下,可以被自動執行的合約。」
智能合約一定要在區塊鏈技術之上實現嗎?答案是否定的。舉個大家都熟悉的例子,就是信用卡的自動還款服務,我們就可以把它理解成一種智能合約。在具體的時間(信用卡還款日),當還款條件被滿足(儲蓄卡餘額比信用卡還款金額要多的情況下),計算機系統會自動完成這筆交易(用最初設定的儲蓄卡為信用卡還款)。然而這些服務仍是運行在傳統的計算機系統之上,而這些系統並沒有利用區塊鏈技術。
既然傳統計算機技術就可以實現自動交易的合約,那為什麼這些應用沒有廣泛應用呢?那是因為還有一個問題沒有被解決,那就是信任問題。我們知道,在現實世界中,合約是寫在紙上的,簽印之後人們才認為它生效;在計算機世界中,合約是記錄在代碼里的。那數字化的合約,會不會有合約被篡改之類道德風險,抑或是被黑客攻擊的技術風險呢?答案是很高的。回到我們前面講的自動還款的例子,如果是銀行的官網提供這項服務,大家也許能夠願意接受,因為很多人是願意相信銀行的。但是同樣的服務,搬到淘寶上新開的店鋪,或者其他的網站上,從技術來講其實也並不是那麼難,但是會有人選擇這種服務嗎?因為人們不會信任提供服務的人,因為他們太容易做壞事,而且一旦出現糾紛,舉證也是件非常困難的事情,最重要的證據都保存在對方的計算機系統中,他們想改點什麼還不容易么。
那區塊鏈技術又何德何能,能有什麼過人的地方,可以贏得用戶的信任。這就要從區塊鏈技術的幾個基礎的特性講起,我們經常講,區塊鏈技術給我們帶來了一個去中心化的,不可篡改的,高可靠性的系統。首先是不可篡改,這樣就不需要擔心合約的內容會被更改;其次是高可靠行,我們不用擔心系統在條件被滿足時不執行合約;然後就是去中心和給我們帶來的全網備份,完備的記錄完全可以支持支持事後的審計。這樣的系統,我們不再需要去相信和我們簽訂合約的對方,只需要相信區塊鏈系統會把剩下的事完成就可以了。這就是區塊鏈技術帶來的革命性變化——去信任。正是在去信任的環境下,智能合約才大有用武之地。
現在,比特幣網路、以太坊網路以及國內的井通網路等一系列區塊鏈社區都提供了公開的智能合約編程的介面。已經有眾多的創業公司基於這些公開的介面,開始開發智能合約的業務了,如果你也想一顯身手,完全可以去嘗試一下。什麼是智能合約?
簡單地說,智能合約就是傳統合約的數字化版本。它們是在區塊鏈資料庫上運行的計算機程序,可以在滿足其源代碼中寫入的條件時自行執行。智能合約一旦編寫好就可以被用戶信賴,合約條款不能被改變,因此合約是不可更改的。
智能合約使用「Solidity」語言進行編碼,與傳統合約相比具有許多優勢:
不依賴第三方執行合約。消除中間人,大大減少了花費在合約上的總金額。
消除第三方供應商也意味著合約驗證和執行的整個過程隨著用戶間的直接交易而變得快速。由於合約條款不能更改,用戶受騙的風險較小。智能合約不受各種人為干預。智能合約不容易出現斷電、節點故障等問題。合約保存在分散式賬本上時,不存在放錯或丟失的風險。這意味著連接到網路的每個設備都有一份合約副本,並且數據會永遠保存在網路上。
智能合約工作原理?
開發人員會為智能合約撰寫代碼。智能合約可用於交易和(或)兩方/多方之間的任何交換行為。該代碼包含一些會觸發合約自動執行的條件。
例如,與房屋租金協議相關的智能合約只有當業主收到租金才會觸發自動執行,並將公寓的安全密鑰發送給租戶。這個合約可以確保租金的定期支付,並且每個月重啟。
一旦編碼完成,智能合約就會被上傳到區塊鏈網路上,即它們被發送到所有連接到網路的設備上。從另一種區塊鏈應用——比特幣——的情況來說,這就好像把關於比特幣交易的網路更新上傳到區塊鏈上。
一旦將數據上傳到所有設備上,用戶就可以與執行程序代碼的結果達成協議。然後更新資料庫以記錄合約的執行情況,並監督合約的條款以檢查合規性。
這樣一來,單獨一方就無法操縱合約,因為對智能合約執行的控制權不在任何單獨一方的手中。
通過谷歌的關鍵詞搜索趨勢圖可以看出,智能合約正在受到越來越多的關注,從而我們需要一個更加清晰的定義。目前,與人們對智能合約的興奮相伴的還有對這一術語含義的困惑。Peter Todd–比特幣核心(Bitcoin Core)的開發者之一–非常準確地總結了智能合約的現狀:
「從智能合約討論中得到的結論:沒有人理解智能合約究竟是什麼,如果我們要實施智能合約,應該需要預言機(oracles)。」
在本文中,我儘力進一步闡明智能合約的本質。我的首要目標是,使得隱藏在智能合約背後的假設明確化,並澄清人們對與法律系統相關的神秘現象的誤解。然而,這只是我我第一次嘗試找到一種方式,將智能合約的理念系統化。我希望得到社區的反饋,從而我們能夠得到比現在更加清晰的理解。
聲明
說到法律術語,我要指出,雖然我是一名律師,但是我並不熟悉英語世界的法律術語,也不熟悉英美普通法(common law)系統。我是一名德國法律系統的學者,我學習德國法律和在法律領域工作將近十年了(譯者註:英語世界法律大部分屬於英美普通法,德國屬於大陸法系,故作者特彆強調)。雖然,我藉助谷歌搜索的能力,選擇我所知的最好辭彙,但是不精確是在所難免的。如果你有能力,請指出我對術語的誤用。從積極的角度看,德語對法律術語的嚴苛,在這裡也許有些幫助。
另外,我不是一名計算機科學家,雖然我個人寫代碼的時間長達12年了。如果你發現計算機領域的錯誤,請指出來。謝謝!
溯源「智能合約」(smart contract)這個術語至少可以追溯到1995年,是由多產的跨領域法律學者尼克·薩博(Nick Szabo)提出來的。他在發表在自己的網站的幾篇文章中提到了智能合約的理念。他的定義如下:
「一個智能合約是一套以數字形式定義的承諾(promises) ,包括合約參與方可以在上面執行這些承諾的協議。」
讓我們更加詳細地探討他的定義的意思。
承諾一套承諾指的是合約參與方同意的(經常是相互的)權利和義務。這些承諾定義了合約的本質和目的。以一個銷售合約為典型例子。賣家承諾發送貨物,買家承諾支付合理的貨款。
數字形式數字形式意味著合約不得不寫入計算機可讀的代碼中。這是必須的,因為只要參與方達成協定,智能合約建立的權利和義務,是由一台計算機或者計算機網路執行的。
更進一步地說明:
(1)達成協定
智能合約的參與方什麼時候達成協定呢?答案取決於特定的智能合約實施。一般而言,當參與方通過在合約宿主平台上安裝合約,致力於合約的執行時,合約就被發現了。
(2)合約執行
「執行」的真正意思也依賴於實施。一般而言,執行意味著通過技術手段積極實施。
(3)計算機可讀的代碼
另外,合約需要的特定「數字形式」非常依賴於參與方同意使用的協議。
協議協議是技術實現(technical implementation),在這個基礎上,合約承諾被實現,或者合約承諾實現被記錄下來。選擇哪個協議取決於許多因素,最重要的因素是在合約履行期間,被交易資產的本質。
再次以銷售合約為例。假設,參與方同意貨款以比特幣支付。選擇的協議很明顯將會是比特幣協議,在此協議上,智能合約被實施。因此,合約必須要用到的「數字形式」就是比特幣腳本語言。比特幣腳本語言是一種非圖靈完備的、命令式的、基於棧的編程語言,類似於Forth。
從理論到實踐劇透:如果你了解比特幣協議、比特幣貨幣和智能財產的概念,你可以跳過這一章節。
當薩博在近二十年以前,在網路提出了智能合約理論時,實踐一直嚴重地落後於理論。一直沒有如何將這個理念轉變現實的清晰路徑。
現在,技術已經趕上薩博富有遠見的頭腦,智能合約開始變得可行。在這二十年中發生了什麼事情呢?
簡而言之,薩博在他的智能合約定義中建立的協議,已經被進一步開發。它們已經以比特幣協議的形式出現,或者更加一般地說,這些協議能夠實現中本聰共識(Nakamoto consensus)。
在這些協議被開發的同時,我們獲得了另一個必需的構件:第一種真正的、原生的數字資產,即作為貨幣的比特幣。沒有這種資產,智能合約也將不可行,因為金融部門在過去的幾十年中,一直對任何創新抱有極端的敵意。
最後,另一個還沒有結出果實的概念是智能財產。我們正在進入一個計算和連接無所不在的時代,通俗地講,就是物聯網。物理實體能夠從互聯網中檢索信息和向互聯網發送信息,它們也能夠通過軟體控制它們自身的使用(想想數字版權管理吧),這使得我們能夠建立薩博所指的嵌入式合約(embedded contracts)。
「智能合約的基本理念是,許多合約條款能夠嵌入到硬體和軟體中。」
薩博認為嵌入式合約最初的應用實例是自動販賣機、銷售點終端、大公司間的電子數據交換和銀行間用於轉移和清算的支付網路SWIFT、ACH、FedWire。另一個嵌入式合約的例子是數字內容消費–例如音樂、電影和電子書–領域的數字版權管理機制。
從這個意義上理解,智能合約是賽博空間(虛擬空間)和物理空間(實體空間)之間的橋樑。
智能VS法律人們對智能合約概念的最多的困惑,源於它的名字和用於描述它的語言。人們似乎從「合約」這一術語中,推斷出智能合約一定與法律概念中的合約有某種聯繫。那麼,根據這個邏輯,智能合約是有法律約束力的協定加上其它因素(X),X使得協定變得「智能」。
從法律的角度,這一推測是錯誤的。根據參與方選擇的智能合約實施,參與雙方或者多方完全可能進入一個不滿足合法的合約所必需條件的「智能合約」。
然而,不可否認的是,智能合約必須被歸類為與法律相關的行為。我們生活在一個被法律管理和控制的世界,所有可能的經濟交易也被法律管理和控制。合約法只是組織經濟交易的一種可能的工具。原理圖如下:
Legally relevant behaviour :與法律相關的行為; contract law:合約法; smart contracts:智能合約
讓我們看一下合約法和智能合約的交集部分。我們能否發現一個能夠描述這兩個系統的合約行為的概括呢?引用薩博的論文:
「合約–一套達成共識的協定–是形成關係的傳統方式。」
薩博告訴我們的是,「合約」的抽象概念是在個人、機構和他們擁有的東西(財產)之間形成關係的一種公認的工具。然而,上面的引用並不清晰,參與方如何達成協定,如何形成協定,沒有講到。
我建議下面這個普遍的合約模型:
Agreement:協定; Formalization:形式化 ;Execution/Enforcement:執行
如果這個模型應用到智能合約和法律意義上的合約中,讓我們看看它怎麼起作用。
協定協定是一個完全的理想情況,從它在正式系統中的實施中抽象而來。當然,事實上這是一個脆弱的抽象。在法律系統中,在許多情況下,具有法律約束力,不要求形成一個協議。與此相反,對智能合約來說,在許多情況下,在形式化以前,沒有事前協定。
形式化形式化在這裡的意思是,在一個正式系統實施理想的協定的行為。有兩個相關的正式系統。一個是合約法,另一個是你選擇的智能合約系統。這兩個系統都服務於相同的目的:當違約行為發生時,使得協定能夠執行。
從一般角度理解,對於合約是怎麼形式化的這一問題,有人認為它只是實施細節。然而,事實證明,合約的實施的確事關重大。
現在有兩種本質上不同的、形成一種合約關係的方式。這兩種方式是截然不同的,因為它們需要不同的執行方式。
執行因為一圖頂千言,所以來看下面這張我從Lawrence Lessig那裡「剽竊」來的信息圖,出於本文的需要,我對圖片做了輕微的修改。
Market:市場 ; contract:合約 ;Norms:慣例、常規 ; Architecture :架構 ; law:法律; ex ante:事前; ex post:事後
在Lessig的最初版本中,是一個人位於信息圖的中間,不是一個合約。這位了不起的思考者用他的信息圖,努力教給我們這些凡人的是,有四種最基本的約束影響著一個人的一生。這四個約束本質上截然不同的,但是以複雜的方式交織在一起。
我對原版的信息圖做出了修改,用合約取代了人,這裡的合約是指雙方或者多方之間達成的協定。有趣的是,做出修改以後,這個信息圖仍然有效。這四個約束就像管理著人一樣,管理著合約關係。
另外,我著重強調這四個約束中的兩個約束,即架構和法律。這兩個約束是合約能夠被執行的兩個最基本的動力。根據參與方選擇的協定實施的系統,合約將通過法律系統執行,或者通過架構執行。這兩種合約執行模式顯著不同。
Lessig認識到合約執行的兩個特徵,可以幫助我們談論兩種合約執行模式的不同。一個是代理(agency),另一個是時間性(temporality)。在法律意義上,合約的執行,只有當一些人選擇這樣做時,才會發生。此外,執行只發生在違約以後,例如事後。
智能合約的執行在這兩個方面,本質上不同於傳統合約。為了理解是如何不同的,我們需要首先理解Lessig所指的架構是什麼意思。
Lessig在他的《代碼:網路空間的法律》一書中,為了解釋代碼在賽博空間中的作用,引入了架構的概念。物理空間的形狀,就是你的身體穿梭其中的空間,是由它的架構決定的,例如建築環境(建築物、街道等)。如此類似,賽博空間的形狀是由代碼決定的,人們使用的應用和協議就是建立在這些代碼上面的。因此,代碼是賽博空間的架構。
法律和架構都有方法管理參與方的行為。法律依賴於個人將規則內化,個人據此調整自己的行為,或者該系統允許法律追索權(例如法庭)。然而,架構通過塑造空間本身管理行為。架構不是關於允許什麼,而是什麼是可能的。架構既不依靠個人將規則內化,也不依靠起訴系統。
根據我們衡量合約執行的質量的標準,例如代理和時間性,因此架構明顯地不同於法律。架構執行合約時,不需要任何個人或者組織(代理,agency)決定如何執行合約,你可以稱架構執行為自我執行(self-enforcing),雖然我不喜歡這種叫法。另外,架構事前執行,違約甚至不可能發生。
未來展望有一件事確定無疑:智能合約已經紮下根了。它們是真正的全球經濟的基本構件,任何人都可以接入到這一全球經濟,不需要事前審查和高昂的預付成本。它們從許多經濟交易中,移除了對第三方的信任必要,在其它情況下,將信任轉移到可以信任的人和機構。
我在這篇博客中儘力想說明的理念是,智能合約怎樣與合約法共存。本質上,它們是解決相同問題–以一種方式形成一種關係,使得承諾可以執行–的兩種不同方法。就這一點而言,智能合約似乎是更好的解決方案:智能合約事前執行,不像法律系統一樣,事後執行。然而,這是一種謬誤。最後一次引用全能的薩博:
「合約法的成功和取代合約法所需的高額成本,使得保存和利用合適的原則,仍然很有價值。但是,數字革命正在劇烈地改變我們能夠擁有的各種關係。在這個賽博時代,我們來之不易的法律傳統中的哪一部分,將仍然具有價值?將這些法律原則應用到我們的線上關係設計,最好的方式是什麼?」
在合約法中,有許多已建立的原則,仍值得保存。其中包括法律默認規則,我將在另一篇博客中寫這個問題。因此,為了實現最優的結果,同時利用合約法和智能合約,好像是有利的行為。我將在另一篇博客中,告訴你怎麼實現這一點。
題主說的對呀,傳統技術+機構信用擔保是可以的。
當然,在一些事情上,很難保證「人」不作惡。不過在大部分的事情上(或者說不大的事情上),「人」的信用還是值得相信的,畢竟日常很多事情都是基於「人」的信用進行的(比如,中小事情)。
一開始我也這麼想的,後來支付寶把我賬號凍結了啊。
我的支付寶賬號當然是小事情啦,對馬雲來說。支付寶當然很可靠啦,對大多數人來說。對我來說就不是。題主試想一下,在物聯網時代,海量的設備之間如果不能達成自信任,還需要傳統的中心來維持,這樣的成本有多高,效率會多低?況且「數據",作為未來生命線的數據都被中心化公司拿走了,而不是掌握在用戶自己手中,這是多麼可怕的事情?誰能保證他們不作惡呢?要是他們「隨意"動動手腳呢?誰又能保證他們不以此謀取特權(現在大型互聯網企業就在營造這種高高在上「救世主」般的形象了吧,可惜)?不藉助區塊鏈的話,談什麼數據確權,談什麼信用確權?不作確權,不自信任化,不智能合約化,依託於一個可信可不信的第三方,又怎麼能指望共享經濟會有一個牢靠的基石?另外,至關重要的是,未來萬物互通互聯,如果不能實現可編程化,效率會是多麼低下?而這,還是要依靠智能合約來實現。
我贊同你如下說法,基於以下原因使用區塊鏈實現智能合約:
1.數據不能修改、刪除,只能查看和增加。2.去中心化。避免了中心化的「人」因素。區塊鏈為合約提供了公開公正、透明的執行環境(信任層)
我覺得你是理解區塊鏈技術的
你說的在事情不大的情況下用傳統技術解決,考慮的是用區塊鏈的成本問題:
1. 這個事情本質的問題是什麼,信任危機,效率低下,安全?2. 傳統解決方案是否能真正的解決這些問題?3. 區塊鏈是否能解決?是否適合解決?有沒有引入新的問題?3. 如果都能完美解決,兩者成本?-----------------------------微信公眾號:區塊英雄鏈僅就答主的問題而言,在一個比較小的商業網路里,所有參與者都同意數據儲存在一個中心節點裡,用一個數據格式的話,那是可以的哦。智能合約主要解決合約格式的問題,每個參與者都按照固定格式寫這個合約,避免了數據不一致導致的相互扯皮的事情發生
智能合約的一個前提是解決信任,也就是共識問題。 目前只有區塊鏈技術完美的解決了共識問題。
區塊鏈提供了可編程的分散式賬本系統。其一是區塊鏈構建的編程環境很方便。二是因為其代碼運行其上很可靠。這裡有篇智能合約的漫畫,看看能不能輔助您理解。http://mp.weixin.qq.com/s?__biz=MzA5NTY2OTIyMA==mid=2650294443idx=1sn=ffa5142f5469eb01429b10da51695091scene=2srcid=0923Lfqb2wOlvNL6zAzJuFopfrom=timelineisappinstalled=0#wechat_redirect
因為為了可能我們不會在公司工作,而為一個分散式自治系統工作。公司的所有運轉就依靠區塊鏈上的智能合約。
這個問題我覺得分幾塊來講:
首先,「智能合約貌似就是一段腳本」的理解其實並不是很到位,智能合約因為其撰寫語言的不能能夠簡單如腳本也可以實現其他複雜的演算法,比如以太坊的EVM虛擬機支持的語言特性較少因此實現功能有限,而IBM的Fabric的目前已經做到對go, java等語言的支持,將來理論上可以支持更多語言。其次,智能合約作為一段代碼本身也可就是數據,區塊鏈的共識演算法以及加密演算法等能夠保證智能合約不被篡改,這樣智能合約的執行也就得到了保證。此外,去中心化除了要保證中心控制的因素之外,還起到了保證數據服務高可靠的作用最後,什麼樣的業務場景適合區塊鏈,其實理論上我認為所有需要信任中介的業務都可以用區塊鏈技術去解決。當然目前的區塊鏈技術仍然還未成熟,交易頻率,智能合約代碼正確性驗證等等問題仍然值得關注。區塊鏈原理要了解透徹就必須從它的誕生與發展來進行系統的了解,從而從多個角度來更清晰的辨別區塊鏈原理。區塊鏈技術(Block Chain)是指通過去中心化的方式集體維護一個可靠資料庫的技術方案。該技術方案主要讓區塊(Block)通過密碼學方法相關聯起來,每個數據塊包含了一定時間內的系統全部數據信息,並且生成數字簽名以驗證信息的有效性並鏈接到下一個數據塊形成一條主鏈(Chain)。
區塊(Block)是區塊鏈中的一條記錄,包含並確認待處理的交易。
挖礦(Mining)指通過計算形成新的區塊,是交易的支持者利用自身的計算機硬體為網路做數學計算進行交易確認和提高安全性的過程。以比特幣為例:交易支持者(礦工)在電腦上運行比特幣軟體不斷計算軟體提供的複雜的密碼學問題來保證交易的進行。作為對他們服務的獎勵,礦工可以得到他們所確認的交易中包含的手續費,以及新創建的比特幣。
對等式網路(Peer-to-Peer Network)是指通過允許單個節點與其他節點直接交互,從而實現整個系統像有組織的集體一樣運作的系統。以比特幣為例:網路以這樣一種方式構建——每個用戶都在傳播其他用戶的交易。而且重要的是,不需要銀行或其他金融機構作為第三方。
哈希散列(Hash)是密碼學裡的經典技術,把任意長度的輸入通過哈西演算法,變換成固定長度的由字母和數字組成的輸出。
數字簽名(Digital Signature)是一個讓人可以證明所有權的數學機制。
私鑰(Private Key)是一個證明你有權從一個特定的錢包消費電子貨幣的保密數據塊,是通過數字簽名來實現的 。
雙重消費指用戶試圖非法將電子貨幣同時支付給兩個不同的收款人,是電子貨幣的最大風險之一。
布比區塊鏈專註於區塊鏈技術和產品的創新,已擁有多項核心技術,開發了自有的區塊鏈服務平台。以去中心化信任為核心,致力於打造開放式價值流通網路,讓數字資產都自由流動起來。布比要做的是一項新的技術和產品——實現真正的價值流通,使得互聯網到達一個新的高度。如果有了這個技術的應用,在轉移資產的時候就可以沒有中心機構了,可以實現我們之間資產的直接轉移。
區塊鏈的起源:一種支持比特幣運行的底層技術
區塊鏈的概念首次在2008年末由中本聰(Satoshi Nakamoto)發表在比特幣論壇中的論文《Bitcoin: A Peer-to-Peer Electronic Cash System》提出。論文中區塊鏈技術是構建比特幣數據結構與交易信息加密傳輸的基礎技術,該技術實現了比特幣的挖礦與交易。中本聰認為:第一,藉助第三方機構來處理信息的模式擁有點與點之間缺乏信任的內生弱點,商家為了提防自己的客戶,會向客戶索取完全不必要的信息,但仍然不能避免一定的欺詐行為;第二,中介機構的存在,增加了交易成本,限制了實際可行的最小交易規模;第三,數字簽名本身能夠解決電子貨幣身份問題,如果還需要第三方支持才能防止雙重消費,則系統將失去價值。基於以上三點現存的問題,中本聰在區塊鏈技術的基礎上,創建了比特幣。
2009年1月3日,中本聰製作了比特幣世界的第一個區塊「創世區塊」並挖出了第一批比特幣50個。
2010年5月21日,佛羅里達程序員用1萬比特幣購買了價值25美元的披薩優惠券,隨著這筆交易誕生了比特幣第一個公允匯率。
2010年7月,第一個比特幣平台成立,新用戶暴增,價格暴漲。
2011年2月,比特幣價格首次達到1美元,此後與英鎊、巴西雷亞爾、波蘭茲羅提匯兌交易平台開張。
2012年,瑞波(Ripple)發布,其作為數字貨幣,利用區塊鏈轉移各國外匯。
2013年,比特幣暴漲。美國財政部發布了虛擬貨幣個人管理條例,首次闡明虛擬貨幣釋義。
2014年,以中國為代表的礦機產業鏈日益成熟,同年,美國IT界認識到了區塊鏈對於數字領域的跨時代創新意義。
2015年,美國納斯達克證券交易所推出基於區塊鏈的數字分類賬技術Linq進行股票的記錄交易與發行。
區塊鏈原理從一個個應用案例中就可以了解清晰了,關於區塊鏈原理的應用也是越來越火熱,近期,花旗集團、日本三菱日聯金融集團、瑞士聯合銀行和德意志銀行等全球大型金融機構,也將應用「區塊鏈」技術,打造快捷、便利、成本低廉的交易作業系統。在金融領域之外,區塊鏈技術也開始應用於保護知識產權、律師公證、網路遊戲等有信息透明公開並永久記錄需求的領域。第一次回帖,個人對區塊鏈也是最近才了解,下面僅談下自己的想法和見解:
1、區塊鏈解決了信任和價值轉移的問題,這個信任是全球化的,也就是說一旦一筆交易(合約)落地(被區塊鏈確認),任何人、機構、國家都不能修改的。你所提到的以某個機構作為信任背書的方式,在全球範圍內如何實現? 不同國家的政治、宗教、文化以及歷史背景不同,你會信任某個國家的什麼機構做擔保? 區塊鏈通過數學演算法結合密碼學的知識在全球範圍內建立起一種信任共識。
2、互聯網第一個階段解決的是信息製造和傳輸問題,第二個階段就是信任和價值轉移問題。既然是互聯網也就是人人都可以參與么! 在小範圍上可以採用你所說的傳統技術+信任擔保的方式來解決,但是區塊鏈是分散式方式,每個參與節點都可以下載一個完整的區塊鏈,當一個節點崩潰(或者被攻擊)並不影響整個網路的運行,同時每個節點都可以驗證交易(合約)的合法性。對於中心化(傳統方式),當中心節點崩潰(或者被黑客控制)會使整個網路癱瘓,進而造成不可恢復的後果。
3、區塊鏈正在快速發展,未來的路還很長。引用央行金融研究所所長姚余棟的一句話 「千萬別生於互聯網,死於區塊鏈」舉一個例子,我有價值100萬的資產,去銀行抵押貸款,可能只能貸出60%即60萬的款項,這中間還包括了一系列資產評估、資產抵押手續。這裡面產生了一個「信用估值打折」,你可以支付的資產價值被打折了,而對於貸方則可能產生相反的「信用估值放大」,銀行只需要有20%的準備金,可以將80%的存款放貸出去,實際可以支付的資產價值被放大了。
機構建立信用的背後除了資產保證之外(比如銀行需要固定儲備的準備金),還需要巨大的成本(比如銀行大量的營業網點、龐大的管理及安全系統),這些成本在信用建立起來後,通過「信用估值放大」賺回來,從邏輯上不難理解,消除建立信用的成本,社會交易的成本會下降,效率會得到整體的提升
通過智能合約實現去信用化的電子資產抵押,可以消除信用打折和放大,其中尤其對中小額度的信用交易極具意義,任意個人之間可以建立任意額度的交易,將仲裁權交給非任何第三方的智能合約。區塊鏈是未來人工智慧的核心
推薦閱讀:
※如何看待2017年9月8日新聞:監管醞釀取締比特幣交易平台 比特幣暴跌?
※如何看待黃旭東直播時感謝用戶導致比特幣大跌?
※區塊鏈信息越來越大怎麼辦?
※比特幣是如何防範雙花的?
※區塊鏈的隱私性如何保護?
TAG:比特幣Bitcoin | 區塊鏈Blockchain |