幫大家複習一下,跟著我從零開始學習以太坊區塊鏈到現在學到甚麼?以太坊區塊鏈使用的貨幣叫作以太幣,以太幣的特色是它有智能合約,在以太坊區塊鏈上的交易或執行智能合約要付交易手續費,交易手續費等於Gas Price 乘以 Gas limit,在以太坊區塊鏈中有兩種帳戶外部帳戶(EOA)和合約帳戶(CA),今天我們繼續了解以太坊區塊鏈。
記得我在以太坊區塊鏈中提到外部帳戶(EOA)時,提到了公鑰和私鑰吧!區塊鏈的有效驗證靠的就是兩個技術: Hash值和非對稱密鑰加密,既然有非對稱密鑰加密,相對就會對稱密鑰加密,對稱密鑰加密就是用同一把密鑰加密和解密,為了稍微了解一點,我也認真研究了一番,這裡舉一個對稱加密的簡單例子—Ceasar加密,可以用來簡單的加密英文字母,它會把字母全部移動幾個到另一個字母,如果我們對每個字母向右移動3個, hello就會加密成khoor,如果你要解密就反向移動3個字母,對稱密鑰加密存在兩個問題。第一,這種加密方式容易猜出密鑰,第二,在區塊鏈這樣的分散式(去中心化)網絡中,你要如何將密鑰傳遞給彼此是誰都不知道的參與者呢?
解決這個問題的方法就是我上面提到的非對稱密鑰加密,首先,它會使用兩個不同的密鑰,也就是公鑰和私鑰,這兩把都可以加密和解密,也就是說我用公鑰加密的東西,可以用我的私鑰解密,我用私鑰加密的東西,也可以用我的公鑰解密。
假如現在我有一對鑰匙(公鑰私鑰),小瑜也有一對鑰匙(公鑰私鑰),我跟小瑜都把公鑰交給對方,那我手上有甚麼?我的私鑰和小瑜的公鑰;小瑜就會有她的私鑰和我的公鑰,現在,我傳東西給小瑜,我要用她的公鑰加密,因為世界上只有小瑜自己手上有她的私鑰可以解密,如果途中被攔截了,別人也沒鑰匙來解密,所以我用她的公鑰加密給她,她就可以用她的私鑰解密囉!
唉?大家是不是會有疑問,小瑜給我她的公鑰,我加密後傳給她用私鑰解密,那我的公鑰給她幹嘛?答案是跟數位簽名有關,數位簽名簡單來說就是用來驗證我的身分,今天傳東西給小瑜會是這樣的流程: 我會用我的私鑰和她的公鑰加密,小瑜收到後,會用她自己的私鑰解密,接著使用我的公鑰解密,驗證我的hash來確定交易的內容未被修改,就讓我在下一篇好好跟大家解釋一下hash是甚麼吧!那我們明天見~