FB18. 區塊鏈簡介
區塊鏈技術出自比特幣,本來是互聯網點對點帳目記錄,關鍵技術是記錄寫入就沒有更改和刪除的餘地。如何做到刪除不了?這個要解釋並不難,點對點儲存在許多人的電腦硬碟上,數量達到一定數量就是相對不死的狀態,
有互聯網或替代網絡存在就不死,為何說是相對?那是針對會思考的物種而論,人類消失了數據就算能永存也是毫無意義,簡單講不死是有條件的,比如世界末日了。點對點儲存可能會有兩個版本,要相信誰?基本上就是眾人共識,
最多點認可的帳目就是準的。誰會那麼有心自動自發去做點對點的帳目資料庫儲存?獎賞之下必有響應者,先假設比特幣已經有換成美元的價值來論程式機制。首先,我先介紹一下哈希值
(hash)
,任何數碼存檔都可以產生一個哈希值,哈希值產生的軟件有多款,各自都有各自的數學方程式佐證,存檔可大可小,哈希值不可能重覆,哈希值一樣就是證明了存檔同源或相同。哈希值和加密技術,
在比特幣橫空出世前都已經廣泛應用在各種數碼資訊工藝上,比特幣原創設計者中本聰巧妙地運用哈希值來製造一個分配寫入權力的自動化機制,這機制就是區塊鏈術語,"挖礦"兩個字的詮釋。各種資料結合起來,可以產生一個哈希值,
一組資料如果命名成一個區塊,那麼每個區塊都會有個哈希值,第一個區塊的哈希值,會成為第二個區塊的部分資料,直接影響第二個區塊的哈希值,接二連三永續下去就形成鏈。這種儲存管理方式,也是比特幣橫空出世前就相當普遍,比如
git
。中本聰設計的挖礦,其實是找答案遊戲,哪個礦工最先找到答案就趕緊寫入鏈,其他的輕易就可以認證,然後再重新開工找接下來新區塊要的答案。這挖礦遊戲相當簡單,就是從鏈的最後一個區塊資料集合所產生的哈希值,
加上一個隨機腦數(nonce),再產生出該區塊的封尾哈希值。舉個例子,hash1 = 11123456678900abcdef , nonce1 =
xxxxxxx,hash1 結合 nonce1 可以是 xxxxxxx 11123456678900abcdef ,結合體取得 hash2 =
yyyyyyyyyyyyyyyyyyyyyy, nonce1 是隨機的數字,哈希值的變化規律也是一種隨機數字,例子上我只用 22 個 y
代替,實際情況數位必須更多,這只是方便我講解。中本聰的挖礦遊戲規則很簡單,nonce1 從 0 開始,一個接一個到 999999
或更多測試,必定可以找到一個開頭是 0 的 hash2,也就是 0yyyyyyyyyyyyyyyyyyyyy,前面 0 越多後面 y
就越少,意思就是難度越高。只有一個 0
的難度,一組礦工同時搶算,如果機器強度不變,找到符合要求的答案所需的平均時間是可以估計的,如果參與找答案的礦工增加,或機器運算力越來越強,找到答案的時間越短,前面有幾個
0 變成調控找到答案的平均速度,比如比特幣設定在平均 10分鐘左右。最後,挖礦成功者有獎賞,這就是區塊鏈機制。
獎賞要做到自給自足,是一種經濟思考,價值共識。收藏不動用是算不到價值的,感覺良好就是無價之寶,兩方人做交易的東西才可以算出價值。比特幣挖礦,獎賞是代幣,也就是帳目上幾行刪除不了的記錄,得到代幣的人要賣,
得要有人願意買才可以有市場價。比特幣市值的共識,用途可以簡化某些工作,有功用就有價值,而挖礦耗電是成本,整個比特幣生態能吸引礦工前來挖礦靠的是有利可圖,經濟活動因此產生,而價格大波動類似現代股市的常態,
有股炒股有幣炒幣,貪心的寫照。投資是出錢挪動資源來從事生產,就如出錢合資開店賣泡泡茶那樣,看得到產品出品或服務,投資股票和貨幣也必須具備搞生產,那才算是投資,懵懂懂的一般上只能算是投機。
一小撮人股海浮沉有助價值維持,論生產力是有潤滑交易的作用;而一大班人投機炒股,潤滑作用以外的都是不事生產的賭博行為。
加密貨幣挖礦要做得好,不單只是投資硬件和代幣,投入狀態更不可或缺。
整個區塊鏈機制要如何取信於人?普羅大眾腦袋裡的疑問多半是會不會是騙局?這一點必須要看懂有程式的知識才有辦法徹底確定沒有疑點,理論上區塊鏈的程式碼必定是 100%
公開,有些自稱公鏈區塊鏈的,偶爾會有所保留,或延遲公開關鍵程式碼,這樣做是違背公鏈概念,畢竟還是會有小部分極客有條件地不要求 100%
透明,有所保留的部分一般上不太影響共識的產生,但有效地保護關鍵技術免於被抄襲。比特幣、以太幣和萊特幣 3 大公鏈都是 100%
開源透明,問題是,程式語言能力有限的人佔大多數,不可能做全方面的稽查,一般人能夠做到的稽查,是確定有取得開源碼的管道,然後得依靠世界各地的專家去做全面稽查,有想法就丟出來討論,或做個報告,
沒能力沒時間過目程和測試式碼就得要相信有花心思做出貢獻的專家。
區塊鏈不是啥高科技產物,而是有智慧機制,一個連內部時間概念都能創造出來的機制。挖礦是運算力比拼,研發挖礦處理器是高科技的晶片工業,比特幣價值高漲造成投入研發的資源龐大,
有公司甚至啟動研發量子運算用作挖礦的可行性。區塊鏈最稱得上高科技部分,是程式碼 100%
開源所造成的競技環境,天下文章一大抄在區塊鏈是平常事,知識是共享的,這個行業少講究知識產權,要突圍就靠改良創意有沒有好料。
接下來介紹區塊鏈加密貨幣的錢包邏輯,這個機制關乎保護個人隱私的思考,未來或許會用在各種網絡用途上。
加密電子錢包基本數學原理
Random ==》Public key + Private Key
演化後,一般錢包軟件是這樣 :
Seed + x ===> Public key + Private Key
x = 0, 然後 x = x+ , 程式寫法,需要一組鑰匙 x=0 就搞定了,但一般上一個錢包需要管理多個鑰匙,因此 第二個是 x=1, 然後是 x = 3,
Seed + x 的組合其實是代替 Random,但為了方便用戶,Seed 容易記在腦海裡,然後 x 變數允許多個鑰匙在同一個 Seed 裡。
最原始,離線下製造出來的 Random ==》Public key + Private Key ,就是業界所號稱的冷藏錢包,cold wallet 。
Private Key 或 Seed ,記住任何一個,就可以動用 Public Key裡的 Token。Seed 相對下 Random 的程度有限,因此比
Random 容易破解,錢包軟件的各種技術算法,其實就是在 Seed 方面下功夫,一組 Seed 碼一般上也是隨機取得,可以製造出任何 Crypto token
所需要的 Random碼。
加密技術的安全考量最根本的算法,目前最常見的程式是 elliptic curve cryptography (ECC) 。依照 ECC 程式,從 Private
Key 找 Public Key,電腦運算是馬上找到,一般 CPU 1秒鐘可以算上萬甚至上億個回合,而要從 Public Key 找出 private key
,直接算不出但電腦從 0 算起總有一天會算到,時間長短的問題,既然是數字,以現在世界的電腦運算資源做本位,要算出 Private Key
的時間設定在幾億年,舊比特幣錢包據說也許可以被量子計算破解,但升級版錢包是可以把時間再提高幾兆倍,與時並進,簡單講,無法破解。
啥是 ECC?這個數學方程式中四數學有學到:
先來試試看:
A = B x B x B, 比如 8 = 2 x 2 x 2, 27 = 3 x 3 x 3
這種簡單算術,B 找 A 容易,A 找 B 相對耗時。
B 是 Private Key,A 是 Public Key ,可以用普通計算機,試一試,A = 10 , B = ??? , B = 2.1 , A =
???
數學答案是肯定的,只有一個就是一個,電腦會考慮到數位極限。
ECC 方程式 : ( A x A ) = ( B x B x B ) + ( C x B )+ D
這 ECC 已經算是博士級別的研究了,有興趣就自己谷歌。我要強調一點,凡是 ECC 算出的 Private Key ,答案只有一個 Public
Key,這不是信不信的問題或哲理,這是數學。
現有流行的加密貨幣錢包邏輯 (NXT,BURST, NEM, ARDOR):
Address + nonce 算出 Seed,
然後才從 Seed 算出一組 Private Key 和 Public Key
nonce 其實是 Random 碼,某些布陣下用過了就丟叫 nonce 。
靠 Address 要算出符合規格的 Seed ,這 Seed 基本上也是隨機 Random 碼,從 Address 可以算出無數個 Seed,但從 Seed
算回頭只能找到一個 Address 。
以上這種種條件,也是數學方程式可以辦到的事,有興趣就直接去參考 NXT, BURST,NEM 或 Ardor 的 Github,我只是個車大砲數學老師。從
Seed 找 Private Key 基本上跟原有比特幣的方程式一樣。
為何我要提起 Address ?原因只有一個,那就是 ID,可以是個人的 ID 比如 MyKad 號碼,ID 碼是不變的。一般人都會不小心透露自己用的 Seed
碼,如果有這種情況發生,就必須馬上換一個新的 Seed ,條件是 ID 不變, ID = Address。
比特幣怎樣會有價值?
再簡單說一次,有不死的網絡,就有不滅的區塊鏈。小鏈或許會熄火,很多挖礦不及格的公鏈在 2018
年紛紛換成寄生在其它鏈的代幣,大鏈要熄火得動用龐大資源,最低成本就是取得 51%
挖礦權來做攻擊。目前比特幣和以太幣的規模,全世界政府聯合起來要撲滅都是不划算的蠢事,而且未必能得手,很多極客是不看錢做事的,某某人要收一份資料是輕而易舉的事,
就算惡法判挖礦活動有罪都不能確保有心人要保存一份記錄。透明機制,由礦工挖礦自動寫入新區塊,連程式師要改善都經過挖礦或用戶共識做決定。以帳目記錄而論,匯款免去任何中間人的服務,
礦工只認哈希值對不對就自動做事,礦工不算中間人,挖礦費在有限的區塊容量頂限下也許會忽高忽底,但技術已經發展到幾乎是免挖礦費的境界,比如萊特幣不只是幾乎免挖礦費,
過賬速度也改到符合零售櫃檯取用的境界,新興科技Fintech 必定就是以區塊鏈創新技術做基礎。
上頁
FB18
下頁