受訪者:王淵命
采訪&撰文:李畫
本文約5000字,閱讀全文需約10分鐘。
隨著新的指令和算法的引入,比特幣的多簽功能正在變得強大。多簽不僅是指多個人共同簽名,保管一筆比特幣資產;它還可以是多個條件「共同簽名」,通過這些條件鎖定和解鎖比特幣。
用條件決定資產的使用,其實就是合約的功能。當這個合約可以被代碼表達并無需信任地自動執行時,我們稱其為智能合約。因此前比特幣核心主管維護人員GavinAndresen說:比特幣的多簽功能已經可以完成以太坊上大部分有用的功能。
那么,比特幣是如何實現智能合約的?比特幣與以太坊的智能合約又有何區別?我們采訪了對區塊鏈和智能合約有著深刻認知的技術寫作者王淵命,他曾任新浪微博架構師、QingCloud容器平臺負責人,現為某公鏈項目的首席架構師,他也是BFTF區塊鏈技術聯盟的發起者。
智能合約
一、比特幣是否需要智能合約
Q:比特幣需要智能合約嗎?
A:需要。智能合約能夠為比特幣系統帶來邏輯可擴展性,在不改變現有基礎設施、基礎架構的情況下,為系統增加新的功能,從而增強系統的能力。擴展性不只是指TPS、容量和存儲等方面。
智能合約的另一個作用是它能實現具有約束力的合同功能。它是一個定義各方權利和義務關系的協議,只不過是數字化的,且它的執行機制不依賴于現有的法律體系。
Q:比特幣作為一種加密貨幣,為什么需要合同功能?簡單交易它不就可以嗎?
A:并沒有所謂的簡單交易,你為什么給我轉賬?無論是購物,或者是發工資或其他,背后其實都依賴于一個合同。在現實生活中,這個合同的執行是依賴于司法體系的,一方違約,另外一方可以起訴。只有貨幣而沒有司法體系的約束,是沒辦法完成任何交易的。
BitTorrent Chain(BTTC)節點社區招募正式開啟:據最新消息,波場協議啟動的第二層(Layer 2)擴容跨鏈解決方案BitTorrent Chain(BTTC)即將正式發布,為了完善BitTorrent Chain(BTTC)社群生態布局和體系,挖掘社區管理人才,BitTorrent Chain(BTTC)團隊正式啟動BTTC節點社區招募計劃,通過BTTC全球社區招募優質的節點。
BitTorrent Chain(BTTC)是波場生態上首發的異構鏈跨鏈互操作協議。由BitTorrent和TRON核心團隊聯合開發,團隊成員均來自世界頂級互聯網團隊,協議采用POS(Proof of Stake)共識機制,部署多節點驗證。[2021/10/29 6:19:41]
那么在全球化的加密貨幣世界里,該如何構建這種合同的約束力?依賴于智能合約。智能合約將規則/法律通過代碼表達并執行,用代碼構建出一套約束力體系。
Q:比特幣需要DeFi嗎?
A:廣義來說,所有的加密貨幣都屬于DeFi的應用領域,因為DeFi的第一步是有貨幣。有了貨幣后,可以圍繞貨幣定義怎么跟其它資產或者貨幣交換,如何借貸等等,加密貨幣里的金融相對法幣體系的金融還比較早期,可探索的路還很長。
二、比特幣如何實現智能合約
Q:為什么說比特幣系統是支持智能合約的?
A:合約就是當我跟你做一個交易時,它能保證這個交易達成,也就是說它能表達某種條件,當條件滿足時我才給你付款。能把這個條件表達出來,就可以認為它有智能合約表達能力。比特幣的腳本是有智能合約表達能力的,可以把比特幣的腳本理解成是一種智能合約。
DeFi策略游戲SOVI正式開啟SOVI Bazaar市場:據官方消息,DeFi策略游戲SOVI.Finance在進行流動性挖礦升級、并開啟HONOR榮譽積分計劃后——宣布正式開啟SOVI Bazaar市場,用戶可使用挖礦獲得的HONOR榮耀積分兌換SOVI Token。
據悉,SOVI Bazaar將于北京時間3月28日18:00 開啟。在SOVI Bazaar中,用戶可以根據實時更新的比率,將HONOR榮譽積分兌換成SOVI Token:SOVI生態收到的所有代幣(除SOVI外),都將用于在流動性池中回購SOVI并注入分紅池。每次回購后,SOVI團隊都會宣布一個新的分紅釋放計劃,持有HONOR榮譽積分的用戶可以在在SOVI Bazaar市場中根據實時更新的比率將HONOR榮譽積分轉換為SOVI。[2021/3/28 19:24:30]
那為什么比特幣要通過腳本而不是把功能固化在鏈上?因為如果固化在鏈上,當用戶/開發者需要某個功能時,就需要比特幣開發團隊去實現,然后再發布,然后推動整個鏈的升級,但區塊鏈升級是個復雜的事情,弄不好就分叉了。
所以比特幣只提供最基礎的一些素材,相當于給你提供面粉,但菜怎么做留給你自己,你可以利用這些素材,根據自己的場景組合出新的東西,不需要依賴于主鏈的升級。這也就是我前邊講過的通過智能合約來實現邏輯可擴展性。未來是不確定的,智能合約可以看成是一種應對不確定性的策略。
上邊是比特幣系統本身對智能合約的支持,它是通過腳本實現的;還有另一類支持/實現智能合約的方式,就是通過比特幣系統的側鏈,在側鏈上實現智能合約的方法跟在以太坊上類似。
火幣鏈穩定幣DBC將于今晚21點開啟第一次Rebase:據官方消息稱,火幣鏈穩定幣DollarBalance.cash將于今晚21點開啟第一次Rebase,預計將迎來第一次通脹紀元,邀請獎勵機制也將生效。同時,DBC頭礦質押也將于今晚21點結束,共產出1000枚初始供應量,質押總資產超過2000萬美金。
Dollarbalance.cash為火幣鏈新一代的算法穩定幣,融合ESD+BAC+USDX的優秀機制,并優化了穩定算法。[2021/1/30 14:24:43]
Q:比特幣系統是如何通過腳本實現智能合約的?
A:以太坊上的智能合約是直接用代碼表達清楚的,什么條件下執行A,什么條件下執行B等等,比特幣上的智能合約不像以太坊那樣直白。
比特幣上所有的智能合約都要被轉換成加鎖、解鎖的機制來實現,也就是說在腳本中,通過「key」或者是「哈希條件」把資產鎖定,再加上一個「時間鎖」。無論是閃電網絡還是Arwen協議,都是這樣的機制,比特幣將會推出的Schnoor簽名之類的,也都是為了更好地去表達這個機制。
因此,實現比特幣智能合約的核心就是怎么去加鎖和解鎖資產。
如果合約中所有的條件都能轉換成key、哈希條件、時間鎖這三者來加鎖和解鎖,那么這個合約就可以用比特幣系統實現。我把這三者分別稱為簽名鎖,哈希鎖,時間鎖,比特幣智能合約基本就是用這「三把鎖」來實現的。
比如你從我這兒買一個音樂,這個音樂通過密碼訪問,那么在交易合約中,我把音樂的訪問密碼也變成其中的一個key,如果要達成交易,這個key必須讓你知道;而一旦你知道,錢就支付給我了。
Asproex(阿波羅)開啟玩UNI得空投活動:據官方消息,在9月17日Asproex(阿波羅)正式上線UNI/USDT交易對后。Asproex(阿波羅)平臺今日宣布,將于9月19日20:00-9月22日24:00開啟“玩UNI送全網最高空投”活動。
用戶可通過邀請新用戶注冊Asproex(阿波羅)并完成UNI購買,及充值UNI等方式獲得創世移民。移民身份是Asproex(阿波羅)金融生態的部分,擁有移民身份將獲得算力加成、加速線性解鎖、新產品優先使用權等諸多權益。
Asproex(阿波羅)作為一家離岸銀行控股持牌交易平臺,涵蓋CTO(Corporate Token Offering)企業通證上市、合約跟單、ETT指數通證、數字礦業、Digital Bank板塊并持有5國合法牌照,為全球中小微企業提數字化上市一站式服務。[2020/9/19]
Q:哈希條件和key有什么不同?
A:你可以理解成一個東西,它們的作用是一樣的。哈希條件是我知道一個value,把value哈希之后得到一個哈希結果。那么在合約中,就是設置一個條件,誰能在寫交易的時候把這個哈希結果打進來,這錢就歸誰。只要我有這個value,就有哈希結果,也可以理解成有一個key。
Q:簡單而言,可不可以認為比特幣的智能合約是通過多簽加上時間鎖來實現的?
A:可以,前邊講過用key、哈希條件、時間鎖實現智能合約,哈希條件也可以當作多重簽名中的一個key來看待;時間鎖則是一個關于區塊高度的條件。
Q:時間鎖在實現智能合約中的重要性是什么?
A:時間鎖很重要,如果沒有時間約束的話,很多協議是沒法實現的。正是因為現在有了哈希條件、時間鎖,閃電網絡這種合約才能跑起來。
江卓爾:減半行情會在BTC減半后開啟,BCH會受到連帶效應:BCH迎來其第一次減半,BCH社區組織了一場直播,萊比特礦池創始人江卓爾在直播中表示:1、減半不是消息性利好,而是持續性利好;2、因為BTC占據多大多數市場份額,減半行情會在BTC減半后開啟,BCH會受到連帶效應;3、疫情對加密貨幣是巨大利好,比特幣就是為了對抗政府發鈔誕生,在疫情背景政府開閘放水時,加密貨幣更顯其價值;4、BCH的優勢在于,去中心化程度介于BTC和BSV之間;5、建議購買S19礦機挖礦,減半后小算力礦機關機,這款目前最好的礦機可以用低廉的成本挖出更多比特幣。(吳說區塊鏈)[2020/4/8]
比如說閃電網絡,我們兩個人共同出錢,把錢凍結到一個共管的賬號里,然后在鏈下互相支付,當要去結算時一方不合作了怎么辦?假設我們吵架了,你的錢你不要了,但我的錢我也拿不到。有了時間鎖就好處理了,我設一個超時時間,過了超時時間錢就是我的,我就可以拿走了。
三、比特幣與以太坊智能合約的差別
Q:對應于比特幣用腳本實現智能合約,以太坊是用什么實現智能合約的?
A:以太坊有一個智能合約語言。其實比特幣的腳本也可以理解成一種語言,只不過比較簡單;比特幣腳本執行也可以理解成有一個虛擬機,只不過虛擬機的實現比較簡單。既然都是虛擬機執行指令,那么以太坊的改變在哪里?
我總結以太坊帶來的主要改變有三點:
1.以太坊虛擬機指令的表達能力更強。簡單理解的話,可以認為以太坊提供的指令更低級,用低級的指令組合成高級指令,而比特幣是直接提供高級指令,其指令是有限的。另外,以太坊支持跳轉等指令,能表達出循環等邏輯,也就是大家常說的圖靈完備。2.以太坊引入了gas機制。在以太坊上可以隨意寫合約邏輯,gas機制保證最后執行的時候有一個上限限制,這除了解決停機問題外,還能限制浪費資源,讓腳本的執行成本跟付出的費用間有個關系。3.以太坊上的合約有狀態,而比特幣上的合約不能有自己的狀態。這代表著:第一,比特幣上的合約是不能自己生成自己的狀態的,比如說在這次腳本里輸出一個東西,在下次腳本中使用是不行的,比特幣的腳本都是一次性的,只對這個交易起作用;第二,比特幣上的腳本是不能直接讀取鏈上已有的狀態的,比如時間鎖依賴鏈上的區塊高度,需要特殊指令支持,嵌入到腳本里的其他狀態更無法讀取。
Q:圖靈完備會帶來什么差別?
A:其實以太坊也不是說真圖靈完備,因為它有gas的限制,不可能用太復雜的邏輯。
圖靈完備的好處是它的擴展能力更強,表達能力更強。因此以太坊提供的實驗的自由度要遠大于比特幣,這也是以太坊上各種實驗項目多的原因。
比特幣是一種保守策略。我就這么多指令,我在別的地方先實驗,實驗好了,覺得需要支持這個指令,就增加這個指令。比如說為了支持原子交換以及支付通道,增加了哈希時間鎖定協議,可以鎖定一個時間段。
比特幣為什么不擴充那么多指令?因為不同指令的資源消耗是不一樣的,如果表達很復雜的腳本,執行這個交易的成本就會很高,會消耗資源、影響整個網絡。
Q:合約狀態會帶來什么差別?
A:比特幣的狀態全是在鏈下生成的,就是說生成交易的時候就要把這個狀態寫好,鏈上只承載交易的數據,其它額外的數據寫不進去。
比如你很難在比特幣上發自己的幣。在比特幣上發的幣都是染色幣,染色幣是在腳本里嵌入一些自己的數據結構,但腳本不能讀嵌入的這個數據結構,所以也不能通過腳本對這個數據結構做驗證,需要再做一個網絡校驗,看寫進去的這個數據是不是合法的。
所有的染色幣都是基于這個機制實現的,它不是像以太坊那樣直接發一個token,然后通過合約來校驗。
比特幣之所以采用這種設計,本質在于它是不歡迎其他的數據寫上去的,因為對比特幣網絡來說,承載額外的數據是有成本的,這種數據還得永久保存,而用戶只付費一次。所以比特幣不提供自定義狀態的存儲,這不是它的路線,通過op_return嵌入自定義數據可以理解為一種hack行為,并不是比特幣提供op_return的本來目標。
其實這能夠看出比特幣和以太坊在設計思路上的區別:你可以把比特幣理解成一個中立的銀行,它只提供資產加鎖、解鎖的機制,誰有鑰匙資產歸誰,它對其他的條件都不關心;并且每一筆資產都是獨立的鎖,它也不關心資產之間的關系。比特幣的智能合約并不是一段代碼,而是一系列操作鎖的協議。
而以太坊的的設計思路是任何合約都可以表現為一系列的交易,后面的交易和前置交易的狀態是有關聯的,所以它提供一種通用的追蹤和更新歷史狀態的機制,而更新狀態的邏輯和條件就由用戶自己去創造。以太坊黃皮書里的世界狀態的公式很好的表達了這種思路。
這兩種思路其實各有優劣,和設計者的目標以及對世界的抽象有關系。
Q:比特幣和以太坊的智能合約還有其他不同嗎?
A:UTXO模型與Account模型的不同,也會給兩者智能合約的實現帶來差異。
在UTXO模型中,每一筆錢都有一個標記,使用的時候需要明確知道使用的是哪一筆錢;Account模型則相當于把用戶所有的UTXO合并成一個大的UTXO,使用的是這個默認的UTXO。這帶來幾點不同:
1.在Account模型下寫合約比較簡單,只需要說轉多少錢,不需要指明轉的是哪一筆錢;2.Account模型可以提前對未來的收益進行約束,也就說這筆錢還沒到合約賬戶,但可以部署合約去約束它該怎么花;3.由于Account模型相當于合并UTXO,所以轉賬時不能直接設置解鎖條件,必須先部署一個合約。
當然,UTXO模型和Account模型都是在演化的,有一些項目會對它們做出改變,有機會我會寫文章詳細分析。
四、比特幣智能合約案例
Q:怎么理解閃電網絡本身就是一種智能合約?
A:你可以說閃電網絡是一個協議,也可以說它是比特幣上的一種智能合約。閃電網絡的合約主要解決兩個人如何共同鎖錢,以及如果一方作弊、不合作等等情況下怎么辦的問題,它是通過前邊說的三把鎖來實現的。
Q:在閃電網絡上實現智能合約又是怎樣的一個過程?
A:閃電網絡實際上是兩個人之間的支付通道,現在只支持互相轉賬。我們嘗試在支付通道之上嵌入了一個虛擬機,就可以執行比較完備的智能合約,比如游戲。
通道雙方可以壓一筆BTC,然后去玩游戲,贏的一方得BTC;如果玩的有分歧,可通過仲裁系統去仲裁。仲裁系統相當于一個法院,可以是一個側鏈,或是一個雙方信任的機構運行的節點,或者是仲裁者市場等等。仲裁系統保留了雙方的解鎖鑰匙,它仲裁之后把鑰匙給贏的一方。
由于閃電網絡的資產是定向的,所以仲裁者只能決定哪個用戶得到BTC,但自己不能拿走用戶的BTC,即便是有聯合作弊的可能,但作弊成本要比托管模式高。
Q:通過閃電網絡實現智能合約,與通過類似Liquid的側鏈實現智能合約,有什么不同?
A:閃電網絡上的智能合約是通道雙方的鏈下節點執行的,互相校驗,產生分歧時需要有一個仲裁系統來仲裁。而側鏈本身就有共識機制,有多個節點來執行和校驗合約,所以兩者在執行機制上是不一樣的。
在側鏈實現智能合約的方式與在以太坊上實現智能合約的方式類似,但當它與主鏈協同的時候,需要通過比特幣的加鎖、解鎖的機制。
結束語
作為加密貨幣,比特幣似乎有能力為DeFi的發展提供一個更好的空間,因為它凝聚了最多的共識,也承載著最高的價值和流動性,它是最受信任的加密資產。
那么作為一種系統,比特幣是否支持DeFi的實施?在本文中我們探討了比特幣智能合約的實現機制,并把它與以太坊智能合約進行了一些比較。比特幣上的DeFi不僅是可能的,而且會隨著多簽功能的強大變得更加完備。
也許我們可以期待以比特幣為核心元素的去中心化金融服務的到來。
Tags:比特幣以太坊SOVSOVI比特幣行情分析及最新消息10.0ok以太坊幣價格今日行情價格美元SoverainSOVI幣
周報摘要 上周全球數字貨幣資產日均市值為2684.94億美元,下跌3.03%,日均交易量523.62億美元,下跌3.34%。市值TOP200資產整體下跌3.54%,四大領域除行業公鏈全部下跌.
1900/1/1 0:00:00尊敬的WBFex用戶: 目前WBFex交易所正在和YTNB項目方進行技術協同,經與YTNB項目方協商,我們將于2019年8月23日20:30重新上線YTNB,并恢復YTNB/USDT交易對.
1900/1/1 0:00:00對于數字貨幣,央行給予了巨大關注,在過去一個月內4次公開提及數字貨幣。央行于8月6日發布2018年全年工作報告:《中國人民銀行年報2018》。報告包含137頁內容,其中4次提數字貨幣.
1900/1/1 0:00:00親愛的用戶:您好!ZG.COM將于2019年8月24日14:00開放NKS的充值和提幣業務,于8月25日14:00開啟NKS/USDT交易對.
1900/1/1 0:00:008月21日,幣安CEO趙長鵬發推特稱,“新的區塊鏈已在很大程度上解決了速度及容量問題,我們需要專注于應用.
1900/1/1 0:00:00親愛的用戶: Binance將于2019年08月23日18:00上線MTL/USDT交易市場,邀您體驗!風險提示:數字貨幣是一種高風險的投資方式,請投資者謹慎購買,并注意投資風險.
1900/1/1 0:00:00