以太坊 理解區塊鏈

2021-09-23 23:35:45 字數 3331 閱讀 2892

目錄:

一直都說在聽說區塊鏈,都說是什麼劃時代的技術,一種顛覆性的技術,繼人工智慧後的一種革命性的技術。各種光鮮詞彙全用在區塊鏈上,就一直沒明白它到底高深在何處?

今天的網際網路世界可以說是資訊網際網路,以前一直說地球村,網際網路將地球變小了,你在地球的這邊可以隨時和地球的另一邊進行交流,如果說資訊網際網路讓人類進入資訊時代,那麼,區塊鏈就可說是讓人類進入價值時代,區塊鏈讓價值(比如電子貨幣、電子資產、 裝置訪問許可權等)脫離第三方直接進行點對點的轉移。

有人將其稱作價值網際網路。與資訊的複製和貼上不同,價值的轉移涉及所有權的變更,如我把我的資產轉給你,意味著這份資產需要從我的賬戶裡面扣除,而在你的賬戶裡面新增。 因此,在價值轉移過程中,我們需要乙份賬本來記錄資產的變更。該賬本需要安全、穩定可靠,以及具有一定的覆蓋面和可用性(如全球資產需要全球覆蓋,在任何地方都可以查詢到當前的資產狀態)。 這個就是區塊鏈。

1、價值的儲存。位元幣創造了除美元、**等全球範圍內認可的並產生共識的價值的貨幣。這意味著個人所擁有的價值被世界範圍內認可這一共識的人所認可,也就是說,你可以把你的某些財產安全的儲存在網路上,你可以證明這些財產是你的,同時這些財產的價值受到世界範圍的認可,這就是價值的儲存。

2、價值的自由流動。你在世界範圍內的任意地方,都能夠找到願意購買或者兌換它的人,你也可以隨時把它發往世界的任何乙個地方,不受任何的時間,地點,人物和國家的限制,這就是價值的自由流動。

如果ai是未來的生產力,那麼區塊鏈則是未來的生產關係,這句話還是有一定的道理的。區塊鏈改變世界的方式遠不止這些,這個僅僅從價值來說,還有信任,區塊鏈將信任這種「虛擬」的東西例項化。不管是從技術上還是從心理上,讓人能夠感覺到它的存在。

區塊鏈通常被定義為去中心的分布式記賬系統,該系統中的節點無需互相信任,通過統一的共識機制共同維護乙份賬本。 位元幣可以說是第乙個區塊鏈應用。 在金融危機爆發的 2008 年, 一位名叫中本聰( satoshi nakamoto)的神秘人物在 《 位元幣: 乙個點對點電子 現金系統》。中首次提出了「位元幣」這一概念。 位元幣的底層記賬系統就是現在我們說的 區塊鏈技術,而中本聰身份之謎也為位元幣和區塊鏈技術帶來了更加神秘的色彩。

在前幾年,大家會關注位元幣而不會單獨談論區塊鏈這個技術。 直到 2015 年,區塊鏈這一概念才被單獨提出來為更多人所了解,且向著更廣泛的應用場景發展。 發生在這個時間點的主要原因之一是以太坊的出現和日益成熟。

區塊鏈是一種分布式、去中心化的計算與儲存架構。 在詳細了解區塊鏈每個技術組成 部分之前,先來理解為什麼需要這種架構。

區塊鏈要解決的是如何用一種可信的方式記錄資料,使得使用者可以信任區塊鏈系統記 錄的資料,而無須假設記賬節點的可信性。 怎麼實現呢?「無須信任」技術上的解決辦法就 是假設互相不信任。因此,每個節點都存有乙份完整的資料記錄,每條新的交易都要被重 新驗證。當乙個節點重新加入網路並需要同步資料的時候,也是從其他節點同步交易歷史, 然後重新計算驗證一一這就決定了其第乙個特點,即分布式儲存(不能完全信任他人的存 儲)。 也正是為了高效可靠的驗證需要,才有了區塊鏈現在的資料結構:區塊鏈由成塊的交易通過密碼學演算法連線在一起,使得整個賬本公開透明、可追蹤、不可篡改(資料被篡改時 很容易被驗證發現) 。 

這麼多記賬節點為什麼願意按照一致性協議記賬呢? 依靠的就是巧 妙的記賬激勵機制一一誠實的記賬節點會得到相應的獎賞,且誠實的記錄比惡意篡改記錄 的收益更大-一一這就是一致性協議設計中的要點。 下面就對區塊鏈的資料結構、分布式存 儲和一致性協議進行詳細介紹。

首先從資料結構來理解區塊鏈,圖 1-2 展示了位元幣區塊鏈的資料結構。 系統中的交 易( transaction)被打包成乙個個區塊( block) 。 在區塊鏈系統執行過程中,區塊鏈每次只能新增乙個區塊,並且每個區塊均包含了用於驗證其有效鏈結於上乙個區塊之後的數學憑 證。 正如它的名稱「區塊鏈」( blockchain),乙個個區塊按照密碼學演算法鏈結在一起。 這樣的組織設計可以很容易地驗證資料是否篡改、追蹤歷史以及保證安全。

其次,區塊鏈的架構是分布式、去中心化的。 系統中各個節點組成乙個p2p網路,每 個節點均分別執行、驗證和記錄相同的交易,每個節點都可以在本地儲存完整的區塊鏈資料。 沒有乙個中心機構能夠干預交易的執行順序和結果。 因此,該架構具有很強的魯棒性。 這裡要說明一點, 我們看到的公有鏈的平台是去中心的,因為其設計假設以沒有任何信任作為前提,即都不可信。 在實際的應用中,如果有一些可信的元素,是完全可以利用的。 因此我們也看到很多系統設計是多中心或者弱中心的模式。 「去中心」在這裡不是目的,而 是一種達到可信的手段。

最後,為了保證各節點狀態的一致性,還需要共識機制,即一致性協議(如 pow、 pos、 poa 等)。

以pow為例,為了使得各個節點記錄的結果是一致的,在每一時刻系統 要選擇乙個記賬節點來計算下乙個區塊。 其他節點對該記賬節點的區塊結果進行驗證,通過後則接受這個區塊。 為了激勵大家高效正確地記賬,系統對記賬節點有相應的獎賞,這樣一來大家會貢獻計算和儲存資源來爭奪記賬權。

由於可以互相驗證,也保證了記賬的可靠性。 接下來,我們要解決的問題就是:如何公平地選取這個記賬節點,以及如何設計激 勵機制。 pow中採用的是「猜雜湊值」這個公平的、依靠消耗算力的方式,也被稱作「挖 礦」 。 誰先算出給定要求的雜湊值,誰就以大概率爭奪到這個記賬權。 為什麼說是概率呢, 因為在分布式網路中,由於延遲,訊息傳遞到其他各個節點的時間是不一樣的。 比如,我看到的是bob先算出來的,而你可能看到的是 alice 先「挖」出來。

在不同節點上對下一 區塊的認可在短時間內可能是不同的。 最終,以系統中最長的鏈條作為共識結果,即大 家認可的賬本內容。 因此在使用中,當我們在本地看到某個交易被打包在區塊鏈後,還需 要等待若干後繼塊產生,等待若干塊又稱為等待確認( confirmation)。 這樣做的目的是防 止由於延遲帶來的賬本不一致。

可見一致性協議的設計既要安全,以保證全網中各個節點儲存的資料能夠達成共識;還需要有效的激勵機制,給予一定 的經濟獎勵( 即虛擬貨幣機制)來維持並且驗證網路執行的節點,從而保證架構的穩定健康 執行。

下圖展示了位元幣一類的數字貨幣的交易示例。 bob要給alice進行轉賬,他需要建立一條交易,宣告轉賬的付款人、收款人以及轉賬金額。 之後bob在這條交易上新增自己的數字簽名,並將交易發布到區塊鏈網路上。 這條交易被記賬節點驗證後打包廣播,並通 過共識(一致性)協議達成全網一致。 alice 在確認看到交易被記錄,且該交易後面還有若干區塊陸續被記錄後(通常 6 ~ 12 個塊)就可以認為自己已經收到了bob的轉賬。 

以太坊區塊鏈

由私鑰控制.與 無關聯 可以建立發起交易給另外乙個賬戶.外部賬號之間的交易是轉賬 外部賬戶轉賬到合約賬戶可以啟用合約賬戶 被合約 控制,有關聯的 可以響應外部賬戶發起的交易 這裡需要注意的是這裡的merkle樹並不是位元幣的merkle樹,以太坊使用的是mpt樹.merkle樹的變種,功能更強大.可...

區塊鏈2 0 以太坊

如果把位元幣說成是一本全球賬本,以太坊就可以被看作一台全球計算機 乙個任何人都可以上傳和執行應用程式,並且程式的有效執行能得到保證的地方,這種保證依賴的正是以太坊系統去中心化的,由全球成千上萬的計算機組成的共識網路。以太坊需要數以千計的人在他們的個人電腦上執行乙個軟體來支撐整個網路。網路中的每個節點...

以太坊區塊鏈開發 私鏈

1.首先檢視我們兩個私鏈錢包的以太坊wei餘額,後續我們寫轉賬到區塊鏈位址 2.然後我們啟動私鏈 geth identity secbro etherum rpc rpccorsdomain datadir 私鏈資料資料夾絕對路徑 port 30303 rpcapi db,eth,net,web3 ...