以太坊智能合約存儲大量數據
1. 以太坊技術系列-以太坊數據結構
本篇文章和大家介紹一下以太坊的數據結構,上篇文章我們提到,以太坊為了實現智能合約這一功能,使用了基於賬戶的模型。我們來看看以太坊中數據結構。
既然是基於賬戶的模型,我們需要通過賬戶地址找到賬戶的狀態。就像通過銀行卡號可以找到你在銀行中的各種信息一樣。最簡單的想法當然是一個簡單的哈希表 key是賬戶地址 value是賬戶狀態。但這里有個問題解決不了。
輕節點如何校驗賬戶合法性?
上篇我們說過,區塊鏈中有2類節點,全節點和輕節點,輕節點只會存儲block header,所以輕節點如何才能校驗賬號是否合法呢?
這個思路和我們平時用的md5校驗一致,我們會對區塊內的信息進行hash運算從而得出區塊內信息唯一確定的值,區塊鏈所有節點中這個值都是相同的。
在這個過程中我們用到了一種數據結構Merkle Tree(哈希樹),我們先看下Merkle Tree(哈希樹)的示意圖。
上篇文章說到區塊鏈中的鏈表(哈希鏈)和我們平時常見鏈表不同的是將指針從地址改為了hash指,這里也一樣,哈希樹和二叉樹的區別有2個
1.將地址改為了哈希值
2.只有葉子節點存儲數據
回到之前的問題輕節點是如何校驗1個賬戶或交易是否是在鏈上的呢?
整個流程如上圖所示
1.輕節點需要判斷1個賬號是否合法
2.輕節點由於只存儲block header,所以拿到1個賬號的時候會向全節點發出請求
3.全節點存儲了所有賬戶狀態,將賬戶路徑中的需要計算用到的hash值返回給輕節點
4.輕節點本地進行計算根hash值,如果計算結果和自己存儲一致則賬戶合法,不一致則不合法。
那以太坊中的賬戶信息的數據結構就是這樣嗎?
直接用這樣的數據結構來存儲賬戶信息會有2個問題
查找困難
生成hash值不確定
第1個問題應該比較容易發現,在這個樹中尋找1個賬號需要的復雜度是O(n),因為沒有任何順序。
第2個問題其實也是因為無序導致的,無序的組合每個節點針對同一批賬戶生成的hash值不一致,這就導致無法達成共識。
既然2個問題都和順序有關,那我們類似二叉排序樹一樣,使用哈希排序樹是不是就可以解決問題了呢?
使用排序樹後會帶來另外1個問題
插入困難
因為要維持樹是有序的,很可能帶來樹結構的很大變動。
以太坊中使用了另外一種數據結構字典樹。和哈希樹不同,字典樹應該是很多地方都有使用。我們簡單來看下字典樹的結構。
字典樹能夠較好地解決哈希樹的2個缺點1.查找困難 2.生成的hash值不確定以及排序二叉樹的1個缺點 插入困難。
但字典樹我們可以看到可能樹的深度可能由於部分元素導致整棵樹深度非常深。
這時我們可以進一步優化,將相同路徑進行壓縮。這就是壓縮字典樹。
將哈希樹和壓縮字典樹結合,就可以得到以太坊存儲賬戶的最終數據結構-MPT。
將壓縮字典樹裡面的指針從地址改為指針,並且將數據存儲在葉子節點中即可。
介紹完狀態樹的數據結構,我們接下來討論1個問題,區塊中存儲的賬戶狀態是什麼樣的范圍。有2種選擇。
只保存當時區塊中產生交易的賬戶狀態。
保存全局所有的賬戶。
我們可以看下這2種方式,無非就是空間和時間的平衡,只保存當前區塊產生的交易意味著是做懶載入(需要的時候才去尋找賬戶),在區塊鏈中這個代價是非常大的,因為尋找的賬戶之前從未交易過,這樣會遍歷整個區塊鏈。另外一種保存全局的賬戶方式雖然看起來空間消耗較大,但查找快捷,而且空間的問題我們可以通過其他方式優化。所以最終以太坊選擇了第2種每個區塊都報錯全局所有賬戶的方式。
我們來看下以太坊中是如何保存狀態樹的。
可以看到以太坊中雖然每個區塊都保存了全部賬戶,但是會將未發生變化的賬戶狀態指向前1個節點,本身只存儲發生變化的狀態,這樣可以較大程度優化空間佔用。
介紹完以太坊中比較復雜的狀態樹後,我們繼續來看看以太坊中的另外兩棵樹,交易樹和收據樹。
首先介紹一下,為什麼需要交易樹&收據樹。
1.交易樹
雖然以太坊是基於賬戶的模型,但是就像銀行不僅會存儲銀行卡的余額,還會存儲卡中的每筆錢怎麼來的以及怎麼花的。交易樹中就存儲著當前區塊中的包含的所有交易。
2.收據樹
由於智能合約的引入增加了不少復雜性,所以以太坊用收據樹存儲著一些交易操作的額外信息。比如交易過程中執行日誌就包含在收據樹中方便查詢。收據樹和交易樹是一一對應的。每發生一次交易就會有一次收據。
和狀態樹不同交易樹和收據樹只維護當前區塊內發生的交易,因為當時區塊發生交易時不需要再去查找另外1個交易,也就之前需要可能遍歷整個區塊鏈的查找操作了。
由於以太坊中的出塊速度較快,我們進行一些查詢一些符合條件交易的時候會面臨大量數據遍歷困難的問題。收據樹中引入了布隆過濾器可以幫助我們有效緩解這一困難。
布隆過濾器將大集合中每個元素進行hash運算映射到1個較小的集合,這時再來1個元素要判斷是否在大集合的時候,不需要遍歷整個大集合,而是去進行hash運算去小集合中尋找是否存在,如果不存在,肯定不在大集合中,如果存在則不能說明任何問題。
如上圖所示,布隆過濾器只能證明某1個元素不在集合中,不能證明1個元素在結合中。
以太坊中如果我們要在較多區塊中尋找某1個交易,則可以利用布隆過濾器,過濾掉肯定不存在目標交易的區塊,然後進入收據樹內繼續利用布隆過濾器篩選,剩下的才是可能的目標交易的交易,進行一一比對即可。
我們介紹了以太坊的核心數據結構,狀態樹&交易樹&收據樹,他們都是使用相同的數據結構-哈希壓縮字典樹。但狀態樹是維護1顆全局賬戶樹,交易樹和收據樹則是維護本區塊內的交易或收據。
介紹完數據結構後,後面我們會用幾篇文章來介紹以太坊中的一些核心演算法,比如共識機制,挖礦演算法等。
2. 區塊鏈應用開發找哪家好
區塊鏈技術是通過2008年由中本聰編寫的題為「比特幣:對等電子現金系統」的論文宣布的。有趣的是,本文沒有專門使用「區塊鏈」這個詞。
本文討論的是「純粹的電子現金版本」,其中「網路通過將交易哈希到持續的基於散列的工作證明鏈中來標記交易時間,創建一條無需重做證明即可更改的記錄」工作的」。
開源的PT-BSC(區塊鏈安全控制)將區塊鏈定義為點對點網路,通過將它們散列到正在進行的基於散列的工作量證明鏈中來記錄時間戳記,形成不能成為記錄的記錄改變而不重做工作證明。區塊鏈可以被授權,無許可權或混合使用。
另一方面,分布式賬本被定義為對等網路,該網路使用定義的共識機制來防止修改有序的時間戳記錄序列。共識機制包括證明利益,聯合拜占庭協議等。
最流行的區塊鏈平台
1.以太坊
以太坊是一個開源的Blockchain平台,運行智能合約並為其創建提供編程工具。在2013年由Vitalik Buterin提出後,該平台簡化了下一代分散式應用程序(DApps)和在線合同協議的開發。
以太坊允許設計和發行加密貨幣和可交易的數字令牌。更重要的是,您可以創建自己的DAO(民主自治組織),例如,一個虛擬組織,通過成員投票解決各種問題。
該平台提供了許多有用的功能,包括圖靈完整語言,命令行工具(內置於Go,C ++,Python,Java等)以及Ethereum錢包,這是最後一個支持和保護加密資產並簡化智能合約的開發者發展。
2. BigChainDB
BigChainDB是一個開源的分布式賬本系統,專為存儲大量數據而設計,並支持開發人員部署區塊鏈概念驗證和應用程序。
該資料庫提供分散控制,低延遲,不變性,強大的查詢功能以及高速的事務處理。
該系統沒有自己的貨幣,但允許發行和轉讓任何資產,代幣和加密貨幣。BigChainDB支持自定義數字資產並在事務級別建立訪問許可權。
BigChainDB基於聯邦共識模型,一個擁有投票許可權的節點聯盟。BigChainDB支持公共和私人網路,有許多用例,包括知識產權,人力資源,政府和土地登記等領域。
此外,深入了解比特幣,以太坊和BigchainDB的比較。
3.Blockchain Hyperledger Fabric
Blockchain Hyperledger Fabric是由The Linux Foundation主辦並於2016年發布的最受歡迎的Hyperledger項目之一。Hyperledger Fabric是Go編寫的,使用Docker容器實現智能合約。
該平台是基於模塊化架構構建基於區塊鏈的解決方案的基礎,並支持使用一個或多個網路。為了確保高水平的靈活性,可靠性和可擴展性,Hyperledger Fabric最適合開發企業解決方案。
考慮到有用的功能,它包含共享機密信息和交易背書政策的渠道。此外,交易還包括所有簽署同行的簽名,並提交給訂購服務。Hyperledger Fabric是創建授權區塊鏈的最佳平台之一。
4.Hyperledger Cello
Hyperledger Cello是一個區塊鏈平台和操作系統,也是Linux基金會託管的Hyperledger項目之一。Hyperledger Cello的目標是通過向Blockchain生態系統提供按需「即服務」部署模式,最大限度地減少設計和管理區塊鏈的工作量。
Hyperledger Cello使開發人員能夠從頭創建區塊鏈即服務(BaaS)平台,並管理區塊鏈的生命周期。更重要的是,通過Cello,他們可以在裸機,虛擬雲和容器集群之上維護一組網路(大提琴支持Docker,Swarm和Kubernetes)。
5. Hyperledger鋸齒湖
Hyperledger Sawtooth Lake是一個區塊鏈平台,代表支持許可和無許可開發的企業解決方案。該平台幫助軟體工程師更輕松地創建,部署和運行分布式賬本系統和應用程序。
Sawtooth Lake是一個用Python編寫的模塊化套件,提供智能合同抽象,允許開發人員以他們想要的編程語言編寫合同邏輯。Hyperledger Sawtooth中的交易業務邏輯與共識層分離。
共識機制稱為經過時間證明(PoET),並使用內置於最新一代英特爾處理器中的SGX可信計算模塊。
對於鋸齒湖有很多有用的應用。例如,在供應鏈管理和海鮮配送中,它可以解決諸如食物儲存條件不當,非法捕撈行為和海鮮欺詐等問題。
此外,Hyperledger Sawtooth可以確保創建和交換數字資產的安全基礎設施。了解一下,鋸齒湖及其解決方案如何在不同領域發揮作用。
6. Hydrachain
HydraChain是Ethereum Blockchain平台的開源擴展,為開發和部署許可的分布式分類帳提供支持。
HydraChain完全兼容以太坊協議,並提供了一個基礎設施來創建Python中的智能合約。Hydrachain有許多工具可以縮短開發時間並提高調試功能。
重要的是,HydraChain可以確保高水平的定製:系統的各個方面可以輕松配置以滿足客戶的需求。例如,在創建智能合約時,交易費用,天然氣限額,創世分配和封鎖時間等事項可以輕松定製。
7. Corda
Corda是一個開源的Blockchain平台,用於構建許可的分布式賬本系統。該項目由R3聯盟創建,結合了大型銀行並允許管理各方之間的法律協議。
像其他分布式分類帳一樣,R3 Corda提供安全的數據存儲和不可變的數據記錄。值得注意的是,只有Corda才能開發交互操作的區塊鏈網路,這些網路在嚴格的隱私中進行交易。目前,它可能是唯一一個有可插拔共識的分布式賬本平台。
8. Multichain
Multichain是一個開源分布式賬本系統,基於比特幣區塊鏈,專為處理多幣種金融交易而設計。
該平台提供各種級別的訪問控制和許可權,並實現快速解決方案部署。在Multichain中,各種網路可以同時在一台伺服器上。
9.開鏈
作為一個開源的區塊鏈平台,Openchain以強大,安全和可擴展的方式為數字資產的發布和管理而設計。該技術包括智能合約模塊,統一的API,以及由於分級賬戶系統的多級控制和訪問許可權。
在Openchain中,每筆交易都進行了數字簽名(就像比特幣一樣),共識機制由分部共識引入。你應該注意到Openchain是免費的,所以你不需要花錢加密貨幣來使用它。
10.鏈核心
Chain Core是一個企業級的區塊鏈平台,由Chain Protocol和鏈接協議設計,用於在許可的區塊鏈網路上發布,傳輸和管理數字資產。此外,該平台還使開發人員能夠從頭開始創建金融服務。
在連鎖核心中,本地數字資產涉及貨幣,證券,衍生品,禮品卡和忠誠點。該平台提供基於角色的許可權訪問管理,以便在網路中運行。Chain Core具有聯合共識,並提供智能合同支持,交易隱私和多重簽名帳戶支持。
3. 以太坊智能合約是什麼
以太坊是一個分布式的計算平台。它會生成一個名為Ether的加密貨幣。程序員可以在以太坊區塊鏈上寫下「智能合約」,這些以太坊智能合約會根據代碼自動執行。
以太坊是什麼?
以太坊經常與比特幣相提並論,但情況卻有所不同。比特幣是一種加密貨幣和分布式支付網路,允許比特幣在用戶之間轉移。
相關:什麼是比特幣?它是如何工作的?
以太坊項目有更大的目標。正如Ethereum網站所說,「以太坊是一個運行智能合約的分布式平台」。這些智能合約運行在「以太坊虛擬機」上,這是一個由所有運行乙太網節點的設備組成的分布式計算網路。
「分布式平台」部分意味著任何人都可以建立並運行以太坊節點,就像任何人都可以運行比特幣節點一樣。任何想要在節點上運行「智能合約」的人都必須向Ether中的這些節點的運營商付款,這是一個與以太坊相關的加密貨幣。因此,運行乙太網節點的人提供計算能力,並在乙太網中獲得支付,這與運行比特幣節點的人提供哈希能力並以比特幣支付的方式類似。
換句話說,雖然比特幣僅僅是一個區塊鏈和支付網路,但以太坊是一個分布式計算網路,其區塊鏈可以用於許多其他事情。以太坊白皮書中提供了詳細信息。
以太是什麼?
乙太網是與以太坊區塊鏈相關的數字標記(或者說就是加密貨幣)。換句話說,以太是代幣,以太坊是平台。但是,現在人們經常交替使用這些術語。例如,Coinbase允許你購買以太坊代幣(Ethereum),即代表以太幣代幣。
這在技術上就是「altcoin」,這實際上意味著一個非比特幣加密貨幣。和比特幣一樣,Ether也受到分布式區塊鏈支持 - 在這種情況下是以太坊區塊鏈。
想要在以太坊區塊鏈上創建應用程序或以太坊 智能合約的開發人員需要乙太網代幣來支付節點來託管它,而基於以太坊的應用程序的用戶可能需要乙太網來支付這些應用程序中的服務費用。人們也可以在以太坊網路之外銷售服務,並接受乙太網支付,或者可以在交易所以現金形式出售以太幣代幣 - 就像比特幣一樣
4. 一文讀懂以太坊—ETH2.0,是否值得長期持有
這幾天一直在看關於ETH倫敦升級方面的資料,簡單的聊一下,在加密貨幣的世界裡,無論是投資機構、區塊鏈應用開發者、礦機商,還是個人投資者、硬體供應商、 游戲 行業從業者等等,提起以太坊,或多或少都會有一些了解。
一方面取決於以太坊代幣 ETH 本身的造富效應。從 2014 年首次發行以來,投資回報率已經超過 7400 倍。
另一方面,以太坊作為應用最廣泛的去中心應用編程平台,引來無數開發者在其之上開發應用。這些應用不僅產生了巨大的商業價值,伴隨 DEFI 生態、NFT 生態、DAO 生態蓬勃發展,也給 ETH 帶來了更多使用者。
隨著「倫敦升級計劃」臨近,ETH 再次聚集所有人的關注目光。
以太坊 2.0 到底是什麼?包含哪些升級?目前進展如何?
以太坊 2.0 到來,會對現有以太坊生態的去中心化應用產生哪些影響?
ETH 是否值得持續投資?看完相信你會有自己的判斷。
如果將搭建應用比作造房子,那麼以太坊就提供了牆面、屋頂、地板等模塊,用戶只需像搭積木一樣把房子搭起來,因此在以太坊上建立應用的成本和速度都大大改善。以太坊的出現,迅速吸引了大量開發者進入以太坊的世界編寫出各類去中心應用,極大豐富人們對去中心應用場景的需求。
以太坊應用開發模型示意
以太坊與ETH
現有市場的加密貨幣,只是在區塊鏈技術應用在某一場景下的單一代幣。
以太坊也不例外,它的完整項目名稱是「下一代智能合約與去中心化應用平台」,Ether(以太幣)是其原生加密貨幣,簡稱 ETH。
ETH 除了可以用來與各種類型數字資產之間進行有效交換,還提供支付交易費用的機制,即我們現在做鏈上操作時所支付的 GAS 費用。GAS 費用機制的出現,即保護了以太坊網路上創建的應用不會被惡意程序隨意濫用,又因為 GAS 收入歸礦工所有,讓更多的用戶參與到以太坊網路的記賬當中成為礦工,進一步維護了以太坊網路安全與生態發展。
與 BTC 不同的是,ETH 並沒有採用 SHA256 挖礦演算法,避免了整個挖礦生態出現由 ASIC(專用集成電路)礦機主導以至於大部分算力被中心化機構控制所帶來的系統性風險。
以太坊最初採用的是 PoW(Proof of Work)的工作量證明機制,人們需要通過工作量證明以獲取手續費回報。我們經常聽說礦工使用顯卡挖礦,他們做的就是 POW 工作量證明。顯卡越多,算力越大,那麼工作量就越大,收入也就越高。
當前,整個以太坊網路的總算力大約為 870.26 TH/s,用我們熟悉的消費級顯卡來對比,英偉達 RTX 3080 的顯卡算力大約為 92-93 MH/s,以太坊網路相當於 936 萬張 3080 顯卡算力的總和。
以太坊白皮書內非常明確提到之後會將 PoW 工作證明的賬本機制升級為 POS (Proof of Stake)權益證明的賬本機制。
ETH經濟模型
與 BTC 總量 2100 萬枚不同,ETH 的總量並沒有做上限,而是在首次預售的 ETH 數量基礎上每年增發,增發數量為 0.26x(x 為發售總量)。
但也不用擔心 ETH 會無限通脹下去,長期來看,每年增發幣的數量與每年因死亡或者粗心原因遺失幣的數量大致相同,ETH 的「貨幣供應增長率」是趨近於零的。
ETH 分配模型包含早期購買者,早期貢獻值,長期捐贈與礦工收益,具體分配比例如下表。
現在每年將有 60,102,216 * 0.26 = 15,626,576 個 ETH 被礦工挖出,轉成 PoS 後,每年產出的 ETH 將減少。
目前,市場上流通的 ETH 總量約為 116,898,848 枚,總市值約為 2759 億美元。
以太坊發展歷程
1. 邊境階段(2015年):上線後不久進行了第一次分叉,調整未來挖礦的難度。此版本處於實驗階段,技術並未成熟,最初只能讓少部分開發者參與挖礦,智能合約也僅面向開發者開發應用使用,並沒有用戶參與,以太坊網路處於萌芽期。
邊境階段 ETH 價格:1.24 美元。
2. 家園階段(2016年):以太坊主網於 2016 年 3 月進行了第二次分叉,發布了第一個穩定版本。此版本是第一個成熟的正式版本,採用 100% PoW 證明,引入難度炸彈,隨著區塊鏈數量的增加,挖礦難度呈指數增長,網路的性能大幅提升,以太坊項目也進入到快速成長期。在」家園「版本里,還發生了著名的」The DAO 攻擊事件「,以太坊被社區投票硬分叉為以太坊(ETH)與以太經典(ETC)兩條鏈,V 神站在了 ETH 這邊。
家園階段 ETH 價格:12.50 美元。
3. 都會階段(2017~2019年):都會的開發又分為三個階段,升級分成了三次分叉,分別是 2017 年 10 月的「拜占庭」、2019 年 2 月底的「君士坦丁堡「、以及 2019 年 12 月的「伊斯坦布爾」。這些升級主要改善智能合約的編寫、提高安全性、加入難度炸彈以及一些核心架構的修改,以協助未來從工作量證明轉至權益證明。
在都會階段,以太坊網路正式顯現出其威力,正式進入成熟期。智能合約讓不同鏈上的加密貨幣可以互相交易,ERC-20 也在 2017 代幣發行的標准,成千上萬個項目在以太坊網路進行募資,被稱作「首次代幣發行(ICO)」,相信很多幣圈的老人都是被當時 ICO 造富效應帶進來的。到 2019 年,隨著DeFi 生態的崛起,金融產品正式成為以太鏈上最大的產業。
都會階段 ETH 價格:151.06 美元。
4. 寧靜階段(2020-2023年):與都會分三階段開發相同,寧靜階段目前預計分成三次分叉:柏林(已完成)、倫敦(即將到來)、以及後面的第三次分叉。「寧靜」階段又稱為「以太坊 2.0」,是項目的最終階段,以太坊將從工作量證明方式正式轉向權益證明,並開發第二層擴容方案,提高整個網路的運行效率。
寧靜階段可以說是以太坊網路的集大成之作,如果說前個三階段只是讓以太坊的願景展現的實驗平台,寧靜階段之後的以太坊,將正式成為完全體,不僅有完備的生態應用,超級快的處理速度,眾多網路協同發展,而且 PoS 機制會非常節約能源,真正代表了區塊鏈技術逐漸走向成熟的標志。
寧靜階段 ETH 價格:2021 年 4 月 15 日完成的柏林階段,當天價格為 2454 美元。
即將到來的倫敦協議升級
以太坊生態
以太坊的生態發展,從屬性劃可分為兩大類:一是以太坊網路生態應用建設,二是以太坊網路擴容建設。兩者相互融合,互相成就,應用需要更健壯強大的網路作為承載,網路需要功能完善的應用場景服務用戶。
先說應用生態,以太坊的生態我們又可以分為以下幾大類:
1. 去中心化自製組織(DAO)生態
什麼是去中心化自製組織?還是以我們熟悉的比特幣舉例:比特幣目前市值七千多億美金,在全球資產市值類排名第九,但比特幣並不是某一公司發布的產品,也沒有特定公司組織招聘人員進行維護。比特幣現有的一切,都源於比特幣持有者、比特幣礦工自發形成的分布式組織,他們通過投票方式規劃比特幣發展路線,自發參與維護比特幣程序與網路 —這僅僅因為只要擁有比特幣,所有人都是比特幣網路建設中的受益者,一切維護都源於自身的利益關系。
比特幣的發明與成功運行,突破了由荷蘭人創建、至今流行 400 多年的公司商業架構,開創出一種全新的、無組織架構的、全球分布式的商業模式,這就是 DAO。
再說回以太坊,以太坊的 DAO 可以由智能合約編寫,用戶自定義應用場景。簡單說就是我們規定出程序執行條件與執行范圍,真實世界裡只要觸發設定好的條件,程序就會自動執行運行,且所有過程都會在以太坊的網路上進行去中心化公開驗證,不需要經過人工或者任何第三方組織機構確認。
以太坊 DAO 生態演化出許多商業場景,有慈善機構使用 DAO 建立公開透明的捐款與使用機制,有風投機構使用 DAO 建立公平分配的風險基金。
以太坊生態的很多項目都採用 DAO 自治,代表項目有:Uniswap,AAVE,MakerDAO,Compound,Decred,Dash 等。
2. 去中心化金融(DEFI)生態
在傳統商業世界裡,我們如果需要借錢、存錢,或者買某一公司股票,或者做企業貸款、融資,只要是進行金融活動,總離不開與銀行、證券機構、會計事務所這些金融機構打交道。
而在去中心的世界裡,區塊鏈本質就是集合所有人交易記錄且公開的大賬本,我們可以非常容易的追溯到每一個錢包地址發生過的每一筆交易,查詢到任意一個錢包地址的余額信息,從而對錢包地址里的資產做評估。
舉個例子:全世界個人貸款最貴的國家是印度,印度的年輕人房貸利率目前是 8.8%,最高曾經到過 20%;與此對應,全世界個人存款利率最低的國家是日本,日本政府為了鼓勵民眾消費,在很長一段時間里銀行存款利率是負值,日本人在銀行存款不僅沒有利息,還要給銀行交保管費。理論上,如果日本人將自己的存款借與印度人,雙方都能獲得利益最大化,但現實生活中這樣的場景很難發生。一是每個國家都有外匯管制,日本人的錢並不容易能給到印度人,二是印度人的信用如何日本人也不好評估,大家沒有統一標准,萬一借出去的錢無法歸還,不能沒了收益還要蒙受損失。
但在去中心的世界裡,這樣的事情就簡單的多。
如果印度人的錢包地址里有比特幣,我們就可以利用智能合約,印度人將自己的比特幣質押進去,根據比特幣當時的價格,系統自動給印度人一個授信額度,印度人就可以拿著這個額度去和日本人借款,並規定好還款的周期與利率。如果印度人違約,合約自動將印度人質押進去的比特幣扣除,優先保障日本的權利,這樣,日本人不用擔心安全問題放心享受收益,印度人也有了更多的款項做為流動資金。
這個例子就是去中心金融的簡單應用,實際上,這就是我們參與 DEFI 挖礦是質押理財的原理 —— 當然真正應用實現演算法與場景要復雜的多。
DEFI 根據場景不同,又可以分為很多賽道,比如穩定幣、預言機、AMM 交易所、衍生品、聚合器等等。
DEFI 代表項目有:Dai,Augur,Chainlink,WBTC,0x,Balance,Liquity 等。
3. 非同質化代幣(NFT)生態
世界名畫《蒙娜麗莎》,只有達·芬奇的原版可以展覽在法國盧浮宮博物館,哪怕現代的技術可以無比精細地復刻出來,仿品都不具備原版的收藏價值。
這就是 NFT 的應用場景。NFT是我們可以用來表示獨特物品所有權的代幣,它們讓我們將藝術品、收藏品甚至房地產等現實事物唯一代幣化。雖然文件(作品)本身是可以無限復制,但代表它們的代幣在鏈上可以被追蹤,並為買家提供所有權證明。
相比現實中實物版權、物權的雙重交割相比,NFT 只需要交割描述此物品的唯一代幣。NFT 作品往往存儲在如 IPFS 這樣的分布式存儲網路里,隨用隨取,永不丟失,加之交割簡單方便,很快吸引了大量玩家與投資者收藏轉賣,NFT 出現也給藝術家提供了全新的收入模式。
類似 DEFI 生態,NFT 生態根據應用場景不同也產生了不同賽道,目前比較火熱的賽道有 NFT 交易平台,NFT 游戲 平台,NFT 藝術品平台, NFT 與 DEFI 結合在一起的金融平台。
NFT 代表項目有:CryptoKitties,CryptoPunks,Meebits,Opensea,Rally,Axie Infinity,Enjin Coin,The Sandbox 等。
4. 標准代幣協議(ERC-20)生態
與 NFT 非同質化代幣所對應的,就是同質化代幣。比如我們使用的人民幣就是一種同質化代幣,我們可以用人民幣進行價值交換,即使序號不同也不影響其價值,如果面額相同,不同的鈔票序號對持有者來說沒有區別。
BTC,ETH 和所有我們熟知的加密貨幣,都屬於同質化代幣。同種類的一個比特幣和另一個比特幣沒有任何區別,規格相同,具有統一性。在交易中,只需關注代幣交接的數量即可,其價值可能會根據交換的時間間隔而改變,但其本質並沒有發生變化。
以太坊的 ERC-20 就是定義這種代幣的標准協議,任何人都可以使用 ERC-20 協議,通過幾行代碼,發布自己在以太坊網路上的加密貨幣。
現在,以太坊網路上運行的代幣種類有上百萬個,上邊提到的項目,大多也在以太坊網路中發布了自己的同質化代幣。
ERC-20 代表項目有:USDT,USDC,WBTC 等。
以太坊網路擴容性
我們先引入一個概念:區塊鏈的不可能三角,即無論何種方法,我們都無法同時達到可擴展、去中心化、安全,三者只能得其二。
這其實很好理解,如果我們要去中心化和安全,就需要更多有節點參與網路進行驗證,從而導致驗證人增多、網路效率降低,擴展性下降。網路性能建設就是在三者之間找到平衡點。
用數據舉例,目前比特幣可處理轉賬 7 筆 / 秒,以太坊是 25 筆 / 秒,而 VISA 平均為 4500 筆 / 秒,峰值則達每秒上萬筆。這種業務處理能力的差別,我們就可以簡單理解為是「吞吐量」的差距。而想要提高吞吐量,則需要擴展區塊鏈的業務處理能力,這就是所謂的擴展性。
根據優化方法不同,以太坊網路性能擴容方案可以分為:
1. Layer 1 鏈上擴展,所有交易都保留在以太坊上的擴展解決方案,具有更高的安全性。
鏈上擴展的本質還是改進以太坊主鏈本身,使整個系統擁有更高的拓展性與運行效率。一般的方法有兩種,要麼改變共識協議,比如 ETH 將從 PoW 轉變為 PoS;要麼使用分片技術,優化方法使網路具有更高效率。
2. Layer 2 鏈下擴展,在以太坊協議之上分層單獨做各場景解決方案,具有更好的擴展性。
鏈下擴展可以理解為把計算、交易等業務處理場景拿到以太坊主鏈之外計算,最後將計算好的結果傳回主鏈,主鏈只反映最終的結果而不用管過程,這樣,無論多麼復雜的應用都不會對主鏈產生影響。
我們並不需要明白具體技術實現,只需知道:相比 Layer 1 方案,Layer 2 方案網路不會干擾底層區塊鏈協議,可以替 Layer 1 承擔大部分計算工作,從而降低主網路的負擔提高網路業務處理效率,是目前公認比較好的擴容方案。
以太坊2.0
終於講到以太坊 2.0,回到主題。
通過回顧以太坊的發展 歷史 ,以太坊 2.0 並不是新項目,它只是以太坊開發進程的最後一個階段,它將由整個以太坊生態多個團隊協同完成,目標是使以太坊更具可擴展性、更安全和更可持續,最終成為主流並為全人類服務。
ETH2建設目標:
1. 更具可擴展性。每秒支持 1000 次交易,以使應用程序使用起來更快、更便宜。
2. 更安全。以太坊變得更加安全,以抵禦所有形式的攻擊。
3. 更可持續。提高網路性能的同時減少對能源的消耗,更好地保護環境。
最重要的變化,ETH2 將從 ETH1 使用的 PoW(Proof of Work)工作量證明機制升級為 POS (Proof of Stake)權益證明機制。不再以算力做為驗證方式,而是通過質押加密貨幣的數量做為驗證手段。礦工不需要顯卡也能挖礦,既節省了時間成本與電力成本,又提高了 ETH 的利用率,非常類似錢存在銀行獲得利息。
ETH2 主要使用的技術是分片分層技術實現整個網路擴容。
ETH2 升級將分為三個階段進行:
1. 階段0(正在進行):信標鏈的創建與合並。信標鏈是 ETH2 的主鏈,如同人類的大腦,是 ETH2 得以運行的基礎。
2. 階段1(預計2022年):分片鏈的創建與應用。當信標鏈與 ETH1 合並完成後,就進入分片鏈的開發階段。分片鏈可以理解為將 ETH2 主鏈的整塊數據按一定規則拆分存放,單獨建立新鏈處理,用來分擔主鏈上的數據壓力,目前規劃是建立 64 條分片鏈。
舉個例子,從北京到上海,原來的交通工具只有一條公路,所有的車輛都需要在上邊運行,就會非常擁擠;現在通過分片技術,多出來高鐵、飛機等交通方式,分流的車輛同時到達速度更快,這就是分片鏈起到的作用。
分片鏈與主鏈交互示意圖
3. 階段2(預計2023年):整個網路功能的融合。到了此階段,整個系統的功能全面開始融合,分片鏈的功能會更加強大,新的處理機制開始支持賬戶、智能合約、開發工具的創建,新的生態應用等。
此階段是以太坊網路的最終形態,網路性能得到全面提升,生態應用全面爆發。但要服務全人類,ETH2 每秒 1000 次的交易效率顯然還是遠遠不夠,以太坊也會為它的目標持續優化下去。
ETH2對於大家有什麼影響?
1. 對於以太坊生態開發者。ETH2 在部署應用的時候,是需要選擇應用在哪條分片網路進行部署,造成這種差異的原因是跨分片通信不同步,這就意味著開發者需要根據自己發展計劃做不同的組合。
2. 對與 ETH 持幣者。ETH2 與 ETH1 數據完全同步,代幣也不會有任何變化,你可以繼續使用現在的錢包地址繼續持有 ETH。
3. 對於礦工。雖然 PoW 與 PoS 還會並行一段時間,可以預計的 PoW 礦機的產出會越來越少,應該開始減少 PoW 礦機的投資,開始轉向 PoS 機制。
4. 對於用戶。ETH2 速度更快,交易手續費更低,網路體驗會非常好,唯一值得注意的是,由於 Dapp 部署在不同的分片網路上,可能需要手動選擇應用的網路選項。
ETH是否值得投資?
ETH 是除了 BTC 以外市場的風向標,明確了解 ETH2 非常有助於我們理解其他區塊鏈項目,理解二級市場。
簡單總結幾個點吧:
1. 通過以太坊的項目分析,我們可以清晰地看到:在比特幣之後,以太坊項目的發展史就是目前區塊鏈應用生態的發展史。無論 DEFI 生態,NFT 生態,DAO 生態還是代幣、合約、協議生態,其實在以太坊發布白皮書時已有預見,後來出現的項目,都是圍繞以太坊做驗證。
2. 以太坊的聯合創始人里,只有 V 神還在為以太坊事業做貢獻,但這並不影響以以太坊繁榮發展。以太坊初始團隊只是創建了它,後續的發展是社區、開發者、礦工與用戶共同建立的結果,現在的以太坊早已不是某一個人的思維,它是所有以太坊生態參與者共同的結晶,它屬於全人類。
3. 以太坊在過去的幾年一直沿著既定的開發軌跡發展,雖然中途一度出現過危機,以太坊「被死亡」了好幾百次,以太坊還是頑強的發展下來,並且擁有了繁榮生態。ETH2 還要兩三年時間才能落地,中間也充滿變數,比如其他的公鏈搶佔先機,但可以預見,ETH2 後的以太坊會更加健壯。
4. 不要在抱有任何 BTC 會死亡,區塊鏈行業會消失這樣的偽命題。BTC、ETH 讓我們看到了突破原有公司組織架構,一種全新無組織架構的商業模式存在,這種商業模式顯然更符合這個時代的發展需求,無論項目地發起團隊在不在,無論各國政府如何打壓,只要技術對人類有貢獻,就會由人員自發組織維護,區塊鏈技術是革命。
5. ETH2 的上線,短期看 PoW 獎勵與 PoS 獎勵並行,可能會讓 ETH 總通脹率短期內飆升,長期看 ETH 通脹率始終保持平衡。加上 ETH 本身的生態與應用場景,ETH是值得投資的,目前看不到有其他公鏈代替以太坊公鏈的可能性,ETH2 的上線,甚至會對其他公鏈造成「虹吸效應」,萬鏈歸一。
#比特幣[超話]# #數字貨幣#
5. 以太坊怎麼修改數據
先以太坊的數據保存在user用戶名當中需要在硬碟的位置,一是可以備份你的私鑰,而是可以刪除錢包,還有其他的一些比較詳細的操作
原標題:《解碼以太坊智能合約數據》 正如我們在之前的文章中所討論的,智能合約交易類似於智能合約驅動的web3應用程序中的後端API調用。每個智能合約交易和結果應用程序狀態更改的細
以太坊中各種操作都需要支付gas,如存儲數據、創建合約以及執行哈希計算等操作發起方在某次操作中願意支付的最高手續費
6. 以太坊是什麼
以太坊(英語:Ethereum)是一個開源的有智能合約功能的公共區塊鏈平台。通過其專用加密貨幣以太幣(Ether,又稱「以太幣」)提供去中心化的虛擬機(稱為「以太虛擬機」EthereumVirtualMachine)來處理點對點合約。
坊區塊鏈上的代幣稱為以太幣(Ether),代碼為ETH,可在許多加密貨幣的外匯市場上交易,它也是以太坊上用來支付交易手續費和運算服務的媒介。
以太坊的概念首次在2013至2014年間由程序員VitalikButerin,受比特幣啟發後提出,大意為「下一代加密貨幣與去中心化應用平台」,在2014年通過ICO眾籌得以開始發展。截至2018年2月,以太幣是市值第二高的加密貨幣,僅次於比特幣。
(6)以太坊智能合約存儲大量數據擴展閱讀:
以太坊平台本身沒有特點,沒有價值性。和編程語言相似,它由企業家和開發者決定其用途。不過很明顯,某些應用類型較之其他更能從以太坊的功能中獲益。以太坊尤其適合那些在點與點之間自動進行直接交互或者跨網路促進小組協調活動的應用。
例如,協調點對點市場的應用,或是復雜財務合同的自動化。比特幣使個體能夠不藉助金融機構、銀行或政府等其他中介來進行貨幣交換。以太坊的影響可能更為深遠。
理論上,任何復雜的金融活動或交易都能在以太坊上用編碼自動且可靠地進行。除金融類應用外,任何對信任、安全和持久性要求較高的應用場景——比如資產注冊、投票、管理和物聯網——都會大規模地受到以太坊平台影響。
7. 智能合約除魅:它能避免俄羅斯違約和「鎳逼空」嗎
· 《文理兩開花》主播 ·
肖小跑: 《羊群的共識》作者,金融行業從業者及連續創業者,播客《牆裂壇》主播,公眾號「肖小跑」主理人。
王瑋: 數學和計算機學霸,兼通技術與金融。若干年前「all-in」區塊鏈領域,成為區塊鏈行業知名意見領袖之一。
「智能合約」這四個字似乎也是個「模因」了:這是一個在金融 科技 業界、甚至所有和 科技 、數字化相關行業中都會聽到的概念——一個「聽起來很厲害但並不知道到底是什麼」或者「不知道厲害在哪兒」的模因,反正這四個字代表了「 科技 進步」,都「智能」了還能不厲害么?
但它到底是什麼?能做什麼?不能做什麼?迫切需要智能合約專家用小白和文科生都能聽懂的語言來除魅。
正好最近在現實世界的金融市場上,也發生了幾件有趣的事:俄羅斯債券違約、還有金屬市場上的「鎳逼空事件」——所以我們乾脆做一個案例分析,現場來看看智能合約到底能不能解決這些現實世界中頭疼的問題。
· 本期提綱 ·
1、365度全景式「除魅」智能合約:它到底「智能」在哪兒?是一段代碼?一份合同?還是一個機器人?
2、它只能解決虛擬世界的問題,還是也能用於現實世界?
3、俄羅斯債券違約:如果用了智能合約,結果會不同嗎?
4、如果主權債放在智能合約上會不同嗎?智能合約能解決「信用」問題嗎?
5、鎳逼空事件和LME「硬分叉」:如果LME採用智能合約來自動執行,結果會不同嗎?
6、區塊鏈上的「硬分叉」和現實世界中的「硬分叉」(取消交易)有什麼不同?
7、「投票」+「冷靜期」的設定能避免「多數人的暴政」嗎?
· 文字稿 ·
小跑 02:48
「智能合約」(smart contract)這四個字好像已經變成一個「模因」了。 它是金融 科技 業界、甚至更廣泛的跟 科技 、數字化相關的行業,都會聽到的一個概念——反正這四個字就代表了 科技 進步、代表智能。
但它依然是一個「聽起來很厲害,但不知道到底是什麼」,或者「不知道到底厲害在哪兒」的概念。大部分人,包括我在內對它也是一知半解。所以今天請王瑋老師用小白和文科生都能聽懂的語言,給大家「除魅」一下智能合約。
另外,正好最近現實世界的金融市場上,發生了幾件很有意思的事——包括俄羅斯債券違約、鎳逼空事件。今天乾脆拿這兩件事來做一個案例分析, 來看看智能合約到底能不能解決這些現實世界中的頭疼問題。
先請王瑋老師給大家解釋一下: 智能合約它到底「智能」在哪兒?
王瑋 04:26
智能合約如今不管在區塊鏈、DeFi、還是未來的web3領域,都是最重要的核心。比特幣出來時,大家都說區塊鏈是「分布式賬本」;自從以太坊誕生,大家慢慢看到智能合約在web3.0甚至metaverse領域,作用越來越大,重要性也越來越高。
我先從發生在身邊的一個小故事說起。我有一位師妹,是大學計算機系教授,去年問了一個問題:區塊鏈我都能理解,但有一個問題沒想明白——智能合約到底「智能」在哪兒呢?
之所以這么問,她一定是把「智能合約」理解為「智能代碼」了。因為是搞技術的,她一定是跟別的代碼比較,默認「智能合約」應該比別的代碼更「智能」,才配叫「智能合約」。
我的答案是: 不要把它跟計算機代碼相比,而是跟現實世界當中的「合同」相比——它是一段智能的「合同」,而不是智能的「代碼」, 就好理解了。把它跟代碼比較,有點侮辱「智能」這個詞。但跟日常經濟活動中簽的合同來比,邏輯就比較貼切了。
那跟合同來比,它智能在哪兒呢?
我們日常的合同有幾個特徵:第一,有簽署的雙方或多方;第二,它有合同的條款,什麼情況下執行什麼條件做什麼事情;第三,有合同標的物,一手交錢一手交貨,合同約定了提供什麼商品或者服務,付多少錢;第四,合同大概還有個編號,有個標識記錄這是哪份合同,哪年哪月哪日簽的,誰跟誰簽的等等;第五,要有一個管理手段,簽署多方要各持一份,防止某方把條款改掉。這五個特徵基本代表了日常執行合同的最基本條件。
從這個角度,智能合約就好理解了。
比如以太坊的智能合約: 第一,它的代碼和存儲的數據,其實相當於合同條款達到什麼條件、怎麼自動執行——大家可能都知道智能合約的這個特點。第二,它還能夠讓「簽署雙方各執一份」這件事在鏈上實現,簽署雙方都能訪問到區塊鏈的時候,其實就是都能看到合同副本,而副本不是自己能掌握或篡改的,而是鏈上存儲的。
這就很有意思了:中本聰發明區塊鏈,是為了防止「雙花」比特幣這種純數字資產的,結果到了智能合約時代,以太坊一下子賦予了它「幫助合同所有方存儲無數副本、保證不被篡改」的神奇能力。區塊鏈是全球化的分布式存儲,它能夠讓世界上任意多的人來共同簽署和執行一個合同,而不會讓有被篡改的危險——這件事在傳統領域做不到。因為技術的限制,你沒法讓任意無數人同時簽署一份合同。
第三,智能合約的每一段代碼都有一個對應的「地址」,執行這段代碼的入口,這個入口可以理解為合同的編號,唯一的標識。
第四,智能合約本身還能夠擁有「其他的財產」。 我們日常的合同只是一張紙,一個附屬品,財產仍然在人的掌控之中——合同就算約定了鎳的交割,紙怎麼能控制鎳的移動呢?而智能合約本身卻能掌控財產。合同一定要有「標的物」,有「錢」有「貨」,這個標的物是可以受到智能合約所控制的,相當於是被它「所擁有」的。在這種情況下,所謂的「自動執行」才有保障,它擁有對資產的全部執行權。
小跑 11:30
相當於司法執法合二為一。
王瑋 11:33
對。所以有簽訂方、有無數可靠的備份、有自動執行能力、有可以找到的地址和入口、還有對於合同標的物的控制權——從這個角度,它確實比普通的合同要「智能」的多。
小跑 12:04
其實特別理解王老師師妹的想法,畢竟都是理科生,大家可能天然會從代碼角度來理解。但作為非技術背景的普通人,我反而沒有理解的這層障礙。
一看到「智能合約」這四個字,沒有代碼背景的人,天然就會先把它想像成一個合同,一個不用人來執行的「聰明的合同」。在現實世界中,比如我跟老闆簽了合同,但是他每個月不給我往賬戶里發工資,我也沒辦法。
另外,智能合約建在區塊鏈上,就是說跟我簽合同的人,我不用認識也行。我們之前沒有做過買賣,沒有建立過任何信任關系,其實也能簽——因為區塊鏈保證了「人手一份」且不能改。 這有點像我們討論過的SWIFT——它實現了「信息」和「賬戶」合二為一;而智能合約是實現了合同的「內容」和「執行」合二為一,一旦建立了,執行就不用太擔心了,智能合約會自動給我發工資,不用再信任老闆。
可是,仔細再想的話,好像又有點琢磨不透。如果它的執行是自動的,那出了問題該怎麼辦呢? 我們訂立傳統合同時,會有後續發展過程中修改條款的情況,或者出現特殊情況導致合同不能按照訂立時的條款來執行——如果出了差錯,智能合約還是會不管不顧的執行下去嗎?
如果真是這樣,大家在「簽」智能合約,按啟動鍵的一剎那可能就要再想想了——只要一按,後面就沒有改的餘地了,對嗎?
王瑋 15:00
先說第一個問題:智能合約最大的價值就是能讓世界上相互不認識、或者沒有過任何協作關系的人,能立刻簽署、執行這個合約,獲得結果——這跟區塊鏈的特徵是一脈相承的。
很早我們在介紹區塊鏈時,會強調它的一個特徵——能讓全世界本來沒有任何協作關系的人,開始轉賬交易。中本聰發明的防止「雙花」,就是為實現——我們雖然不認識,但我轉賬給你,你知道這筆轉賬一定是真實的,而不會出現任何問題。智能合約就繼承了這個特點,不會因為咱倆不認識、或者你耍賴而導致合約執行不了。
但如果是這樣,簽訂了合同一定能執行,就意味著它肯定不會變。那我又怎麼敢隨便簽?
這一點倒是要從技術角度看了—— 智能合約是可以「變」的,「變」從技術角度講,跟一個軟體系統的升級沒有太大區別。
如果你一定要改變某個條款,就相當於原來的作廢,新的合同重簽。智能合約也是一樣,相當於你把代碼升級, 現在是版本1.0,過兩天我來了個1.1版,換掉1.0版——我們從現在開始執行1.1版——這是沒問題的。但是問題又來了,誰有權利來做這件事呢?如果是合同簽訂雙方都有權利改合同,就沒任何意義了,完全實現不了。
智能合約其實相當於在一個「市場」上,合約由一個第三方來創建,然後大家分為甲方乙方丙方,在合約上去簽署和執行。
之所以敢簽署,是因為我作為甲方,相信乙方丙方丁方改不了這個合約,必須執行。第三方就是合約發布和創建方,它是有權利來升級合約代碼的。這樣一個機制,有點像建立一個「賣場」, 里邊的買賣雙方在賣場里簽合約,做買賣,但改變不了賣場的規則——只有賣場的構建者有權利來改。這也是一種必要性。
這種必要性會帶來什麼問題嗎?
肯定也有。比如,第三方有「監守自盜」的危險,如果他發現改動合約對自己有利,也可以去篡改合約,導致簽訂者的損失。就算他不是出於私利,而是想改進合約的執行效率,或者改善條款,但大家是否都同意?
我們常舉的例子:一個「借貸」智能合約可以規定一個利率演算法,比如說年化5%;如果調整成為年化30%——表面上看,利率是借貸雙方互相支付的成本,跟規則制定方的利益沒有直接的關系;但也不能因為是中立方,就可以隨便瞎改規則, 於是你需要給買賣雙方一個「緩沖期」或者「冷靜期」,或者一種投票的機制,可以讓參與者共同決定。如果接受,投票通過,就可以修改規則。
如果參與者不接受,你還要改的話,那麼你給我個冷卻期,我要退場。所以最終整個邏輯還是完備的,還是要引入第三方的制約機制。我覺得這一點跟現有金融市場的一些規則也很類似。
小跑 20:42
這就是為什麼需要專家解讀。如果只看這四個字,會覺得就是個冷冰冰自動執行的代碼;但實際上背後還有一系列規則,而且這些規則大部分是可以映射到現實世界的。比如剛才的例子就很像一個「仲裁機制」。
既然如此,我們就在現實世界中找幾個案例,分析一下在現實世界中出了問題的、讓人撓頭的情況,放在智能合約上,結果會不會不同?
我找了兩個:一個是俄羅斯違約,一個是鎳逼空。
先從俄羅斯開始。俄羅斯其實是個經常違約的國家,它主權債的違約次數是很頻繁的:1918年沙皇帝國債券違約,1998年俄羅斯布雷迪債券幾乎違約,最近俄烏戰爭,又把它帶進另一個違約危險時期。
3月16號這一天俄羅斯兩只美元債,要付1億多美元的利息;付息前一個禮拜大家就開始擔心,因為俄烏已經開打,它到底還有沒有能力支付?如果支付用什麼幣種?用盧布嗎?當時已經貶值20%。
結果是沒有違約,危機暫時解除了。3月18號俄羅斯財政部已經還了,雖然晚了一天,不過仍然在30天寬限期內。但事情還沒完,4月還有20多億美元的本金償還。所以到現在為止,會不會發生違約還是一個巨大的問號。
通常一個國家不願意違約自己的主權債,主要原因是如果違約,市場會以某種方式懲罰你,比如失去信用,被評級機構貶為垃圾債,導致投資者在很長一段時間內不願意碰,你就很難在市場上找錢。
但是一個國家違約的可能性實在太多了。上個世紀大量主權債的發行,其實都是為了資助戰爭,一旦戰爭爆發,肯定是要違約——因為錢都要拿去打仗。俄羅斯現在就是這么個情況,而且更棘手——不管是被動制裁,還是大家主動制裁,顯然投資者已經不願意碰了。俄羅斯基本與世界隔絕,也不能再失去更多信用,因為它幾乎已經沒有信用了;外匯儲備被凍結,就算想還,去哪兒找美元、硬通貨呢?
所以在這種情況下,「違約」這兩個字究竟意味著什麼?
在現實世界中,作為政府的債主,你其實是很難凍結或者強制出售一個國家資產的。這是一個信心加耐心的 游戲 ,如果你有本事在一個足夠長的時間內,不停騷擾這個國家的政府,年復一年窮追猛打,就像當年保羅辛格為了追債,乾脆把阿根廷的船給劫了。俄羅斯這個戰斗民族不一樣, 歷史 經驗表明,即使是最堅決的債權人,俄羅斯人也有足夠的能力勝過,以死豬不怕開水燙的心態擋住所有追債。
這次還有個很有意思的地方: 這筆主權債中有一個條款,叫做「pari passu」——「一視同仁」原則。這是一個古老條款,一個多世紀前大家就用在債務合同中。它要求債務人對所有債權人要平等對待,不能厚此薄彼,只要跟其中任一個債主談妥了,也要給予所有其他債主相同的償還待遇。
自從保羅辛格利用了這個條款,向阿根廷政府討債成功,之後大部分國家在發行主權債務時便刪除了此條款——防止這些「釘子戶」追債時再利用這個條款。
但是俄羅斯這筆債中卻沒有刪除——要麼是戰斗民族太傲慢,覺得自己永遠不會被起訴;要麼就是忘了。 盡管如此,條款中關於「未來償還「的字眼卻神奇的消失了——是故意,也許是筆誤,反正結果變成了:發行時會遵守「一視同仁」原則,所有債主都一樣,但並不意味著「未來」還是一樣的。
這個例子告訴我們,債券市場是一個完全由「樣本文件」主導的「 & paste」交易,很少有人真的會看多達幾百頁的條款——但魔鬼也就在這里,人為的「調整」、「違約」空間太多了。
如果債發行在智能合約上,是不是就不會出現這種情況了?
王瑋 28:09
這個案例特別有意思。本來還有點擔心,因為區塊鏈也好、智能合約也好,其實最不適合迎來解決債的問題。不過聽了俄羅斯債務里的很多細節,又有好解決的地方了。
首先,「債務」這個東西,是一個典型的「信用」過程。從本質上,我把金融分為「信用過程」和「計算過程」兩個部分。區塊鏈、智能合約、DeFi等等,其實解決的是「計算性過程」的部分,而「債」是典型的「信用過程」。
實際上, 「債券違約」這件事是最不適合於用智能合約去解決的。或者說,智能合約、區塊鏈這些技術對於「債券違約」是最無能為力的——因為違約就是個信用喪失的過程, 就算用智能合約來寫債務合約,但還債的過程涉及到還債主體,你需要把資產放入智能合約才能執行;不放進來,就執行不了。
這就回到最關鍵的一點:智能合約能保證自動執行的前提,是合約本身對標的物有「控制權」。但如果我未來才要還的錢——本金甚至是利息都要放在智能合約里,被它所控制,那我現在「借」錢幹嘛呢?還得倒貼往裡面放點利息。
在DeFi領域里,我們也看到非常多的項目和創業者,試圖用智能合約來解決一個債務市場的問題,或者創建信用產品。其實沒問題, 因為智能合約背後還可以有一套其他的保障機制,比如投票等等;最終把「信用」部分轉化為其他的保障機制,還是有可能的。
信用的「執行部分」不可能轉化為代碼層面的保障機制,但這不代表智能合約不能對債務市場有所改進。
在俄羅斯債務例子中,它把「一視同仁」條款中的「未來」字眼去掉,這是它的權利,沒有辦法控制;買債的人一不留神,沒注意到改動就買了——這一點其實在智能合約層面可以有所改進。
首先, 智能合約作為代碼規則寫進來,天然就有「一視同仁」的條款,因為代碼是人人都可以執行的。只要有地址,有代碼固化在裡面,天下人都可以執行,所以默認一定是會「一視同仁」的,你要是想不「一視同仁」,反而要去做很多手腳。
關於「債券市場是一個以模板為基礎, & paste的市場」——讓我想起了過去幾年,很多DeFi智能合約領域的「微創新」,也是把某些智能合約的代碼全盤拷貝過來,然後改上兩三個字。
但是你會發現在這種情況下,智能合約反而有價值了。為什麼呢?
因為智能合約是精確的代碼。一個審計機構是可以輕而易舉找到改動之處的。幾行代碼的不同,意味著結果有什麼差別,是可以精確推導和判斷出來的。而在傳統市場,因為自然語言是不精確的,就算讓律師去審,我們也不知道這幾句話改動的背後,是不是還隱含其他含義?或者導致什麼意想不到的後果。
智能合約的審計機構是整個生態中非常重要的一方。這些機構往往是一些智能合約開發高手,或者白帽子黑客。他們的作用很像現實世界中的律師事務所,專門負責去審合同、審合約代碼。
所以總結一下:智能合約不能解決債務的所有問題,但是它在債務的執行、和條款分析層面,仍有很大的作用。
小跑 35:47
所以我現在覺得可能俄羅斯這個案例,甚至整個主權債放在智能合約上,可能不太現實。因為對於本來就有意「不執行」的一方,可能根本不會簽了。
這就引出了第二個案例:前些時候鬧得沸沸揚揚的鎳逼倉事件。
大概復盤一下:三八婦女節那天,市場上演了一個 歷史 性的事件,我們在LME(倫敦金屬交易所)市場上見證了史詩級的空頭擠壓。鎳價創了有史以來最極端的價格波動,3月7日暴漲76%,達到每噸5萬多美元;緊接著第二天突破一噸10萬美元的關口。
這是一個明顯的逼空。被逼倉的是青山——全球最大的鎳生產商,在俄烏戰爭之前押錯了方向。15萬噸的鎳空頭頭寸,其中5萬噸是和摩根大通的OTC(場外)頭寸;也就是說此刻青山已經欠JP大概10億美金的保證金。
對於OTC的場外交易,其實大家還是有商量餘地的,如果極端情況發生,各方會首先場外協商解決方法。這一次爆倉後,青山的經濟上先向交易所墊付了保證金,不然清算會出現巨大問題。談判的結果空頭頭寸先保留,之後LME「創造了 歷史 」,取消了交易,並且把鎳的交易一直停到3月中旬。
從那一刻起,從全球市場的角度,LME的「信用」和「中立性」就出現了巨大的問號——突如其來的停牌影響了幾千筆的交易,市場上其他參與方損失巨大。
這個案例,智能合約有可能在哪些環節會發生一些作用呢?
王瑋 42:10
其實剛才在介紹智能合約的時候也提到了:我們確實可以「干預」智能合約,它並不是真的100%不能變。
從這個角度講,LME的這種干預也可以算是「干預」的一種情況。但這里確實有一些問題:第一,智能合約的「干預」,必須要通過「有許可權的人」去升級代碼;或者直接去修改智能合約當中的參數來實現。這跟一個中心化的體系把交易「回滾」、「取消」還是有區別的。
智能合約的干預,不管是代碼升級還是參數調整,它也只能是「向後干預」,改未來的規則,不能倒退回過去的某個階段——區塊鏈是不支持這種干預方式的。
當然,並不是說「向後干預」完全不能出現。舉個例子,大家可能都聽說過以太坊的DAO攻擊事件, 為此以太坊發生了「硬分叉」——這確確實實是「回滾」,在以太坊的 歷史 上就發生過這么一次。但是這次「回滾」的結果,是同時產生了ETC和ETH這兩條鏈。
所以,在「計算性」的體系下,就算想要「回滾」,也不是100%的滾,因為仍然有人可以選擇去執行那些沒有被你「回滾」的合約。
但這在現實世界中沒辦法發生。 因為不可能有另一個平行世界的人,選擇繼續去成交被逼空的那些單,因為交易所只有一家,回滾就是回滾了,不會硬分叉出來兩個交易所。
現實世界無法分叉,無法分叉出兩個青山、兩個俄羅斯、一噸鎳變成二噸——兩個平行世界中各一噸。這是物理世界決定的。所以智能合約、區塊鏈這套體系,只能針對「純數字資產」才有所謂的「保障執行」能力。
那LME這種「停止交易」、「取消交易」的情況,在智能合約領域能不能做到?
客觀的說,也可以做到。一般可以通過兩個手段: 第一個是投票。相當於LME的股東集體來投票,投票結果決定是否允許回滾,投票不通過就不能改。 這就是為什麼現在的加密領域會推行「token economics」(通證經濟學)體系,這是一套類似於股權的模型,投票結果可以綁定智能合約,自動執行結果。
第二,投票意味著什麼?數字世界裡的投票,是個「剛性」的結果——51%的人同意就改,但這不會引起「多數人的暴政」嗎?49%的人不同意,也只能接受嗎?投票不能解決問題怎麼辦?
答案是設定 「冷靜期」或者「過渡期」——幾天、幾小時都可以。就算投票通過,也只能冷靜期之後才能執行。不想玩的,就在這段時間內從系統里退出。改規則沒有問題,但要給我離開的自由——這是最基本的自由了。
LME的做法,就是典型的「中心化」系統的弊端——就算要改規則,第一能不能讓大家投個票?受到規則影響的人,起碼要給一個發言的機會。第二,就算投票通過,也要給一些時間之後再改。
如果用智能合約來實現,並且遵守剛才的那套治理規則,它的信用程度肯定更高。所以從這個角度講,智能合約在維護一個公平高效、更高信任的市場規則,是會有比較大用途的。
小跑 50:51
是的。虛擬世界中的一些機制也可以用到現實世界。 但是這些投票、冷靜期等等規則有多大可實施性呢?
比如多數人的暴政。如果大家突然意識到有「多數人暴政」的可能性,比如我仇富,反正大家都是市場的韭菜,我們以數量取勝,聯合起來投票,把大戶賬戶里的錢全都轉到我們賬戶來——如果真的按投票結果來自動執行,不是相當於「合理搶劫」嗎?
但是如果設了冷靜期,15天之後再正式「執行打劫」,大戶肯定會離開,總不能等著被打劫。可是大戶都已經離開了,我15天之後還打劫誰呢?整個 游戲 就沒有存在的意義了?
王瑋 52:17
這就是區塊鏈和加密貨幣的一個核心理念——就是你的行為要有經濟上的合理性。
如果小散這么做,就是損人不利己。不僅沒有得到錢,唯一的結果是毀滅了這個平台的價值、信用。在這種情況下,你會發現小散也沒有那麼傻,他們知道自己投這個票是沒有意義的。
這就回到中本聰寫比特幣白皮書中提到的,你可以51%的算力攻擊,把比特幣全拿到自己手裡,但是比特幣也因此歸零了——你買的那些機器成本也回不來了,這對你有什麼好處呢?
所以某種意義上, 「經濟模型」是區塊鏈領域最核心的「模因」。我們維護的這套經濟模型的合理性,導致攻擊是沒有意義、不合理的。
小跑 54:11
我現在覺得其實任何規則和機制,雖然看起來像是補救措施, 但實際上它發揮最大作用的時間——還是在事情發生之前。
大家的行為會在博弈影響下,自動找到一個最理性、「守規矩才能價值最大化」的結果來走。也就是說好的事前設計,會導致一個理性的結果。
王瑋 55:13
智能合約和區塊鏈最核心的價值,其實是「維護規則的有效性」。更適用於平台經濟、或者雙邊市場的邏輯。 區塊鏈和智能合約的創造者,是規則的制定者和維護者,本身並不一定是參與方。而參與方是世界上互不認識的人,共同參與 游戲 。
如果兩個人認識、簽一個合同、互換了合同文本、以及後續都有意願保障執行——那這個場景下,智能合約沒有太大意義。
小跑 56:55
非常同意。大家可能有各種通關升級辦法,但是整個 游戲 規則大框架是可以用智能合約改進的。
— End —
播客《文理兩開花》
8. etg是什麼意思
Ethereum Gold(簡稱ETG)是在以太坊平台上發行的一種加密貨幣代幣。今日ETG幣的價格為$ 0.00131989,24小時交易量為$ 0.923301。在過去的24小時內,價格下跌了-40.8%。它的循環供應量為1400萬枚硬幣,最大供應量為2400萬枚硬幣。ETG幣在2個交易所上市,共有3個活躍市場,交易ETG幣的最活躍交易所是STEX。ETG幣的市值為$ 24 772.00,在所有加密貨幣中排名第1665。在諸如etherscan.io,ethplorer.io和enjinx.io之類的區塊瀏覽器上瀏覽Ethereum Gold的地址和交易。
CoinExchange交易所:https://www.coinexchange.io/
ethereum gold簡稱ETG,etg幣通過一流的技術和金融專業人員,ethereumgold是一個非營利組織,將人們與低成本金融服務聯系起來,以消除貧困並發揮個人潛能。ethereum gold是一種以太復刻品,它將有24,000,000 etg的總供應量。
ETHEREUM GOLD是ETHEREUM智能合約管理的新生態系統,採用區塊鏈技術使用GOLD的價值。
以太坊是目前為止最引人注目的智能合約框架,因為它是專門為支持智能合約的使用創建的。用Solidity語言編程,以太坊智能合約框架有助於促進去中心化網路,便於用智能合約處理交易。
補充資料:
Pulley swap是建立在以太坊智能合約上的一項全球共享ETH海星體矩陣裂變計劃,由一群網路技術極客和區塊鏈社區愛好者共同開發打造,沒有項目方,沒有管理者幕後操控,所有數據鏈上存儲。系統只需智能合約及演算法部署完畢,便能自行運營,所有的交易都在鏈上進行,100%開源,100%公正,不受任何或第三方管控,所有ETH矩陣裂變100%獲利。
Pulley swap建立在以太坊智能合約上的最突出的特點就是在該網路系統中所有合約都是不可違約,更不可偽造的,合約一旦生效,就會達成永久的共識機制。從某種角度來看,也是解決了互聯網時代的信任危機,通過這種帶有強制性執行的方式,讓所有合約自動生效,不再需要律師來維權,也不再需要中心化機構來處理各種復雜的問題。
9. 美國上市公司由第三方審計作為公司狀況的顧問是否具有可借鑒性
第三方審計 工作是由具備資質的會計師所進行審計,那麼所謂的第三方,就是中立的一方,注冊會計師正好具備這個特點。因為 第三方具有中立的特點 ,所以在對上市公司做審計工作的同時可以做到公平、公正、公開,不偏袒任何方面。可以最大程度的做到就事論事,以提高投資者對審計報告的認可度。
對於美國上市公司來說, 有效的財務會計報告內部控制對公司管理及其事務,盡到對其投資者的責任,有至關重要的作用。 公司管理當局、公司所有者、投資公眾和其他相關方都需依賴公司承保的財務信息來制定決策。那麼需要做到這些,自己來審計自己,顯然是做不到足夠的公平公正與公開,也不可能得到各方面的對報告的認可。 所以把這些交給具有中立性的第三方來做是最合適的事情。
那麼 審計的獨立性 ,就是說注冊會計師不受那些削弱或總是有合理的估計,仍會削弱注冊會計師做出無偏審計決策能力的壓力及其他因素的影響。這對審計工作來說,至關重要,因為涉及到市場經濟的,利益公平,獨立性。這個獨立性,也應當保持形式上的獨立和實質上的獨立,也就是說注冊會計師與被審計單位或個人沒有任何直接或間接的利益關系。不受到個人或外界因素的約束,影響和干擾,保持客觀且無私的精神及工作態度。
而第三方審計,在我國也是非常有必要的。我們不僅是借鑒,而且也正在使用第三方審計的工作。而且 我國有明確的法律規定,上市公司的年度報告必須要經過第三方的審計。 這么做也是為了能夠讓上市公司的審計報告能夠更加的客觀,公平,公正,公開,做到不摻雜任何利益關系和個人 情感 關系。
全球第三大審計機構certik為眾多知名項目保駕護航
據統計,2018年全球區塊鏈130領域93706165發生近百起安全事件,損失超20億美元,相較於2017年增長了538%。比特幣的底層技術「區塊鏈」面臨著來自數據層、網路層、共識層、激勵層、合約層、應用層的安全風險,安全攻擊方式層出不窮,防不勝防。安全攻擊主要發生在應用層,其中智能合約是區塊鏈安全的重災區。
而且還發生了很多的安全事件,影響較大的例如MtGox事件,MtGox是當時全球最大比特幣交易平台,處理的比特幣交易佔全球70%。2014年,MtGox遭遇了最嚴重的黑客攻擊,隨後MtGox宣布暫停交易,理由是其安全軟體存在漏洞。兩周後,網站突然關閉,MtGox申請破產。
據MtGox估計,公司的比特幣投資損失約合4.8億美元,其中包括客戶的75萬單位比特幣和公司自己持有的10萬單位,合計約佔全球比特幣發行量的7%。此次事件導致投資者信心受挫,比特幣直接暴跌36%。
還有非常多別的項目同樣受到巨大的損失,仔細研究不難發現:在區塊鏈的安全事件中,大多都是由於源代碼存在漏洞而使黑客趁虛而入。智能合約受到區塊鏈本身保護,所以智能合約代碼可以最大限度的開源和讓人閱讀。但是代碼的公開性使得黑客容易掌握代碼的缺陷,進一步利用代碼缺陷觸發條件改變智能合約執行結果,使得區塊鏈項目存在巨大的經濟隱患。所以智能合約代碼的開源性需要代碼的高可靠性,這種可靠性要求100%的正確。
但是,對於程序員來說,寫一個完全沒有漏洞的代碼實在是太難了,即使採取了所有可能的預防措施,在復雜的軟體中也總會出現沒有預料到的漏洞。所以,代碼審計的重要性不言而喻。
通過代碼審計,檢查源代碼中的安全缺陷,檢查程序源代碼是否存在安全隱患,或者有編碼不規范的地方,通過自動化工具或者人工審查的方式,對程序源代碼逐條進行檢查和分析,發現這些源代碼缺陷引發的安全漏洞,並提供代碼修訂措施和建議。
目前已經服務的有交易所、錢包、公鏈和智能合約等代碼審計,為區塊鏈行業保駕護航,合作的慢霧 科技 ,Certik等全球知名審計公司,我們有著優質的服務滿足客戶的需求,歡迎合作夥伴合作交流,共同探討!
發生過的案例:
一、區塊鏈代碼審計可以解決哪些問題:讓黑客無孔可入
隨著BTC、ETH、EOS等區塊鏈項目的迅速發展,區塊鏈項目已經進入了智能合約時代,但是智能合約自身的正確性和安全性卻面臨著巨大的問題。
也就是說任何一個項目在使用區塊鏈時都有可能走向歧途,不能完全保證代碼的准確性。就像每個人在電腦打字時都會打錯字一樣,程序員在輸入代碼時也會存在筆誤和錯漏。
而區塊鏈中的基礎:智能合約代碼的開源性需要代碼的高可靠性,這種可靠性要求100%的正確。
差之毫釐,謬以千里。
用專業的術語來說:
類似比特幣這樣的代碼全部公開,用智能合約代碼存儲在區塊鏈上,與交易數據一樣受到區塊鏈的加密保護,要想修改智能合約代碼需要掌握51%的算力,因此,智能合約代碼的防篡改性得到大大提升。
智能合約受到區塊鏈本身保護,所以智能合約代碼可以最大限度的開源和讓人閱讀。智能合約解決了可以公開代碼並保障其安全的問題,但是代碼的公開性使得黑客容易掌握代碼的缺陷,進一步利用代碼缺陷觸發條件改變智能合約執行結果,使得區塊鏈項目存在巨大的經濟隱患。
就像,我們在銀行里轉賬,每一個賬戶的信息都是對的,轉賬才能夠是正確的,你的財產才可以安全被保護,所以:區塊鏈代碼中一個字都不能錯。
二、區塊鏈代碼錯誤導致的嚴重後果
區塊鏈中的智能合約代碼質量不好造成了許多嚴重的後果。
目前來看,許多交易所和代幣項目在上交易所之前沒有經過區塊鏈代碼審計,造成了許多虛擬貨幣被盜竊的黑客事件。
1、SMT項目方與美國BEC代幣的安全漏洞
2018年4月25日凌晨,SmartMesh(SMT)項目方反饋發現其交易存在異常問題,經初步排查,SMT的以太坊智能合約存在漏洞。受此影響,火幣Pro目前暫停所有幣種的充提幣業務。
另據媒體報道,發現SMT與美圖BEC代幣存類似的安全漏洞,即可通過溢出攻擊可以收到大量的代幣。
2、美圖BEC的異常交易漏洞
2018年4月22日,美圖BEC出現異常交易,據分析,BEC 智能合約中的batchTransfer批量轉賬函數存在漏洞,攻擊者可傳入很大的value數值,使cnt * value後超過unit256的最大值使其溢出導致amount變為0。
3、Parity多簽名錢包漏洞
2017年7月,Parity多簽名錢包由於其智能合約代碼中存在漏洞,被黑客盜取時價超過3000萬美金的ETH。
4、黑客盜幣漏洞
2016年6月由於智能合約的一個錯誤,黑客從DAO偷走了價值5500萬美元的ETH。
代碼的安全缺陷倒逼智能合約的代碼自動審計。
三、區塊鏈代碼審計成就完美合約
區塊鏈智能合約通過代碼建立一套「法律合同」,軟體工程師創造一個完全無誤差的代碼是不可能的,程序員總存在疏忽的地方。紅岸 科技 和國防 科技 大學的Ulord區塊鏈項目研究團隊對市面上的區塊鏈智能合約進行了審計,他們的研究發現:
對所有的程序員來說,寫一個沒有bug的代碼實在是太難了,即使採取了所有可能的預防措施,在復雜的軟體中也總會出現沒有預料到的執行路徑或可能的漏洞。
這是為什麼要代碼審計最重要的原因之一。
區塊鏈中的 「法律合同」是一項受解釋和仲裁的約束,程序員很難去創造一個縝密的合約。在任意一個大的合約里,可能出現的文稿錯誤以及一些條款需要解釋和仲裁。
同時,軟體工程師不是法律專家,反之亦然。起草一份好的合約需要各種各樣的技能,不一定與編寫的計算機程序兼容。
因此,智能合約代碼在一定程度上都可能存在安全隱患。傳統的智能合約代碼審計主要利用人工,依靠code reviewer閱讀智能合約代碼。人工代碼審計最終還是依賴人的經驗,代碼審計效果不明顯,針對目前ETH大量代幣的智能合約,人工審計工作量大,難以高效的完成工作。
在區塊鏈領域從事代碼審計業務的項目公司較少,目前每個代幣在上交易所之前,其區塊鏈智能合約代碼由交易所進行審察和判定,但交易所有時並不能完全有效地判斷合約是否完美。
智能化代碼審計,利用計算機進行穩健性檢驗是當前代碼審計最重要的方式,掌握該項技術標準的國內公司並不多。
但,區塊鏈代碼審計的重要性不言而喻,區塊鏈世界本身是相當安全的,但是由於人為撰寫代碼的問題,不可能完美,必須加強代碼有效性的識別。
10. 以太坊的智能合約是什麼意思
以太坊智能合約是指,部署在以太坊上的智能合約,是一段程序,運行在以太坊的虛擬機EVM中,程序可以按照事先約定的某種規則自動執行操作,執行合約的條款。
同時,智能合約對接收到的信息進行反應,它既可以接收和儲存價值,也可以向外發送信息和價值。
介紹
以太坊創始人V神指出過,以太坊智能合約中的「『合約』不應被理解為需要執行或遵守的東西,而應看成是存在於以太坊執行環境中的『自治代理』(autonomous agents),它擁有自己的以太坊賬戶,它們收到交易信息後就相當於被捅了一下,然後自動執行一段代碼。」
智能合約可以調用其它的智能合約,這就是開啟創立自治代理的能力,代理可以自己進行交易。在區塊鏈上,我們存儲的信息都是「狀態」,而智能合約就是它用於狀態轉換的方式。