金融科技力(數位力)題庫下載題庫上一題
26. 在區塊鏈中要做到不可否認的身分驗證,收款方用自己的私鑰加密於亂碼化(Hashing)後的交易內容產生數位簽章,付款方收到資料後,以下列哪一種方式就可驗證交易的正確性?
懸賞詳解國一數學下第二次【已刪除】6、已知爸爸的身高是兒子身高的倍,則爸爸的身高與兒子身高的比為何? (A) 2:3 (B) 3:2 (C) 5:3 (D) 5:2 ... 50 x前往解題懸賞詳解國二地理上第一次10. 小美到上海人民公園休閒散步,看到某位父親張貼海報為 兒子徵婚,如附圖。請問:此與現象中國哪一種人口問題相關? (A)人口數太多 (B)少子化 (C... 10 x前往解題昨天遇到一個問題:如果我們未經驗證就直接把交易紀錄送上區塊鏈,那麼任意人都可以隨意移轉他人帳戶的餘額,很明顯這樣是不可以的,於是今天我們主要處理的便是驗證發起交易者的身分與權限,其中又可以分成以下三個步驟:
非對稱式加密區塊鏈只存在網路上,我們很明顯地無法透過身分證等文件去確認發起者的身分,因此這裡用到的是非對稱加密。但非對稱加密因為篇幅較長與理論較深之後會獨立一個章節做進一步的說明,這裡先簡短說明一下非對稱加密的功能。 非對稱加密會得到兩把鑰匙:公鑰與私鑰,功能很簡單就一句話
也就是每個人在產生地址的時候同時會得到一把公鑰、一把私鑰,通常公鑰會釋出給對方,私鑰會自己持有以證明自己是該公鑰的持有者。 圖片來源:twillo 以上圖傳私訊給Bob為例,為了確保我所傳遞的訊息只有Bob能夠收到,因此我們使用非對稱加密來達成,步驟如下:
而區塊鏈驗證身分的方法恰恰與上面的例子相反,上面的例子是使用公鑰加密而後再用私鑰解密。 驗證身分則是透過私鑰把我們的交易紀錄加密,再讓外界使用公鑰解密看看,如果能夠以公鑰解密,就能夠確保這筆交易紀錄是公鑰持有人所簽核的,也就是使用私鑰加密交易紀錄、再使用公鑰解密,又稱之為數位簽章。 利用RSA加密產生公、私鑰與地址在這裡我們使用RSA加密法隨機產生一對公私鑰,並且轉存成pkcs1形式:
我們的public_key(pkcs1)原本上的內容是這樣的
我們把其中一些不必要與重複的內容過濾掉,只留下中間有意義的部分:
濾完之後剩下的部分便是它的公鑰,這時候我們可以直接把它當作地址來使用!
這就是我們常看到在Bitcoin或Ethereum上看到的一連串像是隨機位元組的地址由來了! 但到這裡你可能會有個疑問:產生的公私鑰/帳號會不會有重複的可能? 答案是:會!但是機率~0 總而言之在區塊鏈接納這筆交易前,先試著用地址反推回原本的公鑰,再用公鑰解密當初這筆交易紀錄的簽章看看,如果公鑰解的開就可以代表是公鑰持有人本人所簽核的,這便是剛剛提到的"數位簽章"。
利用產生的公私鑰簽章後發送交易產生公私鑰後,先透過
因此實際使用上可以分成三個步驟
試著跑起整個鏈並發起交易接著就可以跑起整條鏈了!首先先為我們自己開一個地址,接著創造創世塊。然後便可以不停地挖掘新區塊→調整難度→挖掘新區塊→調整難度→....周而復始,而且中間還可以發起交易!
今天的問題但我們的區塊鏈還少了一個必要的東西:P2P網路,我們的區塊鏈沒辦法接收其他人的請求,只能在本機端跑,因此我們明天就會來透過通訊把我們的區塊鏈區分成:節點端(礦工端)與客戶端! 到目前為止的文章都會放置在Github上,至於今天程式碼則放在這裡。 Ref
|