close
萬物的運行皆遵循原則...
Blockchain = Trust Machine
In Blockchain We Trust
有趣的區塊鏈(Blockchain)入門說明:
1. 建立在春嬌與志明的信任基礎上面;
[缺點]即使是春嬌與志明,也有可能會有賴皮不願付錢,更何況是人的信任基礎上。
2. 建立在春嬌與志明的合約基礎上面;
[缺點]贏的可以告輸的,勞神又傷財,又有點不切實際!
3. 建立在春嬌與志明的中立第三者基礎上面。
[缺點]每人先分別把錢給第三者,結果揭曉後,再把所有的錢給贏的那個。當然,這第三者有可能落跑。
我們無法信任人,為合約打官司勞神傷財,當然還有中立第三者會落跑的可能!!!
一個可能是截至目前為止最棒且有趣的發明...
Blockchain (區塊鏈)
https://bitcoin.org/en/developer-reference#block-chain
@ 區塊鏈技術要幫我們解決上述交易的缺點,而且要安全、快速又便宜。
@ 區塊鏈所實現的基於零信任基礎上面、並且要是真正去中心化的分散式系統
區塊鏈技術由密碼學、數學、演算法及經濟模型所組成,結合點對點的網路關係(P2P),
並採用分散式共識演算法,來解決傳統分散式資料庫的同步問題,可說是一套整合跨領域技術的基礎建設。
當然... 能夠稱乎為infrastructure
區塊鏈(Blockchain)絕非橫空出世的莽崑崙~~~
區塊鏈與其說是於零信任基礎
更精確來說是... 建立在宇宙共通的語言"數學基礎"上面!!!
然而...
往往牽扯到了"$$$"~ 就會沒了其原則!!!
往往牽扯到了"$$$"~ 就會沒了其原則!!!
Blockchain = Trust Machine
Combo™網誌的開端...
In Blockchain We Trust
有趣的區塊鏈(Blockchain)入門說明:
@ 春嬌與志明打賭著明天台北的天氣!
其實... 這裡會有幾種方式來完成這賭局的交易~~~
其實... 這裡會有幾種方式來完成這賭局的交易~~~
1. 建立在春嬌與志明的信任基礎上面;
[缺點]即使是春嬌與志明,也有可能會有賴皮不願付錢,更何況是人的信任基礎上。
2. 建立在春嬌與志明的合約基礎上面;
[缺點]贏的可以告輸的,勞神又傷財,又有點不切實際!
3. 建立在春嬌與志明的中立第三者基礎上面。
[缺點]每人先分別把錢給第三者,結果揭曉後,再把所有的錢給贏的那個。當然,這第三者有可能落跑。
我們無法信任人,為合約打官司勞神傷財,當然還有中立第三者會落跑的可能!!!
一個可能是截至目前為止最棒且有趣的發明...
Blockchain (區塊鏈)
https://bitcoin.org/en/developer-reference#block-chain
@ 區塊鏈技術要幫我們解決上述交易的缺點,而且要安全、快速又便宜。
@ 區塊鏈所實現的基於零信任基礎上面、並且要是真正去中心化的分散式系統
區塊鏈技術由密碼學、數學、演算法及經濟模型所組成,結合點對點的網路關係(P2P),
並採用分散式共識演算法,來解決傳統分散式資料庫的同步問題,可說是一套整合跨領域技術的基礎建設。
當然... 能夠稱乎為infrastructure
區塊鏈(Blockchain)絕非橫空出世的莽崑崙~~~
區塊鏈與其說是於零信任基礎
更精確來說是... 建立在宇宙共通的語言"數學基礎"上面!!!
區塊鏈技術演進史
http://www.ithome.com.tw/news/105370
http://www.ithome.com.tw/news/105370
區塊鏈運作原理大剖析:5大關鍵技術
http://www.ithome.com.tw/news/105374
http://www.ithome.com.tw/news/105374
區塊鏈不等於比特幣(上)
http://www.ithome.com.tw/voice/107532
http://www.ithome.com.tw/voice/107532
區塊鏈不等於比特幣(下)
http://www.ithome.com.tw/voice/107703
關鍵技術#2: 橢圓曲線數位簽章演算法(ECDSA)
數位簽章演算法(Digital Signature Algorithm, DSA)
+ 橢圓曲線密碼學(Elliptic Curve Cryptography, ECC by Combo™)
Why ECC not RSA?
ECC 256bit = RSA 3072bit
關鍵技術#3: Hash (哈希函數)
原理是基於一種密碼學上的單向雜湊函數 (One Way Hash Function)
精隨: 任何東西輸入都將其編碼輸出固定長度的摘要值
這種叫做哈希的函數特色是"很容易被驗證,但是卻很難破解,還回推出原本的值"。
關鍵技術#4: Merkle Tree機制
精隨:Merkle Tree機制可大幅減少資料傳輸量與運算資源消耗,
驗證時,只需驗證這個Merkle Tree的Root值即可
Method of providing digital signatures
https://www.google.com/patents/US4309569
https://bitcoin.org/en/developer-reference#merkle-trees
關鍵技術#5: 時間戳伺服器(Timestamp Server)
精隨:使用時間戳確保數位文件安全
將每個區塊Hash後加上一個時間戳(Timestamp)並發布出去,
這個時間戳用來證明資料在特定時間的有效性,因此而形成一個用來確保區塊序列的鏈條。
https://www.anf.es/pdf/Haber_Stornetta.pdf
GCoin @ http://g-coin.org/learn.html
3大面向一次搞懂區塊鏈
http://www.ithome.com.tw/news/104558
GCoin VS Bitcoin
安全面:
GCoin: 動態難度調整技術
Bitcoin: 51%攻擊的風險
法規面:
GCoin: 實名制
Bitcoin: 非實名制
台灣區塊鏈專家 打造FinTech王牌
http://www.cw.com.tw/article/article.action?id=5075147
How Does the Blockchain Work? by Michele D'Aliessi
Bitcoin Study
http://blog.yam.com/combo/article/130170513
http://www.ithome.com.tw/voice/107703
關鍵技術#1: 工作量證明機制(Proof of Work,POW)
精隨: 這是一個可以讓每個參與的節點可共同參與交易驗證的方式,
來實現一個能多方共同維護的單一系統,並共享同一份記錄交易的帳本,
以形成一個基於零信任基礎,卻能實現去中心化的P2P網路系統。
實現POW必須仰賴成本函數(Cost-Functions):
而這種成本函數特性: 「很容易驗證」(efficiently verifiable),
卻很難被破解 (parameterisably expensive to compute),且不可逆。
實現這成本函數可以仰賴因數分解或是哈希函數(SHA):
驗證奇易: 正數相乘/SHA
破解爆難: 因數分解/SHA碰撞
Hashcash演算法也被用來做阻擋垃圾郵件的機制
精隨: 這是一個可以讓每個參與的節點可共同參與交易驗證的方式,
來實現一個能多方共同維護的單一系統,並共享同一份記錄交易的帳本,
以形成一個基於零信任基礎,卻能實現去中心化的P2P網路系統。
實現POW必須仰賴成本函數(Cost-Functions):
而這種成本函數特性: 「很容易驗證」(efficiently verifiable),
卻很難被破解 (parameterisably expensive to compute),且不可逆。
實現這成本函數可以仰賴因數分解或是哈希函數(SHA):
驗證奇易: 正數相乘/SHA
破解爆難: 因數分解/SHA碰撞
Hashcash演算法也被用來做阻擋垃圾郵件的機制
hashcash靈感來自於因數分解的數學問題 (容易驗證難以破解) (难于发现而易于校验)
而... hashcash是一個基於可廣泛應用的SHA的巧妙系统,
它使得請求者要進行大量可參數化的工作,而求值程序可以“簡單廉價”地進行驗證。
它使得請求者要進行大量可參數化的工作,而求值程序可以“簡單廉價”地進行驗證。
交互是質詢 (Challenge-response)
對交互式質詢來說,因數分解足以勝任。
比如,我有一個資源,希望您能象徵性地為其付出代價。
我可以向您發送一個消息,說“只要您能因數分解這個數,我將讓您得到這個資源”。
沒有誠意的人將無法得到我的資源,只有那些能夠證明自己有足夠的興趣、
付出一些CPU周期來回答這個質詢的人才能得到這個資源。
對交互式質詢來說,因數分解足以勝任。
比如,我有一個資源,希望您能象徵性地為其付出代價。
我可以向您發送一個消息,說“只要您能因數分解這個數,我將讓您得到這個資源”。
沒有誠意的人將無法得到我的資源,只有那些能夠證明自己有足夠的興趣、
付出一些CPU周期來回答這個質詢的人才能得到這個資源。
非交互是質詢 (Solution-verification)
為了實現非交互式的“支付(payment)”,
hashcash讓Receiver向所有想發送電子郵件的Sender都分發一個"標準質詢"。
在Sender的訊息檔頭裡面,必須包括一個合法的hashcash戳記(stamp);
具體來說,該標誌中包含Receiver的收件人地址。
hashcash讓Receiver向所有想發送電子郵件的Sender都分發一個"標準質詢"。
在Sender的訊息檔頭裡面,必須包括一個合法的hashcash戳記(stamp);
具體來說,該標誌中包含Receiver的收件人地址。
hashcash提出質詢的方式是,當通過Secure Hash Algorithm進行散列時,
要求Sender(“minters”)產成一個戳記stamps,
在Sender的散列中有很多前導零(Nonce)。所找到的前導零(Nonce)的數目就是特定戳記的比特值。
Proof of work Example#1:
https://en.bitcoin.it/wiki/Proof_of_work
"Hello, world!0" => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64
"Hello, world!1" => e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8
"Hello, world!2" => ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7
...
"Hello, world!4248" => 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965
"Hello, world!4249" => c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6
"Hello, world!4250" => 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9
0,1,2,... 4250: 特定戳記(Stampt)
0000: 特定數目的前導零(Nonce)
difficulty: 調整困難度就是調整特定前導零的數目
Proof of work Example#2:
nonce=0 開始向上不斷測試,直到nonce=13973878才找到了第一個符合有24 bit前導零nonce
http://www.codedata.com.tw/social-coding/hashcash/
Hash Functions @ http://www.fileformat.info/tool/hash.htm
Nonce是一個在加密通信只能使用一次的數字。
Andreas M.Antonopoulos在《精通比特幣》一書中對挖礦有很好的比喻,
我們可以把挖礦想像為一個大規模的多人數獨遊戲,
一旦有人解出答案,這個數獨遊戲會根據解出所花的速度自動地調整困難度,
若太快被解出則增加難度,若太慢被解出則降低難度,
使得每次遊戲需要大約10分鐘被解出。一個幾千行乘幾千列的數獨,就需要很多時間才能被解出。
一個已經近乎被完成的數獨,則可以很快地被驗證。
我們認為這每十分鐘進階一次State的State Machine,
可說是用算法算力保護的State Machine,形成強大的Trust Machine,是區塊鏈的最重要的創新點。
所以我們認為區塊鏈的本質是這個State Machine和Trust Machine,
而非應用層面的Database或P2P Network觀點。
用算法算力保護的State Machine,形成強大的Trust Machine,是區塊鏈最重要的創新點。
要求Sender(“minters”)產成一個戳記stamps,
在Sender的散列中有很多前導零(Nonce)。所找到的前導零(Nonce)的數目就是特定戳記的比特值。
Proof of work Example#1:
https://en.bitcoin.it/wiki/Proof_of_work
Let's say the base string that we are going to do work on is "Hello, world!".
Our target is to find a variation of it that SHA-256 hashes to a value beginning with '0000'.
We vary the string by adding an integer value to the end called a nonce and incrementing it each time.
Finding a match for "Hello, world!" takes us 4251 tries
Our target is to find a variation of it that SHA-256 hashes to a value beginning with '0000'.
We vary the string by adding an integer value to the end called a nonce and incrementing it each time.
Finding a match for "Hello, world!" takes us 4251 tries
4251 hashes on a modern computer is not very much work
(@ most computers can achieve at least 4 million hashes per second)
Bitcoin automatically varies the difficulty (and thus the amount of work required to generate a block) to keep a roughly constant rate of block generation.
(@ most computers can achieve at least 4 million hashes per second)
Bitcoin automatically varies the difficulty (and thus the amount of work required to generate a block) to keep a roughly constant rate of block generation.
"Hello, world!0" => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64
"Hello, world!1" => e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8
"Hello, world!2" => ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7
...
"Hello, world!4248" => 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965
"Hello, world!4249" => c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6
"Hello, world!4250" => 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9
0,1,2,... 4250: 特定戳記(Stampt)
0000: 特定數目的前導零(Nonce)
difficulty: 調整困難度就是調整特定前導零的數目
Proof of work Example#2:
nonce=0 開始向上不斷測試,直到nonce=13973878才找到了第一個符合有24 bit前導零nonce
http://www.codedata.com.tw/social-coding/hashcash/
Hash Functions @ http://www.fileformat.info/tool/hash.htm
Nonce是一個在加密通信只能使用一次的數字。
Andreas M.Antonopoulos在《精通比特幣》一書中對挖礦有很好的比喻,
我們可以把挖礦想像為一個大規模的多人數獨遊戲,
一旦有人解出答案,這個數獨遊戲會根據解出所花的速度自動地調整困難度,
若太快被解出則增加難度,若太慢被解出則降低難度,
使得每次遊戲需要大約10分鐘被解出。一個幾千行乘幾千列的數獨,就需要很多時間才能被解出。
一個已經近乎被完成的數獨,則可以很快地被驗證。
我們認為這每十分鐘進階一次State的State Machine,
可說是用算法算力保護的State Machine,形成強大的Trust Machine,是區塊鏈的最重要的創新點。
所以我們認為區塊鏈的本質是這個State Machine和Trust Machine,
而非應用層面的Database或P2P Network觀點。
用算法算力保護的State Machine,形成強大的Trust Machine,是區塊鏈最重要的創新點。
關鍵技術#2: 橢圓曲線數位簽章演算法(ECDSA)
數位簽章演算法(Digital Signature Algorithm, DSA)
+ 橢圓曲線密碼學(Elliptic Curve Cryptography, ECC by Combo™)
= "橢圓曲線數位簽章演算法" (ECDSA)
精隨: Private Key用來加密(簽章); Public Key用來解密(驗證)
精隨: Private Key用來加密(簽章); Public Key用來解密(驗證)
Why ECC not RSA?
ECC 256bit = RSA 3072bit
關鍵技術#3: Hash (哈希函數)
原理是基於一種密碼學上的單向雜湊函數 (One Way Hash Function)
精隨: 任何東西輸入都將其編碼輸出固定長度的摘要值
這種叫做哈希的函數特色是"很容易被驗證,但是卻很難破解,還回推出原本的值"。
關鍵技術#4: Merkle Tree機制
精隨:Merkle Tree機制可大幅減少資料傳輸量與運算資源消耗,
驗證時,只需驗證這個Merkle Tree的Root值即可
Method of providing digital signatures
https://www.google.com/patents/US4309569
https://bitcoin.org/en/developer-reference#merkle-trees
關鍵技術#5: 時間戳伺服器(Timestamp Server)
精隨:使用時間戳確保數位文件安全
將每個區塊Hash後加上一個時間戳(Timestamp)並發布出去,
這個時間戳用來證明資料在特定時間的有效性,因此而形成一個用來確保區塊序列的鏈條。
https://www.anf.es/pdf/Haber_Stornetta.pdf
Combo™ Huang
In Blockchain We Trust
偉大的信任鏈
https://kknews.cc/tech/l4z4e2.html
偉大的信任鏈
https://kknews.cc/tech/l4z4e2.html
GCoin @ http://g-coin.org/learn.html
3大面向一次搞懂區塊鏈
http://www.ithome.com.tw/news/104558
GCoin VS Bitcoin
效率面:
GCoin: 15 sec
Bitcoin: 600 sec
GCoin: 15 sec
Bitcoin: 600 sec
安全面:
GCoin: 動態難度調整技術
Bitcoin: 51%攻擊的風險
法規面:
GCoin: 實名制
Bitcoin: 非實名制
台灣區塊鏈專家 打造FinTech王牌
http://www.cw.com.tw/article/article.action?id=5075147
How Does the Blockchain Work? by Michele D'Aliessi
5個問答讓你秒懂區塊鏈原理及應用
http://lightblue.asia/q-n-a-for-blockchain
http://lightblue.asia/q-n-a-for-blockchain
Bitcoin Study
http://blog.yam.com/combo/article/130170513
全站熱搜
留言列表