區塊鏈智慧合約開發
一.區塊鏈的回顧
1.區塊鏈
區塊鏈實質上是一個去中心化、分散式的可進行交易的資料庫或賬本
特徵:
去中心化:簡單來說,在網路上一個或多個伺服器癱瘓的情況下,應用或服務仍然能夠持續地執行,這就是去中心化。服務和應用部署在網路上後,儘管每個伺服器都有一份資料和執行程式的副本,但是沒有任何一個伺服器能夠絕對控制資料和程式的執行過程。
分散式:網路上的每個伺服器或節點都互相連線在一起,伺服器之間是多對多連線,而不是一對一或一對多連線。
資料庫:指的是儲存持久化資料、使用者能夠及時從任何地點進行訪問的地方。資料庫的基本功能是資料儲存和檢索,同時也提供了一些管理功能,以方便高效地管理資料,如:資料匯入和匯出,資料備份和恢復。
賬本:這是一個會計專業術語。你也可以認為它是一個專門儲存和檢索資料的地方。賬本對銀行業而言很有用處。例如,Tom在他的銀行賬戶上存入了100美元,對銀行而言,需要在賬本上計入一筆貸方金額。未來的某一天,Tom取回了25美元,銀行不會直接把100美元修改成75美元,而是在同一個賬本上,新增一筆借方金額25美元。從這個例子中可以看出,賬本是一種特殊的資料儲存方式,它不允許修改歷史資料,要改變賬戶的餘額只能透過新增和追加記錄來實現。區塊鏈是與賬本存在共同特徵的資料庫,新的資料只能透過追加的方式進行儲存,沒有任何修改歷史資料的可能。
因為不能修改歷史記錄,所以區塊鏈具有較高的可信任性、透明性和公正性。
區塊鏈是由區塊組成的一個鏈條。這意味著它是由多個區塊前後連線在一起的,而交易記錄則是儲存在每個區塊的內部,採用這種方式後,這些交易記錄就不可能再被更改。由於去中心化和分散式特性,區塊鏈具有穩定性、健壯性、永續性和高可用性的特點,不存在單點故障的問題。沒有單個節點或伺服器能控制整個鏈上的資料,因此人人都能夠參與其中,成為區塊鏈社群的參與者。
1.1區塊鏈的用途
信任 :區塊鏈可以用於建立去中 心化應用,實現資料由 人集體控制, 其中的任何一個人都沒有權力去更改或刪除以前的記錄 即使有人確實 做到了,他產生的資料也不會被其 參與者接受
自治性: 對於區塊鏈上的應用來說,沒有所有者 由於沒有所有者,也就沒有人能夠單獨控制它 ,但是每個人卻都可以透過它的 行為來參與治理過程,這就有利於建立 個不能被操控或不易誘發腐敗 的解決方
去中介化 :基於 塊鏈的應用能夠消除現有流程的中間環節 例如在車 輛登記 、駕照發放等場景 中, 會存 箇中間角色,它承擔著車輛登記和駕照發放的職 如果 於區塊鏈來設計流程,那麼這個中間角 色就沒有存在的必要了,因為區塊鏈上的資料在被確認後,駕照就會自 動簽發,車輛就會被自動登記 區塊鏈將開啟一個新的時代,很多業務 不再需要中間的權威機構進行背書了
2.加密技術
2.1 雜湊
雜湊是將輸入的資料轉換成一個固定長度的隨機字串(雜湊值)的過程,但是不能從結果反向生成或識別出原始資料,因此,雜湊也被稱為資料指紋。幾乎不可能基於其雜湊值匯出輸入資料哪怕原始資料發生了一點點的變化,也將產生完全不同的雜湊值,這樣就確保了沒有人敢在原始資料上做手腳。雜湊還有另外一個特徵:雖然輸入的字串資料可能長短不同,但產生的雜湊值長度是固定的。例如,使用SHA256雜湊演算法,不論輸入資料的長度大小如何,總會產生一個256個位元組的雜湊值。當資料量很大時,這一點就非常有用了,它總能產生一個256個位元組的雜湊值,這樣可以儲存下來作為證據。以太坊在很多地方使用了雜湊技術,它會對每一筆交易進行雜湊,會對兩個交易的雜湊值進行再次雜湊,最終為同一區塊內的每個交易產生一個根雜湊值。
雜湊還有一個重要特徵,就是從數學上來看,兩個不同的輸入資料不會產 生同一個雜湊值。
線上雜湊計算器:線上雜湊值計算
2.2數字簽名
前面我們介紹了非對稱加密,它的一個重要應用就是在數字簽名建立和驗證時使用非對稱金鑰。數字簽名類似於一個人在紙上手寫的簽名。與手寫簽名的作用一樣,數字簽名有助於識別一個人,還有助於確保資訊在傳遞過程中不被篡改。讓我們舉個例子來理解數字簽名。 Alice準備給Tom傳送一條資訊。那麼問題來了,Tom如何確保收到的資訊是由Alice發出來的,如何確保資訊在傳遞過程中沒有被篡改過?解決方案就是不能傳送原始的資訊/交易,Alice首先需要取得傳送的資訊的雜湊值,然後用她的私鑰對雜湊值進行加密,最後,她把這個剛產生的數字簽名附加在雜湊值後傳送給Tom。Tom收到資訊後,他使用Alice的公鑰提取出數字簽名並解密,找到原始雜湊值。同時,他從實際接收到的資訊中提取雜湊值,並對兩個雜湊值進行比較,如果兩個雜湊值一致,那麼說明資訊在傳遞過程中沒有被篡改過。 數字簽名通常用於資產或加密數字貨幣(例如以太幣)的所有者對交易進行簽名確認。
身份的辨別(公鑰和私鑰)
確保數字不被篡改(雜湊)
3.區塊鏈和以太坊架構
區塊鏈與智慧合約之間的橋樑:以太坊 具體詳情請點選旁邊以太坊的連結
以太坊是區塊鏈,但不僅僅是區塊鏈,它在區塊鏈的基礎上架構了一個虛擬機器,可以在這個虛擬機器上用以太坊指定的語言執行程式,這個指定的語言是solidty,程式即智慧合約。
區塊鏈是一種包含多個元件的體系結構,區塊鏈獨特的地方在於這些元件 的功能和相互作用 重要的元件包括 EVM ( Ethereum Virtual Machine 以太坊 虛擬機器)、礦工、區塊、交易、共識演算法、賬戶、智慧合約、挖礦、以太幣和 gas 一個區塊鏈網路是由大量的節點構成的,其中 部分是屬於礦工的挖礦 節點,另一部分節點不挖礦但會幫助執行智慧合約和交易 這些節點統稱為 EVM 網路上的各個節點之間互相連線,節點之間透過 P2P 協議進行通訊,默 認情況下使用 30303 埠 每個節點都維護著 個賬本的例項(副本),包含鏈上的全部區塊 由於網 絡上存在大量礦工節點,為了避免節點之間的區塊資料存在差異,這些節點會 持續同步區塊,確保賬本資料一致
以太坊虛擬機器EVM是智慧合約的執行環境。
以太坊相當於分散在世界各地的節點共同組成的公共電腦
3.1以太幣
在以太坊這個公共電腦上執行程式就像是在網咖上網,必須要付費,這個地方不是付人名幣而是以太幣。以太幣採用十進位制的計量體系,其最小的單位是 wei 下面列出了一些計 量單位,可 以在網站 https: //g ithub.com/e thereum/we b3.js blob/ 0.15 .O/lib/utils/ utils. js#L40 上查到更多資訊。
3.2gas
也可以把以太坊理解成聯通全球的道路網,智慧合約在上面執行就像是在這個道路上面開車,需要耗費汽油。
3.3以太坊節點
以太坊客戶端是一個軟體應用程式,它實現了以太坊規範,並透過點對點網路與其他以太坊客戶端進行通訊。不同的以太坊客戶端如果符合參考規範和標準化的通訊協議,就可以實現互操作。雖然這些不同的客戶端是由不同的團隊用不同的程式語言實現的,但它們都 "說 "著相同的協議,遵循相同的規則。因此,它們都可以用來操作和與同一個以太坊網路進行互動一個節點需要執行兩種客戶端軟體:共識客戶端和執行客戶端。
執行客戶端(也稱為執行引擎、EL 客戶端或舊稱“以太坊 1”客戶端)偵聽網路中廣播的新交易,並在以太坊虛擬機器中執行它們,並儲存所有當前以太坊資料的最新狀態和資料庫。
共識客戶端(也稱為信標節點、CL 客戶端或舊稱“以太坊 2”客戶端)實現權益證明共識演算法,使網路能夠根據來自執行客戶端的經驗證資料達成一致。 此外還有名為“驗證者”的第三種軟體,它們可被新增到共識客戶端中,使節點能參與保護網路安全。
作用:連線以太坊網路
在區塊鏈和以太坊中,每個區塊都連線著另外一個區塊 兩個區塊之間是 對父子的關係,並且是 的關係,這樣首尾相接就組成了 個鏈條 章後面會講到區塊,在接下來這張圖中,我 3個區塊( 區塊1 區塊2,區塊3 )來示意 區塊1 是區塊1 的父區塊,區塊2 是區塊3 的父區塊 在每個 區塊的頭部都儲存了父區塊的雜湊值,這樣就建立了父子關係
區塊2 在頭部儲存了區塊 1的雜湊值,區塊 3在頭部儲存了區塊2 的雜湊 值,以太坊有個創世區塊的概念, 它就是第一個區塊 這個區塊是在鏈初次發起時·自動建立的 你也可以這樣認 為,整個鏈條是由創世區塊(透過 genesis jso 檔案來生成)作為第一個區 塊而開始啟動的,如下圖所示
3.4以太坊賬戶
具體詳情請點選上面以太坊賬戶的連結
帳戶是儲存以太幣之處。 使用者可以初始化帳戶,將以太幣存入帳戶,並將自己帳戶中的以太幣轉賬給其他使用者。 帳戶和帳戶餘額儲存在以太坊虛擬機器中的一個大表格中,是以太坊虛擬機器總體狀態的一部分。
以太坊有兩類賬戶(它們共用同一個地址空間):
外部賬戶 :由公鑰-私鑰對(也就是人)控制
合約賬戶 :由和賬戶一起儲存的程式碼控制
外部賬戶的地址是由公鑰決定的,而合約賬戶的地址是在建立合約時確定的
相同點:
每個賬戶都有一個鍵值對形式持久化儲存,其中key和value的長度都是256位,我們稱之為儲存
3.5交易
具體詳情請點選上面交易的連結
交易是由帳戶發出,帶密碼學簽名的指令。 帳戶將發起交易以更新以太坊網路的狀態。 最簡單的交易是將 ETH 從一個帳戶轉到另一個帳戶。
以太坊交易是指由外部持有帳戶發起的行動,換句話說,是指由人管理而不是智慧合約管理的帳戶。 例如,如果 Bob 傳送 Alice 1 ETH,則 Bob 的帳戶必須減少 1 ETH,而 Alice 的帳戶必須增加 1 ETH。 交易會造成狀態的改變。
版權宣告 :本文作者由 西安鏈酷科技wxwy926 原創文章,著作權歸作者所有,轉載請告知作者並註明出處
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70035240/viewspace-3009001/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 區塊鏈BSC智慧合約DAPP開發區塊鏈APP
- 區塊鏈智慧合約技術系統開發區塊鏈
- JAva智慧合約DAPP系統開發(區塊鏈)JavaAPP區塊鏈
- 區塊鏈DApp開發 | 跨鏈智慧合約技術搭建開發區塊鏈APP
- 南京區塊鏈智慧合約交易系統開發方案區塊鏈
- 鄭州區塊鏈智慧合約開發技術公司區塊鏈
- 區塊鏈平臺EOSIO開發智慧合約和dapp(一)區塊鏈APP
- 長沙區塊鏈DAPP智慧合約系統開發方案區塊鏈APP
- MMMBSC6.0互助區塊鏈智慧合約系統開發區塊鏈
- 區塊鏈趣步DAPP智慧合約合約系統技術開發詳情區塊鏈APP
- 區塊鏈智慧合約是什麼?區塊鏈
- ATourofEthereum——區塊鏈與智慧合約之旅區塊鏈
- 區塊鏈智慧合約解決方案區塊鏈
- 區塊鏈底層公共鏈,聯盟鏈,baas系統智慧合約開發區塊鏈
- 區塊鏈——以太坊、智慧合約簡介區塊鏈
- 區塊鏈智慧合約DApp開發系統公鏈質押挖礦系統開發區塊鏈APP
- 區塊鏈-智慧合約開發微信線上語音培訓區塊鏈
- 區塊鏈合同智慧合約上鍊聯盟鏈區塊鏈
- DAPP區塊鏈挖礦專案系統開發丨智慧合約程式開發APP區塊鏈
- 區塊鏈/趣步DAPP/智慧合約系統開發/合約跟單/python技術詳情區塊鏈APPPython
- 白話智慧合約與區塊鏈技術區塊鏈
- 智慧合約-區塊鏈核心技術之一區塊鏈
- MMMBSC6.0區塊鏈智慧合約互助系統開發功能分析區塊鏈
- 區塊智慧合約DAPP軟體系統開發APP
- 區塊鏈DAPP智慧合約質押專案系統開發(原始碼部署)區塊鏈APP原始碼
- nft交易平臺開發公司|智慧合約|數字藝術品|區塊鏈區塊鏈
- 區塊鏈100講:Hyperledger Fabric 中的鏈碼(智慧合約)區塊鏈
- 區塊鏈2.0以太坊智慧合約solidity之helloworld區塊鏈Solid
- 使用truffle部署以太坊智慧合約到區塊鏈區塊鏈
- 區塊鏈構建和履行智慧合約的步驟區塊鏈
- 區塊鏈baas平臺搭建,區塊鏈技術應用開發,合約系統搭建區塊鏈
- 區塊鏈技術應用場景開發方案,智慧合約編寫服務區塊鏈
- 區塊鏈fintoch/DeFi借貸智慧合約技術系統開發搭建模式區塊鏈模式
- 英國就區塊鏈智慧合約應用開展法律改革研究區塊鏈
- 區塊鏈Hyperledger Fabric 2.x 自定義智慧合約區塊鏈
- DApp區塊鏈公鏈智慧合約質押挖礦系統開發丨Solidity技術搭建APP區塊鏈Solid
- DAPP區塊鏈公鏈代幣智慧合約質押挖礦系統開發(Solidity編寫)APP區塊鏈Solid
- Fintoch分投趣模式系統開發/區塊鏈DAPP合約模式區塊鏈APP