比特幣的起源
區塊鏈的歷史起始于比特幣,它是世界上第一個加密貨幣。它的創造者是一個被稱為“中本聰”的神秘人。此人提出了一個愿景,就是創造一種完全去中心化的數字貨幣,也就是說,再也沒有一個單一實體可以控制這種貨幣并且控制貨幣的轉移、創造和存儲。
這種數字貨幣將完全屬于使用它的人。
為此,中本聰制定了一個對等計算機網絡協議。當比特幣網絡上的某一用戶A想要將比特幣轉移給另一個用戶B時,A必須把要與B進行新交易的意圖在同一時刻通知網絡上的其他用戶。
根據網絡規則,所有網絡內的計算機都必須存儲所有比特幣完整的交易歷史。這就好比是每臺電腦都有一個賬本,記錄著在網絡上所有人比特幣的交易情況。這種去中心化的過程使比特幣不僅擺脫了由單一方控制的集中數據庫,還能有效維持交易歷史。
為了準確地跟蹤加密貨幣的流動狀態,這些比特幣賬本必須存儲相同的信息。然而,網絡是不可靠的。在用戶可以隨意進出網絡的情況下,使每個人的賬本都保持完全同步還存在一些困難。
這就需要引入區塊鏈來幫助解決上述問題。
解決方案:區塊鏈
用戶將交易寫入賬本時,不是一次寫一個,而是成批地寫。這種批量寫入的交易就被稱為“塊”。
一些被稱為“礦工”的用戶負責創建這些塊。礦工們通過網絡來監測用戶們是否進行了比特幣交易。一旦一個交易被抓取到并記錄下來,那么發現此次交易的礦工就可以發布塊,這個塊包含了所有新交易。新發布的塊中其實不僅包含新交易,也囊括了此前所有的交易。
在礦工將一個塊發布到網絡前,首先要確保每個用戶的交易真實有效。判斷標準是一組預定義的規則(這個規則指的是,比如不可以花費自己賬戶上沒有的錢,以及錢不是憑空捏造的等等)。一旦確定新塊真實有效,礦工就會把它添加到不斷增長的交易列表中。由此,這些不斷增多的交易塊被稱為區塊鏈。用戶可將交易歷史存儲在一個塊鏈的數據庫中。
區塊鏈還有各種各樣的奇妙之處,它允許通過網絡安全發送加密貨幣。
如果你想了解更多關于如何開展挖掘工作、去中心化系統如何抵御攻擊、比特幣如何使用密碼提供訪問資金通道,或者想深入了解決策等內容,請閱讀CertiK介紹比特幣的系列文章。
在區塊鏈上進行交易的流程:
· 區塊鏈是一個數據庫,它以相同的副本存在于世界各地的計算機中。
· 當用戶想在區塊鏈上進行或處理交易,就必須將此交易內容發送出去,等待礦工將其發布到新塊中。要使一個塊真實有效,就必須得到網絡上所有用戶的認可。
· 一旦發布了新塊,用戶的新交易就會被添加到區塊鏈中。
· 交易不能被刪除或者撤銷,它們將永遠被記錄在區塊鏈歷史中。
區塊鏈是我們記錄交易的方式,也是比特幣等去中心化加密貨幣的支柱。要讓每個人都將所有交易記錄下來,就必須要達成一個共識,而這個共識必須是不易被破解或改變的。
閱讀到這里時,相信你已經了解了區塊鏈的基礎知識。
以太坊和智能合約
如果區塊鏈系統不僅僅用于交易和付款呢?如果我們做到一組信息和規則達成一致后,再更改這些信息,結果會是如何?
在比特幣中,被追蹤的信息集是網絡上每個用戶的比特幣資金。信息集的規則非常簡單:沒有人可以花別人的錢,沒有人可以花自己沒有的錢,區塊鏈本身的框架也編碼了一些其他的規則和限制。
然而,區塊鏈不應該被限制在簡單的資金轉移領域。理論上講,我們存儲的信息可以是我們想要存儲的任何東西,我們也應該憑借自己的想法去修改它的規則。
這是一個改變數字世界的發現。
設想一個標準計算機程序:它始于接受用戶輸入的某個存儲狀態,然后根據用戶輸入,通過一組預定的指令來運行及修改該狀態。
那么任何像這樣的程序都可以被“區塊鏈化”。用戶所輸入的狀態可以在區塊鏈上表示出來,而任何交易都可以作為這個計算機程序的輸入。代表這些計算機程序的指令可以與區塊鏈網絡上的每個礦工和用戶進行交互,他們就可以根據最新的交易表來更新狀態。
在比特幣的領域中,我們更新的狀態是賬戶余額集。雖然比特幣交易是用戶自己輸入的,但賬戶余額其實是通過減去支出者的余額,再將交易金額加到接收者賬戶上計算出來的。
區塊鏈本身只是一個交易列表,或者也可以說是交易狀態本身。例如雖然所有的帳戶余額并沒有寫到這個列表中,但是任何用戶都可以使用已知的網絡規則計算出當前的交易狀態。
舉個例子,以太坊是由比特幣愛好者Vitalik Buterin發明的。他曾主張在比特幣中使用“智能合約”,但是比特幣社區拒絕了他的提議。于是他決定自己創建可以替代區塊鏈的系統,而這個系統可以使用智能合約。
要理解為什么Vitalik要制造以太坊,我們首先要明白什么是智能合約,以及懂得智能合約的重要性。其實,智能合約只是一個程序,它允許我們以預定方式對貨幣流進行編程,但對區塊鏈世界來說,智能合約的意義不止于此。
想象一下,在小區、小太和小幣這三個人之間有一份真正的法律合同。這份合同是這樣寫的:“如果小太在8月13日前付給小區1000美元,那么小區將付給小幣2000美元。否則小區不會付錢給小幣?!?/p>
從某種意義上說,這是一種根據一定條件,由法律強制執行的轉移資金的“程序”。智能合約的原理也是一樣的,但它是由機器強制執行的。這臺機器必須牢不可破,并且在沒有中央權威的情況下自動執行。
智能合約可行的基礎是區塊鏈這項技術支持用戶使用傾向的加密貨幣狀態轉移程序。以太坊允許用戶在區塊鏈上發布他們的智能合約,并根據這些合約指示未來貨幣的流向。
發布智能合約時,必須編寫以太坊交易,而這個交易內必須含有合約代碼。一旦交易成功,此合約將永遠成為區塊鏈狀態的一部分。
在以太坊上,用戶和上傳的智能合約都有他們所引用的“地址”。任何人都可以將加密貨幣發送到他們所希望發送的地址,從而實現自由的去中心化交換。
用戶可以決定要將貨幣發送到哪里。如果是智能合約發送了加密貨幣,那么加密貨幣流將由智能合約的代碼確定。這段代碼將決定這些加密貨幣最終是會支付給另一個用戶,還是永遠留在智能合約中。
在以太坊中,交易不止是簡單的轉賬。這些“交易”包括發布新的智能合約或者與現有的智能合約進行交互。
智能合約的某些函數是公開的,允許終端用戶與之交互。當其他用戶在區塊鏈上發布交易,并想要調用某些函數時,需要說明想要調用的函數名稱及其參數。當帶有函數調用的交易被挖掘和發布時,以太坊網絡上的每臺計算便以可預測的方式在應用程序中運行并執行該函數。這意味著可以根據代碼所描述的狀態變量來任意轉移或修改貨幣。
順便說一下,這些應用程序雖然被稱為“合約”,但并不意味著它們與現實世界的合約功能等同。在區塊鏈的世界里一切皆有可能,你可以編寫任何想要的程序,在以太坊上發布包括游戲、拍賣、分散交換、代幣銷售等等各類應用程序。
智能合約只是區塊鏈管家,它可以轉移代碼,并為了實現自動化、去中心化世界中的任何可能,不斷升級。
來源: CertiK
評論
查看更多