banner
leaf

leaf

It is better to manage the army than to manage the people. And the enemy.
follow
substack
tg_channel

以太坊的基本:交易

發送了 ETH?有為 AMM 提供流動性?部署了新的合約?你所做的任何事都會在世界計算機上留下鏈上記錄。想知道你的交易中有些什麼嗎?

image

以太坊計算中逐個原子單位的指南

以太坊是一台世界計算機:一個存在於上千台計算機網絡之間的全球共享基礎設施。

用戶可以通過錢包(比如 MetaMask)與以太坊進行互動,錢包可以創建和發送交易到網絡中。一旦接收到交易,它就會被寫入區塊中。

額外的益處:對數據進行哈希計算(應用哈希函數)

哈希函數:這是一段用於將任意數據量轉換為一個壓縮、統一數值的代碼。它的輸入數據可以是任意長度,但輸出數據的長度則是一樣的。

(好處)哈希函數不能反向運行。

image

一筆以太坊交易由三個部分組成:

元數據(metadata),包括發送 / 接受的 ETH 金額、gas 詳細信息以及簽名數據

緩存(cache),交易預計會使用的賬戶和私鑰的列表。

數據,交易的 payload(智能合約代碼或者 API 調用)

image

元數據 —— 交易相關信息#

以下的圖片展示了所有元數據字段。我們會在接下來探討其中不顯著的部分

image

image

chainid —— 由 EIP-155 提出,用來保護鏈不受 ETC 的重放攻擊。

type —— 這裡有兩種類型:一個新的合約(0x0)還有其他所有合約(0x2)。EIP-2718 提出了一個封裝功能(0x2),讓更多不影響以太坊核心規範的類型得以使用。

nonce —— 從特定地址發送過來的交易數量。一旦交易打包到區塊上,錢包的 nonce 值就增加了。避免受到重放攻擊。

to —— 接受交易的地址(錢包或智能合約)

value —— 將要轉帳的 ETH 數額。請注意 —— 這裡只計算 ETH,不計算其他代幣。

gas —— 這筆交易所使用的 gas 單位

maxFeePerGas —— 創建交易的用戶願意支付的最高費用(每 gas 要支付 WEI。譯者注:WEI 是 ETH 的最小單位,1 個 ETH 相當於 10 的 18 次方 WEI。)它包括了基礎費用和優先費。

maxPriorityFeePerGas —— 創建交易的用戶在基礎費用(base fee)之外願意支付的最高優先費(每 gas 要支付的 WEI)。這筆費用會直接支付給礦工 / 驗證者,作為激勵打包的小費。

gasPrice —— 這筆交易需支付的每 gas 單位的成本。

(r, s, v) —— 構成創建該交易的用戶簽名的三個值。它們可以用於驗證用戶是否在此交易上 EVM 執行之前許可了這筆交易。

更多信息,可以自行查閱:Elliptic Curve Digital Signature Algorithm (ECDSA)

緩存

這個部分包括了訪問列表(accessList),它是交易將用到的地址和私鑰的列表。這筆交易還可以使用該列表以外的資源,但成本會比較高。

image

訪問列表是由 EIP-2929 提案提出的,讓客戶端可以獲取 / 緩存交易期間的數據。現在,通過訪問列表獲取地址和私鑰數據的折扣是 9 折。但這個折扣會隨著未來以太坊支持更多輕客戶端而變得更多。

數據 —— 交易中傳輸的 payload 數據

數據可以用三種方式進行:

ETH 轉帳 —— 空白

智能合約 API 調用 —— 函數和參數的名字

新的智能合約 —— 智能合約的代碼

image

輸入字段的數據以二進制形式記錄,但它可以轉譯成人類可讀的形式。

image

image

輸入字段存在於鏈上,但它不是 EVM 狀態的一部分。它只是在交易期間為合約提供數據,無法被以太坊追蹤到,也不能在共識層上使用。

EVM 只能使用在此交易中提供的數據;它無法查看過去的交易。

這一特質對於想要將歷史數據寫入以太坊區塊鏈(比如,用於稍後的手動檢索)但不考慮直接訪問 EVM 的應用程序來說十分有用。

Rollup 是最早充分利用這個想法的一種應用程序。

有時間我們會談談 Rollup。現在,Rollup 依靠著這樣一種現實:將數據寫入輸入字段比直接寫入以太坊 EVM 狀態中要相對便宜。

你現在可以看啦!這就是一筆以太坊交易的樣子

image

數字貨幣基本原理#

(一)防止貨幣偽造

對於杜絕偽造貨幣,比特幣的解決方案是保留所有貨幣的所有流通信息(即全網總賬本),可對每一個貨幣的來源進行追溯,一直到創造出該貨幣的那個時刻;每進行一次交易,就多記錄一次流通信息,並在點對點網絡上進行廣播,使得所有節點(即參與流通渠道維護的所有計算機)都保存有全部貨幣的全部流通信息。這樣任意一個節點在交易之前就可以輕鬆發現偽造的貨幣,從而杜絕偽造貨幣的流通。

(二)防止重複支付

為了防止同一貨幣被同一個人重複花費,中本聰採用了工作量證明法。如前所述,每個交易都要向網絡進行廣播,重複花費多次就意味著多次廣播關於同一個比特幣的交易。其他網絡節點將把其接收到的其中某一次交易放到一個區塊 A 內(一個區塊包含了多個近期的交易單)進行驗證,驗證方法是進行一次耗時的計算,如果計算成功,則向全網進行廣播。如果另一個節點在區塊 A 的基礎上完成了下一個區塊 B 的驗證,它就會把 B 的區塊掛在 A 區塊之後,依此類推,形成一個區塊鏈。

對於同一比特幣的多次交易會形成多個區塊鏈,最終的結果就是:哪個鏈條最長,哪個交易就被確認為有效,其他交易則被廢棄。這樣就確保了一個比特幣只能被一個人支付一次。

(三)無須第三方監管

通過工作量證明法,比特幣還基本杜絕了非法篡改歷史交易記錄的可能性,因為歷史記錄一旦被篡改,就意味著某個比特幣的交易記錄出現了一個新分支,篡改者需要自行對新分支進行驗證;與此同時,其他所有網絡節點仍在老分支上進行驗證,持續構造驗證鏈,除非篡改者擁有超越其他所有網絡節點之和的計算能力,否則它的分支增長速度永遠無法追上老分支,結果是它的篡改行為必將被宣告無效。

在所有節點上保存全部交易記錄,通過耗時的計算對交易進行驗證,二者結合起來,就構成了一個安全、可靠的去中心化的支付系統。其本質是把集中監管的工作量交付給一個人人參與的龐大網絡,網絡中的所有節點都承擔監管職責。如欲偽造貨幣或欺騙其他用戶,就是與整個網絡作對,因而無法得逞。

(四)比特幣的發行

比特幣的發行源於貨幣流通渠道自身。由於每個比特幣的每筆交易都需要進行驗證,為了鼓勵節點全身心投入驗證以維護系統的正常運作,中本聰提出了相應的激勵機制:“對每個區塊的第一筆交易進行特殊化處理,該交易產生一枚由該區塊創造者(也就是第一個對交易進行成功驗證的人)擁有的新的電子貨幣。這樣就增加了促使節點支持該網絡的激勵,並在沒有中央集權機構發行貨幣的情況下,提供了一種將電子貨幣分配到流通領域的方法”,“如果某筆交易的輸出值小於輸入值,那麼差額就是交易費,該交易費將被增加到該區塊的激勵中”。也就是說,第一批比特幣可被視為 “創世紀” 比特幣,在被 “創造” 出來之後進行流通,後續比特幣通過驗證 “創世紀” 比特幣參與的交易產生,再加入流通渠道,產生滾雪球效應,從而使得比特幣越來越多。

但是比特幣無法永遠增加,由於算法本身的設計,每 4 年產生的比特幣數值會減半,因而最終比特幣的數量會趨近於 2100 萬個。

因為對比特幣系統進行維護的人可以通過複雜的計算獲得比特幣獎勵,過程類似於礦工挖礦,因此維護者被稱為 “礦工”,其維護行為被稱為 “挖礦”。值得注意的是,“礦工” 自帶設備(一般為定制化的計算機,又稱礦機)、自發參與維護,因此人數很多且時刻變化,不會形成固定的 “第三方監管者”。而在特定的時間間隔內,只有一個礦工能夠得到獎勵,挖礦的爭奪非常激烈,從而保證了系統的安全性和穩固性。

(五)挖礦

比特幣的本質是一個互相驗證的公開記賬系統,而挖礦的本質則是在爭奪記賬權。從工作內容來看,“挖礦” 是將過去一段時間內發生的、尚未經過網絡公認的交易信息收集、檢驗、確認,最後打包加密成為一個無法被篡改的交易記錄信息塊,從而成為這個比特幣網絡上公認已經完成的交易記錄,永久保存。

在比特幣的世界裡,大約每 10 分鐘會向公開賬本上記錄一個數據塊,這個數據塊裡包含了這 10 分鐘內全網已被驗證的交易。因為所有的挖礦計算機都在嘗試打包這個數據塊提交,於是最後以誰提交的為最終結果,是需要爭奪的。最終成功生成那個 “交易記錄塊”(即區塊)的人,可以獲得伴隨這些交易而生成的交易費用,外加一筆額外的報酬。交易費用一般都是轉出資金方自願提供給挖礦者的,因此不是系統新增的貨幣;額外的報酬是新生成的比特幣 —— 這就是前面所說的 “比特幣的發行”。

比特幣的有限性就由 “額外的報酬” 數量來控制。依據比特幣系統的設計,大約每 10 分鐘可以生產一個 “交易記錄塊”,最初每生產一個 “交易記錄塊” 可以獲得 50 比特幣的額外報酬,這意味著比特幣網絡每天增加 7200 個比特幣,但是該報酬每 4 年就會減半,因此最終整個系統中最多只能有 2100 萬個比特幣。

(六)區塊鏈

礦工們為爭奪記賬權所運行的計算,實際上是根據哈希值反向求解隨機數。大家比賽的是在 10 分鐘內看誰找到一個隨機數,這個隨機數與上個數據塊的哈希以及 10 分鐘內驗證過的新交易記錄合起來可以得到滿足某個條件的最小哈希值。這個值越小對應的比特幣網絡的難度系數越高。由於哈希值的結果相當隨機,無法預知結果大小,所以只能採取窮舉法比拼算力。如果某個礦工 10 分鐘內沒搶到記賬權,就只能等待下一輪的競爭。

之所以在求解隨機數時要加上一個區塊的哈希,是因為這樣所有的數據塊就被組成了一條可以從前到後不斷驗證的數據鏈條。修改中間任何一個數據塊的任何交易記錄,都会導致從此之後的所有數據塊的哈希無法驗證成功,而如果企圖修改記錄後重新找一個合理值算出符合條件的哈希重新打包,那就意味著之後所有的數據塊都需要重新計算哈希,即使都找到了還必須比整個比特幣網絡計算得更快,才能讓網絡接受你的結果,這意味著攻擊者要擁有超過整個比特幣網絡其他部分的計算力,換句話說,要使用超過整個網絡 50% 以上的計算力才能保證攻擊有效。

這個數據鏈條就稱為區塊鏈,又稱全網總賬本,它永久保存在每個用戶的計算機上。只有擁有 50% 以上全網算力才可能篡改這個全網總賬本,比特幣系統就是通過區塊鏈 +“挖礦” 的機制實現了貨幣無法被偽造、交易無法被篡改和雙重支付無法得逞的目標。

(七)計算難度與確認次數

礦工找到一個有效的哈希值後,就會迅速把生成的數據塊轉發出去,別的礦工收到並認可這個數據塊後,就會以它為基礎進行下一輪的計算。如果期間收到具有更小哈希值的塊,則首先以數據鏈長度為優先,其次以哈希值更小為優先,拋棄之前的結果,在新的基礎上繼續進行下一輪計算。

(八)客戶端錢包軟件

在比特幣體系裡,用戶的賬戶(地址)由本地客戶端自動生成,是類似 1Gz9XmfTK4aH89MVXky1QxtyMcG44NqDRv 的一串字符。用戶告訴別人這一地址後,對方就可以向該地址轉帳了。

比特幣地址其實是一套非對稱密鑰對中的公鑰,這對密鑰通過椭圓曲線算法生成,其獨特之處在於:使用公鑰加密一段信息後,使用公鑰解不开,必須使用私鑰才可以解開;同樣,使用私鑰加密一段信息後,使用私鑰解不开,必須使用公鑰才可以解開。更加獨特的是,根據私鑰可以很容易地算出公鑰,但是根據公鑰幾乎無法算出私鑰。

因此,用戶可以把自己的地址(公鑰)告訴別人,與其進行加密通信。例如,用戶 A 把自己的公鑰告訴 B,然後以自己的私鑰加密信息,用戶 B 用 A 的公鑰解開這份加密信息,並可確認該信息由 A 發出(因為只有用 A 的公鑰才可以解開);用戶 B 用 A 的公鑰加密信息,用戶 A 用自己的私鑰解開這份加密信息,並可確認該信息是發給自己的(因為只有用自己的私鑰才能解開)。但是用戶絕不能把私鑰告訴別人,因為私鑰唯一確定了地址(公鑰)的所有權,而且無法通過公鑰計算出來。一旦告訴了別人自己的私鑰,就等於把該地址裡所存的比特幣拱手讓給了對方,對方可根據私鑰計算出公鑰(地址),然後從區塊鏈(全網總賬本)中查找該地址關聯的比特幣信息,並動用這些比特幣。

用戶賬戶的地址和私鑰都保存在比特幣錢包文件裡,一般情況下私鑰是看不見的,由比特幣客戶端軟件自動進行加密、解密運算。因此,錢包文件必須妥善保管,一旦丟失,錢包裡所有地址保存的所有比特幣就不安全了,有可能被別人盜走。由於整套比特幣體系的去中心化和匿名性特性,比特幣一旦被盜,沒有任何人有權力或能力找回。

(九)比特幣轉帳

因為比特幣不存在現金交易的概念,一切的交易都依靠賬戶間的數字轉移,所以比特幣的支付概念類似於銀行轉帳。假設 A 有 100 個比特幣,他要轉帳給 B。那么 A 寫一條信息 “從 A 的地址轉帳 100 比特幣到 B 的地址”,然後用自己錢包裡的私鑰加密並傳播到整個比特幣網絡上,網絡上的人都用 A 的地址(公鑰)解密驗證這條信息確實是由 A 發出,而通過歷史交易數據計算出 A 的地址確實擁有 100 個比特幣,於是整個網絡公認此次轉帳操作,搶得記賬權的礦工把當前時間區間內的所有交易記錄(當然包括 A 給 B 的轉帳)打包掛在區塊鏈上,A 錢包中存款減少 100 比特幣,B 錢包中存款增加 100 比特幣,並顯示該筆轉帳被確認了一次。大約一個小時後,6 次確認完成,B 獲得了這 100 個比特幣的支配權,這次轉帳徹底完成。

非對稱加密技術使這個轉帳過程得以順利實現,礦工的挖礦則保證了交易的合法性、有效性和不可撤回性。

(十)匿名與公開

由於沒有傳統銀行開戶和身份認證的過程,比特幣系統是純匿名的,即無法把用戶賬戶的地址與用戶本人相關聯,擁有某個地址私鑰的人就擁有對該地址的唯一所有權。雖然我們可以根據本地完整的交易記錄查詢每個賬號的流水信息,但卻幾乎沒有辦法知道這個賬號的主人是誰。只要願意,每個人都可以擁有幾乎無限個地址。同樣也沒有任何人有能力操作他人賬號上的比特幣。這是人類歷史上第一次從技術上保障了 “貨幣” 不可追蹤、不可凍結、不可未經許可而佔有。

反之,賬戶所有人可以輕易證明自己擁有某個地址上的財富。只需要使用私鑰加密一條信息發布出來,大家就可以確認他對該賬戶的擁有權,而不必把私鑰公開,這同樣適用於證明某筆匿名支付確實由某人發出。

當然,雖然比特幣系統是匿名的,但若一個組織願意公開自己的比特幣賬號,那麼整個網絡可以隨時追蹤到該賬號的所有流水信息。每一筆轉帳的到賬時間、數額和支出都可以清晰地看到,相當於直接查詢銀行內部原始賬單。對於 NGO(非政府組織)或公益組織來說,可以大幅降低賬目維護成本,做到 100% 的透明度。2013 年的芦山地震,壹基金就曾接受比特幣捐贈,其比特幣賬目在網絡上清晰可查。

(十一)不可撤銷與不可找回

如果一筆交易被確認了足夠多次,該交易即不可撤銷、不可逆轉。這意味著,如果一個人錯誤地把比特幣打到另外一個人的合法地址中,除非對方願意把比特幣再打回來,否則這個人的比特幣將永遠無法追回。因為比特幣世界不存在仲裁者,無法強制用戶進行操作,因此錯誤的交易能否被挽回,只取決於對方的自覺性。

基於同樣的原因,如果用戶的錢包文件(私鑰)損壞,就意味著錢包包含的所有地址上的所有比特幣都徹底丟失了,徹底躺在了交易記錄的歷史中,任何人都可以看到它,但卻得不到。因為這裡可沒有拿身份證找回這一码事。而如果想通過破解私鑰的辦法拿回丟失的比特幣,只能等到量子計算機出現了。依據當前的加密理論,只有量子計算機才有可能在較短時間內破解椭圓曲線加密算法。

基於密碼學的安全通信

P2P 網絡的連通性幾乎無懈可擊,但是信任問題無法只通過 P2P 網絡解決。例如,A 發出一條信息給 B,B 通過 P2P 網絡最終接收到此信息。這條信息可以是直接從 A 電腦傳遞過來,也可能是通過多台電腦轉手傳遞過來。於是 B 會有兩個問題:第一,這條信息到底是不是由 A 發送的?第二,這條信息是否可能被人窺探乃至篡改過?

這就回到了我們上節提到的公鑰、私鑰和非對稱加密技術。A 要發送一條信息給 B,確保這個信息只有 B 才能解密。那么 A 就用 B 的公鑰(公鑰是公開的,整個 P2P 網絡都知道 B 的公鑰)加密原始信息,這條信息在整個 P2P 網絡上傳播,雖然所有人都有 B 的公鑰,但是用公鑰無法解密這條信息,只有 B 的私鑰才能解開。最後 B 收到這條信息,用自己的私鑰解密,讀到 A 發來的消息。

那麼 A 怎麼證明自己是這條信息的發出者呢?在網絡上,每個人都可以把自己偽裝成任何人,B 收到信息時,可能傳遞信息給 B 的那台電腦會聲稱它就是 A,B 當然不能輕信,那麼有什麼辦法可以使 B 確認這條消息是由 A 發出的呢?

很簡單,A 只要把消息分兩步加密就可以了:第一步,用 A 自己的私鑰對原始信息做第一層加密;第二步,在上一步獲得的數據基礎上再用 B 的公鑰做第二層加密。B 收到這個加密的信息後,以相反的次序做兩次解密操作:第一步,用 B 自己的私鑰解密收到的信息,得到被 A 的私鑰加密過的信息;第二步,在第一步獲得的數據基礎上用 A 的公鑰再解密一次即得到未加密信息。

第一層加密的目的是證明這個信息是由 A 加密並發出的,因為只有 A 的私鑰才能完成這樣的加密,這一步也叫做數字簽名,它排除了消息是別人偽造或者別人冒充 A 的可能性。第二層加密的目的是確保信息只有 B 能夠解密、看到未加密信息,因為只有 B 有解密私鑰,即使別人看到了加密後的信息,也無法解密,更無法篡改。

公開透明

比特幣的本質是一個互相驗證的公開記賬系統。這個系統所做的事情,就是記錄所有賬戶發生的所有交易。每個賬號的每筆數額變化都會記錄在全網總賬本(區塊鏈)中。而且每個人手上都有一份完整的賬本,每個人都可以獨立統計出比特幣有史以來每個賬號的所有賬目,也能算出任意賬號當前餘額是多少。

這裡最關鍵的一點在於每人手上都有完整的賬本,因此系統裡沒有任何人有唯一決定權。任何想隱藏或修改交易數據的行為都會被整個網絡否決掉,除非有人有能力修改 50% 以上用戶的賬本,這就是比特幣系統裡所謂的 51% 攻擊。

比特幣客戶端在使用時會進行大量的數據同步,它同步的就是全網總賬本,這些數據保障了整個體系的去中心化和每個客戶端的一切知情權。正是因為所有數據公開透明,而整個比特幣軟件也是開源的,任何人都可以去查看它的源代碼,人們才會信任這套去中心化的系統,而不擔心裡面是否隱藏著什麼陰謀。

算力民主

礦工們對篡改全網總賬本及雙重支付問題的監督,實際上依靠的是計算力投票機制。以雙重支付為例,由於同一筆比特幣被支付兩次,必然形成不一致的區塊數據,導致區塊鏈分叉,承認哪次支付、拒絕哪次支付,由礦工投票決定。

投票規則如下:假如雙重支付形成兩個不一致的區塊 A 和 B,此時此時礦工甲搶到了 A 的記賬權,把 A 掛接在當前的區塊鏈末尾,礦工乙搶到了 B 的記賬權,同樣把 B 掛接在當前的區塊鏈末尾,此時的區塊鏈分叉為 A 鏈和 B 鏈。在下一個記賬周期裡,礦工們會決定把新生成的區塊掛在 A 鏈還是 B 鏈上。依此類推,隨著時間的推移,A 鏈和 B 鏈會不斷延長,直到某個鏈的長度顯著超過了另外一個,然後鏈被捨棄掉,長鏈中包含的交易被確認。

同樣,篡改網絡總賬本也意味著區塊鏈的分叉,一個鏈是被篡改的假賬本,另一個鏈是絕大部分人持有的真賬本。由於大部分礦工看不到篡改過的假賬本,因而他們只會在正確的鏈上掛接新數據塊,也就是正確的區塊鏈會被絕大部分的礦工維護,而被篡改的區塊鏈只有篡改者自己維護,競爭的結果自然是篡改者的假賬本被拋棄。

比特幣系統任何規則的更改幾乎總會引起區塊鏈的分叉,礦工們通過向不同的鏈掛接新數據塊的方式表達自己對新、舊規則的態度。顯然,私自更改的規則將無法獲得絕大多數礦工的支持,因為規則內嵌於挖礦軟件之中,礦工們不更新軟件(即拒絕私自更改規則的軟件),就不可能在新規則的區塊鏈之後掛接新數據塊。

數字貨幣家族成員#

自從比特幣出現之後,數字貨幣家族風起雲湧,幾乎每個月都有新的數字貨幣誕生。據不完全統計,目前至少已經有 100 多種數字貨幣,其中絕大多數通過修改比特幣的代碼得來,可能尚未引起人們的關注便已消失。另外一部分借鑒了比特幣的思想,並對其算法和機制有所改進。我們將比特幣之外的數字貨幣統稱為競爭幣,本節將簡單介紹幾種常見的數字貨幣。

(一)比特幣(Bitcoin)

比特幣是最早、最著名的數字貨幣,它開啟了數字貨幣時代,目前受到的關注最多,價格也最高。本書的主要內容以比特幣為例展開,此處從略。

(二)萊特幣(Litecoin)

萊特幣誕生於 2011 年 10 月 7 日,是比特幣最緊密的追隨者。用其自己的話來說,如果比特幣是貨幣世界的黃金,我們就是白銀。與比特幣相比,萊特幣的特點如下:

發行速度更快。萊特幣的發行速度是平均 2.5 分鐘一個塊,是比特幣的 4 倍,15 分鐘就可以完成 6 次確認,方便商戶交易。

工作量證明方面採用 scrypt 算法而不是 SHA256 算法。

採用 scrypt 算法是萊特幣與其他純模仿比特幣的數字貨幣之間最大的不同之處,scrypt 算法的特點是在運算過程中不能單靠 CPU 的算力,而需要大量的內存支持。目前,市面上的專業比特幣礦機在萊特幣挖礦方面不如顯卡有優勢,也因此,目前的萊特幣礦工大部分仍依靠顯卡挖礦。

萊特幣的發明者認為,這種設定可以讓萊特幣的挖礦權分散在大量散戶礦工手上,而不是像比特幣一樣,逐漸集中、壟斷在大型礦機的擁有者手中。但需要指出的是,這種設置是一把雙刃劍,在避免挖礦成為少數人參與的資本密集型產業的同時,顯卡挖礦導致總算力偏低的問題,也令萊特幣相較於比特幣,更易遭受 51% 攻擊。

目前,萊特幣的全網總算力約為 100GHash/s,共計發行了近 2389 萬枚,平均每枚價格為 32 美元左右,市值約 7.7 億美元。

(三)Ripple 幣(XRP)

Ripple 是一個開放支付網絡,XRP 是該網絡中的基礎貨幣。嚴格意義上講,XRP 不能算是 “正宗” 的數字貨幣,因為它不由算法發行,而由 Ripple 的運行公司 OpenCoin 集中發行。XRP 的總量是 1000 億枚,OpenCoin 會將這些 XRP 贈送給投資人和普通用戶,通過贈送的速率來控制 XRP 的價格。

由於 XRP 沒有採用比特幣的挖礦機制進行發行,因而受到了許多比特幣愛好者的抨擊。但事實上 XRP 的作用與比特幣完全不同,它主要用作不同貨幣之間換算的基礎貨幣。目前 XRP 共有近 5 萬個賬號,每月交易量約為 9 億枚。

(四)Mastercoin(MSC)與 BitShares(BTS)

MSC 協議首次發布於 2012 年 1 月 6 日,其首席研發者 J. R. Willett 稱之為比特幣 2.0。Willett 的觀點是,比特幣協議可以 “像一種協議層一樣利用起來,在不需要更改比特幣基礎協議的前提下,在其區塊鏈之上可以建立具有其自身規則的新貨幣的協議層。” 此項目在 2013 年 7 月 31 日正式啟動。首先進行了為期一個月的眾籌活動,期間任何人都可以用比特幣換取 MSC,1 個比特幣換購 100 個 MSC,而且在眾籌期結束前,每周還可獲得額外的 10% 獎勵,以鼓勵投資者儘快發送比特幣。最後共籌得 5120 個比特幣,這些資金用於研發以 MSC 為中心的項目。目前正懸賞 300 個比特幣用於開發去中心化的交易客戶端。

BitShares 是由 Invictus Innovations 創建的項目,從大的概念上來看和 Ripple 非常相似,都是為了解決交易和流動問題而提出的。BitShares 出現較晚,借鑒了 Ripple 許多優秀的思想,同時還發展了比特幣的去中心化思想。BitShares 將內置交易功能,每個用戶都是一個交易所,實現了交易所的去中心化。BitShares 系統內置的貨幣單位同樣稱為 BitShares(BTS),通過挖礦發行,總發行量約 2000 萬個。在 BitShares 中,不僅可以交易比特幣、萊特幣,包括美元、人民幣、黃金等一切有價值的證券和實物也都可以進行交易。

後文還將詳細介紹 MSC 和 BTS,此處不再贅述。

(五)Peercoin(PPC)

PPC 發布於 2012 年 8 月,它以權益證明(POS)取代比特幣的工作量證明(POW)來維護網絡安全。PPC 方案的提出人 Sunny King 認為,POW 是中本聰在技術上的主要突破,但 POW 的本質意味著 BTC 需要消耗能源來維護運行,維護這樣一個網絡的運轉需要消耗大量的成本。隨著比特幣網絡採礦產出下降,最終其可能提高交易費用來維持整個網絡的安全性。

PPC 採用了 POS+POW 的混合設計,系統中的區塊包括兩種類型:POS 區塊和 POW 區塊。POS 區塊是一種特殊的交易,稱為幣權(coinstake,與比特幣中的 coinbase[幣基]相對應)。在幣權交易中,區塊持有人可以消耗他的幣齡獲得利息,同時獲得一個 POS 記賬(造幣)權。這樣除了類似比特幣的 POW 造幣外,POS 也可以用來造幣,後者基於幣權交易中消耗的幣齡,每消耗 1 年幣齡可以造 1 分錢的幣,這樣只會帶來輕微的通貨膨脹。POW 主要在最初的造幣階段起作用,其重要性逐漸降低。

通過 POS 進行造幣和網絡維護,PPC 不需要消耗大量能量,而且能維持系統安全,因此它自稱為 “節能且具成本優勢的 P2P 電子密碼貨幣”。這一理念也得到了支持者的認可,截至目前,PPC 共發行約 2087 萬枚,每枚價格約為 4 美元,總市值約 9000 萬美元。

(六)Namecoin(NMC)

NMC 首次發布於 2011 年 4 月,是一個基於比特幣技術的分佈式域名系統。該項目由 bitdns 提出,主要針對當前 DNS(域名解析系統)的缺陷。NMC 擁有頂級域名.bit,用戶可使用 NMC 購買.bit 下的二級域名。

NMC 當前的發行量約為 746 萬枚,每枚價格約 6 美元,總市值約 4500 萬美元。

(七)其他

其他部分數字貨幣的發行量、價格及總市值如表 1-1 所示。

image

部分已消失數字貨幣

Coiledcoin,死於 51% 攻擊。

Fairbrix,推廣不力。

Liquidcoin,挖礦難度固定,導致新鏈產生速度太快,最終失去控制。

MMMcoin,死於欺詐。

Qubic,死因不詳。

SolidCoin,數字貨幣界的一朵奇葩,試圖把自己作為一個由 “能量” 支撐的貨幣,死於手續費太高,被稱為騙局。

Tenebrix,發布前提前挖礦,失去礦工信任。

Rucoin,非開源。

交易相關的 2 個名詞:

市場深度#

第一,市場深度,這是由在同一價位上所有未成交的買單或者賣單構成的。是指在交易平台上能夠承受多大大額交易時幣價不出現大幅波動的能力。市場深度越深表明市場越穩定、越成熟。舉個例子,比如說你要在火幣網賣出手中的 1000 枚比特幣,按照當前的實時價格成交。假設每一枚比特幣的價格是 1 萬元。在火幣網,1 萬元這一檔的買單有 500 個,在 9999 元這一檔的買單有 300 個幣,在 9998 元這一檔的買單有 200 個幣。那么,這個時候你按照實時價格去賣出,當你賣完這 1000 個比特幣之後,比特幣的實時價格就會下跌 2 元。也就是說,你的收益是 500*1+300*9999+200*9998,一共是 999300 元。再比如說,你在另外一個交易平台上同樣去賣出 1000 個比特幣,假設說這個平台深度不是很好,比如說在 1 萬元上的買單有 200 個,在 9999 元的買單有 200 個,一直到 9900 元的買單,才能夠滿足了你的 1000 個幣的交易的需求。那么,如果你將這 1000 個幣實時價格全部賣完時,價格會下跌 100 元。這就是市場深度的差別。

市場流動性#

第二,市場流動性,這是指在市場迅速買賣比特幣而不受阻的能力。流動性越好,表現在你在買賣比特幣時等待成交的時間越短,交易平台的交易越活躍。比如說,你在火幣網買入 10 枚比特幣,花了 5 秒鐘時間。而你在另一平台去買比特幣,花了 5 分鐘。而這 5 分鐘,你可能要承受這 5 分鐘之內價格波動的風險。這就是市場流動性的差別。

我們在判斷交易平台的時候,專業的用戶會看市場深度和市場流動性誰家好,普通的用戶會看交易量誰家大。而交易量這個數據,我們知道可能是不太準確的。幾個 API 用戶就能把交易量拉上一大截,API 用戶是什麼呢,我們後面會具體解釋。市場深度和市場流動性,才是考驗交易平台優質的重要標準。此外,由於很多國家的比特幣交易平台是沒有傳統金融牌照的,我們在判斷的時候,看平台的經營時間還有品牌口碑,這也是交易平台一個非常重要的參考。

我們剛剛提到的 API 用戶到底是什麼意思呢?其實,這個就類似於傳統金融市場裡的自動化交易,有時候也稱量化交易。交易員根據自己的策略 h,設置好交易策略和參數,啟動程序,就可以進行自動化交易。因為是程序自動運行,所以它的智能程度和頻次要比人的手工操作高一些。有的量化交易策略是套利策略,當策略檢測到價差達到多少元的時候,就會在價高的平台賣出,在價低的平台買入。有的量化交易策略是趨勢策略,就會更加複雜一些,它會根據趨勢的指標來發出賣出和買入的信號。量化交易是一個成熟的交易市場的構成部分。

我們再來看一下全球的比特幣交易的發展。全球最早的知名交易平台叫做 MTGox,由 “電驢之父” 傑德・麥克卡勒伯於 2010 年 7 月成立的,後來賣給了一位移居日本的法國人馬克・卡普雷斯。馬克・卡普雷斯對 MTGox 進行了改造,將其打造成為全球最大的比特幣交易平台,它一度佔據了全球比特幣 70% 的交易量,中國的交易者將其戲稱為 “門頭溝”。但是這家平台因為 2014 年 2 月,受到黑客攻擊,被盜取了 85 萬枚比特幣。自此平台關閉,申請破產。這個成為中國的比特幣交易平台崛起的大好契機。

從 2014 年上半年到 2017 年 1 月,中國成為全球最大的比特幣交易市場。一是因為中國的交易平台在服務創新、產品創新上做了很多的努力,二是中國的交易平台實施免交易手續費的交易策略。

到 2017 年 1 月,中國的央行等監管部門開始進駐到主流交易平台,抑制比特幣交易投機,中國的交易平台去掉了槓桿業務、收取交易手續費,並進行反洗錢系統的升級。在此期間,日本在 2017 年 1 月開始重新成為全球最大的交易市場了。根據火幣區塊鏈研究中心在 3 月份的統計,全球各國貨幣計價的比特幣交易成交量排名裡面,日元是第一名的,他們的交易量佔全球 43% 左右(一周成交 917478 個);排名第二的是美元,排名第三是中國人民幣。到了 2017 年 9 月的時候,韓元也已經超越人民幣成為第三大法定貨幣與比特幣的交易市場。

國外的交易平台,我們先介紹一批經營時間比較長的交易平台。除了剛才提到的 MTGox “門頭溝” 之外,斯洛文尼亞的 Bitstamp 也是比較早的一家平台,它在 2014 年底的時候出現過一次安全事故,但是穩定度過了。在香港運營的美元交易平台 Bitfinex 也是一家非常老牌的並且比較大的交易平台,但是也在 2016 年 8 月被黑客盜走了將近 12 萬枚比特幣,後來 Bitfinex 採用了類似債轉股的方式,度過了這段危機。美國交易所 Circle 和 Coinbase 通過合規化成長為更有競爭力的交易所。其他交易所通過差異化定位去獲取用戶,如 LocalBitcoins,他們把自己的業務聚焦在場外交易上。對於各個交易平台來說,如何去保障平台的比特幣資金安全,是一個嚴肅的話題,也是個生死話題,不可馬虎對待。火幣網運行多年,是國內第一家採用全職安全團隊的平台,也是第一家採用自主研發的多重簽名錢包的平台,在安全方面積累了非常多的經驗。

那麼,場內交易和場外交易又是什麼意思呢?這是兩個相對的概念。在交易平台上進行撮合,買賣價格公開,平台實時顯示當前報價。這就是場內交易。比如說,你想買 3 個比特幣,你看到當前的報價是 3333 美元。你覺得有點高,想在 3332 美元的時候買入,於是你掛了一個 3332 美元的買單。過不久後,有人以這個價格進行賣出,你和他就成交了,這個時候你就獲得了 3 枚比特幣到賬戶。因為是平台幫你撮合,這個跟股票類似,所以你就不知道跟你成交的對手是誰,也不需要知道誰賣給了你這 3 個比特幣,有可能是一個人,也有可能是很多人。剛才我介紹的這些交易平台,包括火幣網、BitStamp、BitFinex、Coinbase 等等,在這些平台上進行的交易,都屬於場內交易。

涉及法定貨幣的場內交易還有一個顯著的特點,就是要符合當地的金融法律法規,會對用戶進行嚴格的認證和反洗錢處理,實行平台保證資金來源合法的義務。

在場內進行比特幣交易,很像我們在買股票。不過稍微有點不一樣。在中國 A 股的股票的交易時間是周一到周五早上 9 點半到下午 3 點,我們國家的股票有漲跌停 10% 的限制,還有 "T+1" 交收制度,當日買進的股票,要到下個交易日才能賣出。而比特幣的場內交易,是全球 7*24 小時交易,沒有開收盤時間,也沒有漲跌幅的限制,所有的交易為 “T+0”,你可以在場內隨時的買入,買入之後就可以提出平台。

那麼,場外交易又是什麼意思呢?除了交易平台之外,還有一些其他地方可以進行交易,這些市場因為集中的和統一交易制度和撮合機制,因而把它們統稱為場外交易市場,又叫 OTC 交易市場。還是剛才的那個例子,假設你想買 3 個比特幣,你需要自己去尋找中間人,或者你去找到礦工,跟他協商一下到底你能多少錢賣給我 3 個比特幣呢?如果你想以 3332 元去買這 3 個比特幣,但是礦工告訴你你出的價太便宜了,那麼你就買不到了。於是你就需要接著再去找下一家,或者再跟他討價還價,直到找到滿意價格為止,這個就是場外交易或者 OTC 交易。

隨著區塊鏈資產種類的增加,傳統的法定貨幣對數字資產的交易已經不能滿足全球人類投資的需求。根據火幣區塊鏈研究中心的監測顯示,現在全球比特幣的交易,一半以上都是來自於幣幣交易,法定貨幣與比特幣的交易佔據越來越小的份額。比較知名的幣幣交易的交易平台有 Poloniex、Bittrex,也就是大家常說的 P 網、B 網。火幣網國際站也支持幣幣交易,它是由火幣海外團隊運營的。

幣對幣交易相對法定貨幣對比特幣交易來說比較專業,這裡可以給大家普及幾個名詞解釋。

交易對#

首先我給你講一下什麼是交易對:交易對,是指用一種資產去定價另一種資產,比如說用美元去定價比特幣,就形成了比特幣與美元的交易對,用比特幣去定價萊特幣,就形成了萊特幣和比特幣的交易對。隨著全球數字資產的品種越來越多,以及很多國家直接把數字貨幣當作計價貨幣在使用,所以使用幣對幣的交易就會越來越多。

幣幣交易#

再講下幣對幣交易是怎麼回事?用一種數字資產去直接換取另一種數字資產,中間不涉及任何法定貨幣的中轉或者結算,也就是我們所說的幣對幣交易。在交易中,可以用比特幣換取萊特幣,也可以用萊特幣再換回比特幣;用以太幣換取比特幣,也可以用萊特幣再換以太坊。幣對幣交易的交易標的是之前我提到的 “交易對”,幣對幣交易的價格就是交易對的基礎貨幣的計價價格。

以下是我們常見的一些幣幣交易對:

比如說萊特幣對比特幣的交易對(LTC/BTC):就是用比特幣(BTC)去定價萊特幣(LTC),每交易一次的話,表示用多少個比特幣能去購買萊特幣,或者是用多少萊特幣換回多少個比特幣。

同樣,也有以太坊對比特幣的交易對 (ETH/BTC):就是用比特幣(BTC)去定價以太坊(ETH),該交易對的價格表示,一個以太坊價值多少個比特幣。

好了,今天我們講了比特幣產業的中游 —— 交易。我們了解了交易平台如何去判斷它的優劣,要注重看市場深度和市場流動性。我們還講解了全球比較知名的交易平台、場內和場外交易分別是怎麼回事,我們再來重溫一下這兩種交易到底是什麼:

場內交易是指在交易平台進行的撮合交易,交易平台幫你去撮合,價格公開,實時顯示當前報價,你不需要知道對方是誰;

場外交易是指沒有統一的交易市場和交易場所的一種交易方式,你需要自己去尋找你的對手方,跟 TA 討價還價,最後達成一致。

另外,我們還提到了幣幣交易,現在市場上的幣幣交易佔到整個比特幣交易的一半,如果你可以用比特幣可以去交易以太坊。也可以用以太坊去換萊特幣,等等等等,會有非常多非常多的交易對。

一個比特幣錢包,它能夠生成無數個錢包地址。每個地址裡都可以往裡存入比特幣,也可以發出比特幣。每個地址對應一把私鑰,每個私鑰對應一個比特幣地址。用私鑰去花費比特幣的方式,就是對這個私鑰擁有的未花費的比特幣進行簽名,簽名的這個過程也就是加密的過程。

私鑰是隨機生成的,那麼私鑰還安全嗎?我通過窮盡所有的排列組合,能不能夠找到與某個比特幣私鑰地址所對應的字符串呢?再者,世界上會不會出現兩個一模一樣的私鑰呢?如果出現了兩個一樣的私鑰,那麼這兩個人就可以互相動用彼此比特幣地址裡的資產了。別擔心,我慢慢跟你說。

從密碼學上來說,私鑰是安全的。因為私鑰本質上是由 32 個字節組成的數組,1 個字節等於 8 位二進制,也就是一個二進制只有 0 或者 1 兩種可能性,所以私鑰的總數是 2^256 次方可能性,這個數量已經超越了全宇宙中原子的總數了。我們生活中的密碼很容易被黑客嘗試出來,因為容易被破解的密碼通常比較短,黑客窮盡這幾位數就可以了。但是如果黑客想要遍歷所有的私鑰,耗盡整個太陽的能量也是不可能做到的。我們說的比特幣私鑰從密碼學上說是安全的,並不是說不可能出現重複的私鑰,而是說不可能通過遍歷所有的私鑰方式,或者其他的方式找到對應的比特幣地址背後的私鑰,所以私鑰從密碼學上看是安全的。

如果你擁有了某個比特幣地址的私鑰,那麼就意味著你擁有了動用這個地址上所有比特幣的所有權。只有你才有權利去決定地址上的比特幣是否要花出,要轉給誰。如果私鑰丟了,這個地址上的幣就再也花不了。這個就是我們在區塊鏈瀏覽器上,看到很多比特幣地址裡的幣,很久都沒有動過,有可能就是它的主人把 TA 的私鑰丟失了。

什麼是比特幣錢包

那麼什麼是比特幣錢包呢? 我剛才提到的私鑰、地址這些東西,它需要一個統一的團建來管理,這個管理的工具就叫做錢包。我在前面的課程裡講過,比特幣錢包就相當於你的實物錢包,地址就相當於你錢包裡的一張張銀行卡,私鑰就是你的銀行卡密碼。

比特幣錢包有很多種類,大致可以分為在線錢包和離線錢包兩大類。所謂在線錢包,就是聯著網生成私鑰或者連著網運行的錢包,通常我們也叫它熱錢包。離線錢包,就是不聯網的錢包,我們也叫它冷錢包。冷錢包因為不聯網,所以大大降低了黑客能夠盜取的概率,相對來說比較安全,但是冷錢包的操作比較複雜,適合有技術背景的人去使用。

其實錢包還有另外一種分類的維度,接下來我給你介紹一下:

全節點錢包

第一類是全節點錢包。全節點錢包也是早期的錢包形態,它意思是它會從網上下載比特幣網絡所有的節點,從它的第一個區塊至今所有的數據,然後這個錢包自己來維護全網的數據,自己來驗證競爭挖礦的結果,是完全的去中心化的錢包。典型的例子是 Bitcoin Core,官方核心錢包。你也別擔心它太大,現在大概是 150G 左右,下載幾天就可以把所有的數據同步完畢,畢竟一個普通的一個筆記本電腦還是能裝的下的。但是你需要經常把它開著,然後去同步節點上的數據,否則每次使用的時候你要先同步數據才能使用。

輕錢包

第二類錢包,我們叫做輕錢包。這類錢包只維護跟你有關的交易相關數據,不同步其他數據,也屬於去中心化的錢包的一種。國內的比太錢包就是這種輕錢包。

中心化錢包

第三類就是中心化錢包。它完全依賴於運行這個錢包的公司還有服務器,你讀取的數據可能都來自於這家公司提供給你的,而不是比特幣網絡數據提供給你的數據。選擇這一類錢包的時候一定要注意它的歷史口碑,因為它是中心化錢包。

可能還聽說過另外一個名詞,叫做硬件錢包。硬件錢包是什麼?在前一段時間,2017 年 9 月份,受國內市場情緒影響,庫神硬件錢包被賣脫銷了,在圈內帶火了 “硬件錢包” 這個概念。硬件錢包是指錢包軟件運行在專門設計的硬件的技術之上。硬件錢包因為有製造成本,所以不像在線錢包一樣免費 ,你需要花錢購買這個硬件設備。這個硬件設備,它的形態是多樣的,有的像 U 盤,有的像手機。當然,持有這種硬件錢包的人,TA 會有一種親手掌握著比特幣的安全感,這也是一些人所追求的。

隨著技術的發展,現在一個錢包也可以支持多個幣種了。如果你有兩種以上數字資產,可以選擇支持多幣種的錢包,這樣管理起來也會更方便。現在主流的錢包一般會支持比特幣、以太坊,萊特幣、比特現金,還有以太經典等等。

你可能會問,我是小白,下載一個完全去中心化的錢包,我不會使用,我又擔心木馬中毒。但是我又不信任由一個中心化公司運行的網頁錢包,怕他們被黑客攻擊或者監守自盜,那麼該怎麼辦呢?隨著技術的發展,一種叫 “多重簽名” 的技術在錢包領域得到非常廣泛的運用。什麼叫 “多重簽名” 呢?我們知道一把私鑰對應一個比特幣地址,你有了這把私鑰才能對比特幣上地址上的比特幣進行處理。運用私鑰進行加密的過程就是簽名。那么多重簽名的意思,就是需要好幾把私鑰簽名,才能夠動用一個地址上的比特幣。也就是說,一筆交易,需要有兩把到三把,或者更多的私鑰簽名,才能夠完全被移走。這樣大大提高了資產的安全性,同時也適用於企業級的比特幣轉移,同時又不影響它速度。

那麼說到現在,我們怎麼存儲和管理我們自己的比特幣資產呢?這裡我可以給你一些建議。這幾點建議也是我的朋友文浩,經常給他的用戶們講的。

第一,從比特幣官方網站或其他數字資產的錢包網站選擇錢包。比特幣官網最初由中本聰維護的,隨後以一種公益性的志願者維護的方式一直發展到今天。所以它推薦或介紹的內容有自己的價值判斷,不受商業利益的驅使。

第二,儘量從官方的渠道下載。儘量從官方網站、從谷歌、蘋果的官方應用商店下載錢包。不要從非正式的渠道下載錢包,更不要接受別人從 QQ、微信傳過來的錢包安裝包。因為涉及到自己的資產安全,所以你要格外慎重,切不可輕信他人。因為給你傳遞過來的這些安裝包,可能有木馬。

第三、你要做好自己私鑰的備份。對私鑰的保護要做的非常的完備。對私鑰需要做好備份,做好加密。如果你有技術條件,可以儘量做到離線不聯網,這樣大大提高私鑰的安全性。如果你有較大額的比特幣存儲,我建議你儘量把自己的私鑰備份好,並且離線保存。

第四,及時關注技術發展動態。比如說,最近比特幣或其他數字資產有分叉,你所使用的錢包能不能幫你處理好這些問題、要不要進行相應的處理。這些都是你要積極關注的。

我們按老規矩來總結一下今天的內容,這節課我們講了比特幣的儲存。從密碼學上來講私鑰是十分安全的。我們還講了三種比較適合大眾的錢包,全節點錢包、輕錢包,還有中心化錢包。最後,我還給出了 4 種儲存和管理我們比特幣資產的建議,分別是:從比特幣官網或其他數字資產官網去下載錢包、從官方渠道下載、私鑰及時做好備份,以及,及時關注技術的發展動態,查漏補缺。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。