區(qū)塊鏈、智能合約 與 數(shù)字貨幣 之關(guān)系
? ? ? ?區(qū)塊鏈(Blockchain),本質(zhì)上是一個去中心化的數(shù)據(jù)庫,是比特幣的底層技術(shù),是一串使用密碼學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,每一個數(shù)據(jù)塊中包含了一批次比特幣網(wǎng)絡(luò)交易的信息,用于驗證其信息的有效性(防偽)和生成下一個區(qū)塊。
? ? ? ?區(qū)塊鏈:就由哈希指針構(gòu)成的“區(qū)塊+鏈”的數(shù)據(jù)結(jié)構(gòu)。
? ? ? ?區(qū)塊中的內(nèi)容:本區(qū)塊數(shù)據(jù)(data) + 本區(qū)塊的hash值 + 前一個區(qū)塊的hash值。其中本區(qū)塊的hash值基于“本區(qū)塊的data + 前一個區(qū)塊的hash值”進行計算。
? ? ? ?(0)區(qū)塊鏈特征
? ? ? ?①去中心化:數(shù)據(jù)采用分布式存儲,區(qū)塊鏈技術(shù)不依賴第三方管理機構(gòu)(比如DAO[1])或硬件設(shè)施,沒有中心管制,各個節(jié)點實現(xiàn)了信息的自我驗證、傳送和管理。
? ? ? ?②共識機制(多方維護):寫入數(shù)據(jù)不由單方控制,需要經(jīng)過多方驗證形成共識,才能寫入,主要有POW[2]、POS[3]。
? ? ? ?③開放性。區(qū)塊鏈技術(shù)是開源的,除了交易各方的私有信息被加密外,區(qū)域鏈的數(shù)據(jù)對所有人開放,任何人都可以通過公開的接口查詢區(qū)塊鏈數(shù)據(jù)和開發(fā)相關(guān)應(yīng)用,因此整個信息系統(tǒng)高度透明。
? ? ? ?④獨立性?;趨f(xié)調(diào)一致的規(guī)范和協(xié)議,整個區(qū)塊鏈系統(tǒng)不依賴第三方,所有節(jié)點能夠在系統(tǒng)內(nèi)自動安全驗證、交換數(shù)據(jù),不需要人為干預(yù)。
? ? ? ?⑤安全性。只要不能掌控全部數(shù)據(jù)節(jié)點的51%,就無法肆意操控修改網(wǎng)絡(luò)數(shù)據(jù),這使區(qū)塊鏈本身變得相關(guān)安全,避免了主觀人為的修改。數(shù)據(jù)具有不可篡改、不可偽造、一致存儲的特點
? ? ? ?⑥匿名性。除非有法規(guī)規(guī)范要求,各區(qū)塊節(jié)點的身份信息不需要公開或驗證,信息傳遞可以匿名進行。
? ? ? ?(1)智能合約
? ? ? ?將合約寫入代碼(只能是可通過計算機執(zhí)行的約定,比如到期自動轉(zhuǎn)賬)由區(qū)塊鏈節(jié)點計算機自動執(zhí)行,人工無法干預(yù),無需彼此信任。是以太坊鏈對比特幣鏈的升級,可稱為區(qū)塊鏈2.0版。
? ? ? ?(2)數(shù)字貨幣
? ? ? ?①交易信息存儲。數(shù)字貨幣的交易信息存在區(qū)塊鏈上的區(qū)域中,區(qū)塊由擁有記賬權(quán)的人產(chǎn)生。爭奪記賬權(quán)就是挖礦,具體是通過在不同的節(jié)點運行區(qū)塊鏈客戶端程序(所謂的去中心化)實現(xiàn)的。
? ? ? ?②記賬權(quán)之爭。挖礦目前主要有兩種形式POW、POS機制(即兩種共識機制,嚴(yán)格地說POS機制不是傳統(tǒng)意義上的挖礦),由于區(qū)域鏈?zhǔn)侨ブ行幕?,各?jié)點自行計算,因此速度快慢不一,有效的礦(即記賬的區(qū)塊)必須符合兩個條件:一是可以接在最長鏈上,二是該鏈必須是合法的區(qū)塊鏈。
? ? ? ?③區(qū)塊鏈分叉[4]。第一種硬分叉:在新共識規(guī)則發(fā)布后,部分沒有升級的節(jié)點無法驗證已經(jīng)升級的節(jié)點生產(chǎn)的區(qū)塊,區(qū)塊鏈發(fā)生永久性分歧;二是軟分叉:當(dāng)新共識規(guī)則發(fā)布后,沒有升級的節(jié)點會因為不知道新共識規(guī)則下,而生產(chǎn)不合法的區(qū)塊(即新節(jié)點程序不再認(rèn)為舊節(jié)點繼續(xù)生產(chǎn)的區(qū)塊仍然是合法性,以前舊區(qū)塊新節(jié)點肯定是認(rèn)可的,不然接不上了),就會產(chǎn)生臨時性分叉,舊節(jié)點必須升級,不然將持續(xù)挖出能上鏈但又不被認(rèn)可的區(qū)塊。
? ? ? ?④穩(wěn)定幣。也是一種數(shù)字貨幣,號稱是瞄準(zhǔn)某一法定貨幣(一般是1對1關(guān)系)。穩(wěn)定幣可用于不同數(shù)字貨幣之間交換了橋梁,或以其為換算標(biāo)準(zhǔn)。常見的有USDT、USDC等
? ? ? ?⑤多鏈幣。一種數(shù)字貨幣在多種區(qū)塊鏈上發(fā)布,比如:以太坊組織在BTC, ETH, EOS, TRON四條鏈上都發(fā)行了USDT,其中ETH和BTC鏈流動著超過80%的USDT,該幣在不同鏈的價值基本相同。
? ? ? ?(3)數(shù)字錢包
? ? ? ?①私鑰與公鑰。用橢圓加密算法(ECDSA)來產(chǎn)生數(shù)字錢包的私鑰和公鑰。
? ? ? ?②三者之關(guān)系。私鑰—(SECP256K1算法)—>公鑰—(RIPEMD160算法)—>錢包地址
? ? ? ?SECP256K1是一種橢圓曲線算法;
? ? ? ?RIPEMD160也是一種Hash算法(類似SHA256);
? ? ? ?即:由私鑰可以算出公鑰(反之不行),由公鑰可以算出錢包地址(反之不行),所以經(jīng)常把公鑰和比特幣地址的說法相混淆,他們都是指的同一個概念,錢包地址只是另一種格式的公鑰,但是兩者的外在表現(xiàn)形式是不一樣的。
? ? ? ?③數(shù)字錢包。即是數(shù)字貨幣的錢包,不同的數(shù)字貨幣(肯定也在不同的鏈上)其錢包地址是不一樣的;數(shù)字錢包中并沒有錢,它只是一串地址,通過該地址可以計算得到該種數(shù)字貨幣在其所在鏈上的交易信息(當(dāng)然包括余額)。
? ? ? ?④身份錢包:助記詞一般由12個單詞構(gòu)成,解決同一個人可能需記住多個錢包信息的問題。如果一個人有多種數(shù)字貨幣資產(chǎn),其必須持有多個數(shù)字錢包(也就得記住多個私鑰、公鑰和錢包地址),也就必須記住多個錢包信息。為解決該問題,創(chuàng)造了身份錢包中的“助記詞”,通過“助記詞”,可以推導(dǎo)出該人員的其他數(shù)字錢包的所有信息。
? ? ? ?⑤錢包的Keystore:Keystore的本質(zhì)是加密后的私鑰,Keystore必須配合你的錢包密碼來使用。Keystore+密碼=私鑰。
? ? ? ?備注:
? ? ? ?[1] DAO(Decentralized Autonomous Organization)是在區(qū)塊鏈上運行的去中心化組織,它的規(guī)則被寫入網(wǎng)絡(luò)代碼,根據(jù)協(xié)議或當(dāng)特定條件發(fā)生時會自動執(zhí)行。社區(qū)(代幣持有者)通過設(shè)定的流程可以投票更改規(guī)則。因此,DAO是一種新型的技術(shù)賦能組織形式,它允許人們聚集在一個共同的目標(biāo)后面,并以正式的方式一起工作以實現(xiàn)他們的目標(biāo)。
? ? ? ?[2] POW:工作量證明(Proof Of Work),簡單理解就是一份證明,大家用它他認(rèn)可(形成共識)你做過一定量的工作,該共識讓你獲得記賬權(quán)(出區(qū)塊),進而獲得獎勵。是ETH1.0時的共識機制,主要是計算(尋找)特定的一段文本,該文本用SHA256算法計算后摘要與指定的相同。
? ? ? ?[3] POS:權(quán)益證明(Proof Of Stake),系統(tǒng)在符合條件的節(jié)點中隨機選擇,直接賦予其記賬權(quán)。是ETH2.0時的共識機制。符合條件的節(jié)點指,該節(jié)點有用于質(zhì)押的Stake數(shù)量,每1個Stake為32個ETH(持幣時間、數(shù)量都是考慮內(nèi)容)。
? ? ? ?[4] 區(qū)塊鏈分叉:是由節(jié)點程序升級導(dǎo)致的。由于某種實際需要,區(qū)塊鏈節(jié)點程序需要修改或升級,升級后的節(jié)點程序產(chǎn)生的新區(qū)塊與未升級的節(jié)點程序產(chǎn)生的區(qū)塊(也就是原先的區(qū)塊)可能會不兼容,此時會出現(xiàn)幾種情況。