19 以太坊賬戶

一、以太坊賬戶(上)
1、從UTXO談起

  • 比特幣在基於UTXO的結構中存儲有關用戶餘額的數據:系統的整個狀態就是一組UTXO的集合,每個UTXO都有一個所有者和一個面值(就像不同的硬幣),而交易會花費若干個輸入的UTXO,並根據規則創建若干個新的UTXO:
  • 每個引用的輸入必須有效且尚未花費;對於一個交易,必須包含有與每個輸入的所有者匹配的簽名;總輸入必須大於等於總輸出值
  • 所以,系統中用戶的餘額(balance)是用戶具有私鑰的 UTXO 的總值

2、以太坊的做法

  • 以太坊的“狀態”,就是系統中所有帳戶的列表
  • 每個賬戶都包括了一個餘額(balance),和以太坊特殊定義的數據(代碼和內部存儲)
  • 如果發送帳戶有足夠的餘額來支付,則交易有效;在這種情況下發送帳戶先扣款,而收款帳戶將記入這筆收入
  • 如果接收帳戶有相關代碼,則代碼會自動運行,並且它的內部存儲也可能被更改,或者代碼還可能向其他帳戶發送額外的消息,這就會導致進一步的借貸資金關係

3、優缺點比較
比特幣 UTXO 模式優點:

  • 更高程度的隱私:如果用戶爲他們收到的每筆交易使用新地址,那麼通常很難將帳戶相互鏈接。這很大程度上適用於貨幣,但不太適用於任意dapps,因爲dapps通常涉及跟蹤和用戶綁定的複雜狀態,可能不存在像貨幣那樣簡單的用戶狀態劃分方案。
  • 潛在的可擴展性:UTXO在理論上更符合可擴展性要求。因爲我們只需要依賴擁有 UTXO 的那些人去維護基於Merkle樹的所有權證明就夠了,即使包括所有者在內的每個人都決定忘記該數據,那麼也只有所有者受到對應UTXO的損失,不影響接下來的交易。而在帳戶模式中,如果每個人都丟失了與帳戶相對應的Merkle樹的部分,那將會使得和該帳戶有關的消息完全無法處理,包括髮幣給它。

以太坊賬戶模式優點:

  • 可以節省大量空間:不將 UTXOs 分開存儲,而是合爲一個賬戶;每個交易只需要一個輸入、一個簽名併產生一個輸出。
  • 更好的可替代性:貨幣本質上都是同質化、可替代的;UTXO的設計使得貨幣從來源分成了“可花費”和“不可花費”兩類,這在實際應用中很難有對應的模型。
  • 更加簡單:更容易編碼和理解,特別是設計複雜腳本的時候。UTXO在腳本邏輯複雜時更令人費解。
  • 便於維護持久輕節點:只要沿着特定方向掃描狀態樹,輕節點可以很容易地隨時訪問賬戶相關的所有數據。而UTXO的每個交易都會使得狀態引用發生改變,這對輕節點來說長時間運行Dapp會有很大壓力。

4、比特幣和以太坊的對比
在這裏插入圖片描述

二、以太坊賬戶(下)
1、以太坊賬戶類型
外部賬戶 (Externally owned account, EOA )(用戶賬戶/普通賬戶)

  • 有對應的以太幣餘額
  • 可發送交易(轉幣或觸發合約代碼)
  • 由用戶私鑰控制
  • 沒有關聯代碼

合約賬戶 (Contract accounts)(內部賬戶)

  • 有對應的以太幣餘額
  • 有關聯代碼
  • 由代碼控制
  • 可通過交易或來自其它合約的調用消息來觸發代碼執行
  • 執行代碼時可以操作自己的存儲空間,也可以調用其它合約

在這裏插入圖片描述

2、以太坊交易(Transaction)
簽名的數據包,由EOA發送到另一個賬戶
消息的接收方地址
發送方簽名
金額(VALUE)
數據(DATA,可選)
START GAS :gas limit
GAS PRICE

3、消息(Message)
– 合約可以向其它合約發送“消息”
– 消息是不會被序列化的虛擬對象,只存在於以太坊執行環境(EVM)中
– 可以看作函數調用
消息發送方
消息接收方
金額(VALUE)
數據(DATA,可選)
START GAS

4、合約(Contract)

  • 可以讀/寫自己的內部存儲(32字節key-value的數據庫)
  • 可向其他合約發送消息,依次觸發執行
  • 一旦合約運行結束,並且由它發送的消息觸發的所有子執行(sub-execution)結束,EVM就會中止運行,直到下次交易被喚醒

5、合約應用一

  • 維護一個數據存儲(賬本),存放對其他合約或外部世界有用的內容(把它當成一個穩定的數據存儲賬本)
  • 最典型的例子是模擬貨幣的合約(代幣)

6、合約應用二

  • 通過合約實現一種具有更復雜的訪問策略的普通賬戶(EOA),這被稱爲“轉發合同”:只有在滿足某些條件時纔會將傳入的消息重新發送到某個所需的目的地址;例如,一個人可以擁有一份轉發合約,該合約會等待直到給定三個私鑰中的兩個確認之後,再重新發送特定消息
  • 錢包合約是這類應用中很好的例子

7、合約應用三
管理多個用戶之間的持續合同或關係
這方面的例子包括金融合同,以及某些特定的託管合同或某種保險

三、總結
主要是一些對以太坊賬戶的理解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章