智能合約區塊鏈瞭解一下2分鐘懂區塊鏈
首先我們來講一下傳統的合同是怎麼簽約的:
執行傳統合同需要人工驗證,以檢查條款和條件,並根據書面協議決定下一步。
傳統合同簽約步驟
傳統的合同簽約步驟特點:
1、費時 - 檢查合同條款,審覈批准,再進行後續等步驟
2、資源消耗 - 執行傳統合同需要人爲干預
3、代價高昂 - 可能涉及第三方,在爭議期間甚至更多
合同越複雜,需要控制的越多,而且存在爭議的風險越大。例如,這可能涉及幾個執行步驟,這些步驟可以啓用特定的操作或產生某些特權。
還有另一種方式來處理合同,以克服前面提到的這些挑戰和限制。隨着技術的發展,我們處理合同的方式不斷演變,智能合約誕生了。
那麼,什麼又是智能合約?
什麼是智能合約?
智能合約步驟
智能合同是協議的翻譯,包括條款和條件轉換爲計算機代碼(腳本)。區塊鏈開發人員以Java,C ++等編程語言編寫腳本,其方式不會造成歧義,也不會導致誤解。該代碼翻譯了一組自動執行和驗證的規則。一個直截了當的例子就是翻譯:“如果X提供服務,Y就會付錢。”
交易雙方合約代碼上傳到區塊鏈中檢查合同的有效性並啓用所需的步驟。 從初始化開始,智能合約就會自動執行。 智能合約與傳統合約的主要區別在於智能合約不依賴第三方, 加密代碼自動執行。
我們一起來想一下實施智能合約的自動售貨機。 它驗證以下屬性:
1、交易中沒有第三方參與。
2、當您將硬幣放入機器並選擇商品時,只要您符合條款和條件,即可將產品直接交付 - 您的硬幣與您想購買的產品價值相同或更高。
現在我們對智能合約有了一定的瞭解,接着看智能合約是如何工作的。
瞭解區塊鏈
爲了更好地理解智能合約的工作方式,我們先來簡單介紹一下區塊鏈。
區塊鏈是一個類似於我們記錄信息的書籍的概念。 通常,這些信息是關於交易的,但情況並非總是如此,也不是唯一的情況。 我們將區塊鏈看作是記錄合同和交易的分類帳。 產生區塊鏈的概念和想法並不新鮮,這個想法首先出現在1991年由哈伯和斯托內塔出版的論文中。
區塊鏈簡介
本文的目標是使用時間戳來認證和保護數字文檔。時間戳是以無法更改的日期的方式完成的。因此,定義哪些文檔最先出現比較容易。一個出現時間戳比另一個文檔更早的文檔被認爲是首先創建的。這種方法利用了時間戳的不變性質。
區塊鏈技術的出現允許第一個命題的細化。在區塊鏈技術方法中,文檔通過一個塊連接在一起形成一個鏈。區塊鏈是使用哈希指針的鏈接數據結構。因此,區塊鏈特徵和技術繼承了哈希函數和哈希指針的特性。這些特點分別爲:
1、任何給定的輸入都有一個輸出:散列。
2、輸出是標準化的 - 一個固定的尺寸通常相當大,以確保它抵抗安全攻擊和碰撞。
3、易於計算 - 我們可以根據輸入大小確定計算輸入散列值所需的時間。
這些特性至關重要,因爲它們能夠確保:
1、任何交易都能夠加密。
2、對於任何給定的事務,輸出具有相同的尺寸。
3、對於任何給定的事務,我們可以確定其散列的計算時間。
4、在處理交易時,安全是必選項。區塊鏈技術使用的散列函數確保了安全性。它根據以下標準進行選擇:
它抵制碰撞。當在相同的輸出中找到兩個不同的輸入結果時發生碰撞。當發現碰撞的嚴重嘗試不成功時,碰撞阻力就會發生。
瞭解輸出,預測輸入是做不到的。即使給定交易的散列值是已知的,交易本身仍然是未知的。
由於區塊鏈是一個鏈接的數據結構,它包含數據和一個指向先前數據的哈希指針。通常情況下,交易是相互關聯的。每一筆交易都記錄在區塊鏈中併發布。我們之前看到的屬性確保區塊鏈內交易的安全性。
現在我們知道交易記錄形成區塊鏈,接下來的問題是區塊鏈技術和智能合約之間的關係是什麼?
從區塊鏈到智能合約
智能合約在分佈式區塊鏈中定義並執行。每筆交易和合約執行都必須在區塊鏈內發生。有幾個步驟來啓用這個智能合約執行:
區塊鏈開發人員使用編程語言將智能合約編寫爲腳本。在編碼部分,開發人員實施合同背後的邏輯,以便在發生給定操作或事務時,腳本啓用以下步驟。
一旦寫好智能合約代碼,腳本就會發送到區塊鏈。分佈式網絡用於執行代碼。通常情況下,每臺可用於計算的計算機都可以執行合同,並且對於相同的輸入,合同的輸出應該相同,無論計算機在何處執行。
可以對多個條件進行編碼,最終的智能合約用戶可以選擇此智能合約所需的條件。
合約的執行是以點對點的方式進行的,這非常接近權力下放。連接到Internet的簡單用戶通常可以是客戶端。他們必須在電腦上安裝客戶端。我們把這個原則稱爲挖掘。用於運行程序的計算機稱爲節點。
通常情況下,每個人都可以創建智能合約,並在區塊鏈上的特定交易中上傳此合約。根據所使用的技術,特定的虛擬機將執行該合同代碼。根據特定協議,可以使用一些API來公開合約,以便自動執行交易。