簽名驗證邏輯代碼
賬戶地址(公鑰):2A39CBa2390FDe 賬戶地址 私鑰:378sknJhidhLIqdngalket 公鑰 私鑰可以互相加密解密 簽名過程: hash('{"付款地址":"2A39CBa2390FDe","收款地址":"AAC9CBa239aFcc","金額":"1btc"}') = 8aDB23CDEA6 #將交易信息hash加密爲交易摘要 sign("8aDB23CDEA6","378sknJhidhLIqdngalket") = 3cdferdadgadg #可以將sign理解爲使用私鑰對交易摘要進行加密 驗證過程: verify("3cdferdadgadg","2A39CBa2390FDe") = 8aDB23CDEA6 #因爲私鑰公鑰可以互相加解密,所以這裏利用公鑰就可以解密出加密過的交易摘要 if(verify("3cdferdadgadg","2A39CBa2390FDe") == hash('{"付款地址":"2A39CBa2390FDe","收款地址":"AAC9CBa239aFcc","金額":"1btc"}')): #寫入賬本 #廣播 else: #donothing
工作量證明
交易的有效性驗證就是簽名驗證邏輯代碼裏面提到的內容
一條鏈路由此形成:但是裏面沒加隨機數,應該還有隨機數
區塊就是一系列交易信息的打包,只需要驗證最後一個區塊的有效性即可驗證整條鏈的真實性