• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 區塊鏈生態 查看內容
    • 9215
    • 0
    • 分享到

    智能合約將互聯網帶入通證經濟時代 從Token賬戶機制到通證市場概述

    2019-1-22 17:45

    來源: 國盛區塊鏈研究院

    從智能合約視角看比特幣和以太坊



    以太坊最大亮點是區塊鏈智能合約,其實智能合約思想是中本聰首先在比特幣系統中引入的。本文對比特幣腳本和以太坊智能合約做了一個簡單梳理。



    比特幣采用UTXO來表達,并非賬戶余額模型。比特幣并沒有采用賬戶余額模型,而是采用了UTXO(Unspent Transaction Output,未經花費輸出)來表達比特幣的交易流轉。所以,在Bob轉給Alice 1.5個比特幣的交易中,我們熟悉的賬戶余額模型會這樣做:首先檢查Bob的賬戶余額是否足夠,然后進行轉賬,Bob的余額數值減1.5,Alice的余額數值加1.5。有意思的是,賬戶余額模型中,1.5個幣和另外1.5個幣是沒有區別的,因為賬戶余額只余額的數值,因此這并不適合并行交易。比特幣系統并沒有賬戶,比特幣的交易流轉通過UTXO來表達。一筆交易中,Alice收到的一筆比特幣轉入以一個完整的UTXO記錄在區塊里,因為Alice還沒有花費這筆比特幣,所以就形成了一個未經花費的輸出;而并非是像賬戶余額模型一樣在Alice的賬戶(公鑰)更新余額狀態。



    比特幣交易的核心是創建腳本。在比特幣區塊鏈中,每一個區塊都通過SHA256計算的區塊哈希鏈指向上一個區塊,因此比特幣賬本實現防篡改。除了第一筆交易是礦工的挖礦所得外(Coinbase 交易),每一筆交易都擁有一個或多個輸入(形成接收者的UTXO),以及一個或多個輸出。由于比特幣沒有賬戶,比特幣的交易創建的輸出其實并非一個簡單的公鑰地址,而是一個腳本。在Bob給Alice支付1.5個btc的這個交易中,Bob創建的輸出腳本中會包含Alice的公鑰Hash。整個腳本的意思是,誰能夠提供一個簽名讓這個包含Alice的公鑰的腳本運行,誰就能花費這筆交易的1.5個BTC。顯然,創建簽名只能使用Alice的私鑰,其他私鑰創建的簽名將無法通過這個腳本的驗證,從而確保其他人無法假冒Alice來花費這筆輸出。一旦Alice提供了一個簽名和自己的公鑰,她實際上已經創建了另一筆交易來花費這個輸出。當然,在Bob提供簽名和公鑰支配這個UTXO(包含1.5BTC),他就是創建了轉給Alice 1BTC交易,實際上所有節點都可以驗證Bob創建的交易是否有效,并把經驗證的交易打包寫入區塊中,形成不可篡改的交易記錄。



    UTXO和比特幣的交易模型類似共享單車的使用。比特幣的存在狀態是UTXO而非賬戶余額,交易是通過腳本的運行來創建,這個流程初次看起來相當反直覺。我們用共享單車的是使用來比喻這一過程。在Bob給Alice轉賬1.5 BTC交易中,也可能是更大額找零,或者幾個小額UTXO合成1.5 BTC。為簡單起見,假設Bob擁有一個價值為1.5BTC的UTXO,這就好比是一輛共享單車,腳本就相當于單車的電子鎖。此時,單車的鎖電子屏顯示提示:只有對公鑰1ABC…789(這是Bob的公鑰)進行簽名才能解鎖,當然,這必須是對應的私鑰。在Bob創建交易時,Bob利用自己的私鑰提供了一個簽名,經過全網驗證通過,打開了這把鎖(相當于運行腳本)。接下來,網絡根據Bob的要求,對車加了一把新鎖,新鎖顯示提示內容是:只有對公鑰1XYZ…123(這是Alice的公鑰)進行簽名,才能開啟這把鎖(相當于運行腳本)。此后,只有Alice能夠支配這輛單車。整個過程,單車的所有權并不記錄在某個人的名下,也就是說,UTXO中的BTC并不是以余額的方式記錄在某人的賬戶里。這樣做的好處之一是,所有的交易都是站在BTC流轉的角度,不同的UTXO(單車)之間可以進行并行交易,因為UTXO之間的嚴格區別的。



    圖:UTXO模型類比于共享單車的使用

    2

    數據來源:國盛證券研究



    如上所述,正如我們不必關心單車停在誰家門口,也不必關心某一輛單車登記在誰的名下(事實上共享單車的使用權沒有賬戶登記的概念),只要按規則獲取密鑰就可以支配共享單車一樣,比特幣并不是記賬在某人的賬戶下(其實根本沒有賬戶的概念),而是具體的一些比特幣(數值是多少不重要,重要的是這些比特幣是唯一的)以某些UTXO的形式鎖定,只有能夠對此UTXO進行簽名的公鑰持有人才能夠支配這些比特幣——當然,一旦你簽名了,那么事實上你就創建了一筆轉賬交易。



    比特幣的腳本奠定了智能合約的思想。比特幣腳本的引入,實際上利用所有權轉移(對腳本簽名)實現區塊鏈數字資產的支付。對于任何登記在區塊鏈上實物或者金融資產,都可以通過腳本就安全實現各種條件下的所有權轉移,這正是智能合約的思想。中本聰曾經在論壇中的討論里表示:在過去幾年設計比特幣的過程中,我發現只有使用腳本系統才能完成我希望支持的各種復雜交易類型——擔保交易、連帶合同、第三方仲裁、多方簽名等等。為了保持比特幣的向前兼容和簡單穩定,比特幣的開發者們對其腳本做了諸多限制。比如腳本中沒有循環語句。比特幣網絡中的每一個節點都要執行每一筆交易中的腳本,這就使得比特幣腳本系統的設計需要足夠精簡。而作為一個點對點的電子現金系統,比特幣也確實無需更為復雜的腳本系統。UTXO加上簡潔的腳本系統,確實保障了比特幣運行近10年而無任何錯賬、假賬以及防入侵,這是偉大的實踐。



    以太坊(Ethereum)作為市值第二的區塊鏈項目,廣為人知的是它的智能合約。甚至很多人認為以太坊之所以能夠開啟區塊鏈2.0時代,靠的就是智能合約,智能合約幾乎成了以太坊的代名詞。智能合約(Smart Contract )是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議。智能合約允許在沒有第三方的情況下進行可信交易。這些交易可追蹤且不可逆轉。在以太坊上面運行最多的合約就是ERC20標準合約,很多區塊鏈項目的token是用ERC20合約來發行、登記的,換句話說,很多所謂的代幣其實運行在以太坊上面的,包括ETH代幣;這些Token賬本的并不需要建立獨立的區塊鏈。這相當于以太坊賬本上擠出一塊地方登記其他代幣,其發行成本幾乎為零。



    以太坊(Ethereum)的智能合約帶來了區塊鏈大爆發時代。以太坊的區塊鏈賬本采取了人們最熟悉的賬戶余額模型(還有一個被私鑰控制的賬戶,現實很少用到),而賬戶是被合約代碼控制的。目前 Ethereum 網絡上運行最多的合約賬戶是 ERC20 的合約,很多區塊鏈項目的Token(代幣) 就是 Ethereum 上的合約,這些合約其實也是 Ethereum 賬戶。這就好比以太坊的區塊鏈系統和區塊賬本留有很多空白空間,其他項目只要在上面申請一個代幣標識就算發行代幣了。2015年以太坊上線后,區塊鏈行業迎來了大爆發,代幣發行極其活躍。目前,以太坊區塊鏈瀏覽器Etherscan顯示,公有109554個Token Contracts部署在以太坊區塊鏈網絡中。也就是說,近11萬個項目的代幣是登記、運行在以太坊區塊鏈上面的。智能合約是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議。智能合約允許在沒有第三方的情況下進行可信交易。這些交易可追蹤且不可逆轉。智能合約不僅使得區塊鏈可以運行條件履約、擔保交易、連帶合同、第三方仲裁、多方簽名等復雜交易,進一步,區塊鏈由此進入更多豐富的互聯網場景,諸多互聯網的賬戶動態都可以基于區塊鏈運轉,而不像比特幣,僅僅是一個加密貨幣(電子現金)項目。區塊鏈由此進入全面顛覆互聯網的時代。



    圖:目前基于ERC20標準Token超過16萬

    3

    數據來源:https://etherscan.io/tokens



    圖:ERC20合約可以用于發行資產的功能備受青睞

    4



    數據來源:國盛證券研究


    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频