李永樂老師講比特幣(2)-重點整理

  • 比特幣是一種’‘電子記帳系統’',所有交易紀錄皆為公開且匿名

  • 如何保證交易紀錄的真實性

    • 身分驗證
      • 傳統: 人臉辨識、簽名、指紋
      • 電子系統: 電子簽名
    • 電子簽名(數位簽章)
      • 比特幣用戶註冊時,系統會生成一"隨機數",透過隨機數會產生"私鑰"(私有)字串,私鑰字串又可產生"公鑰"(公開)字串,公鑰又可產生"地址"(公開)
      • 公鑰無法反算私鑰
        • 自己轉出比特幣: 公鑰+地址
        • 他人轉入比特幣: 地址
        • 私鑰可以對字串進行加密
        • 公鑰可以解密私鑰加密的字串
        • 以上稱為非對稱加密(ex.RSA是非對稱加密的一種)
    • 例子: 假設A給B 10個比特幣
      • 1.A先寫一條紀錄(A給10比特幣到B),之後進行Hash運算,再用私鑰進行加密,產生一組密碼
      • 2.將交易訊息、公鑰、密碼對每一節點進行"廣播",節點會去運用紀錄去做Hash運算,與運用公鑰解密後的密碼進行比對,驗證其交易的真偽
      • 3.現假設A只有10個比特幣,卻同時給兩人10比特幣(double spending problem)
        • 如何進行帳戶餘額檢查
          • A廣播出交易訊息後,區塊鏈中的節點會往前檢查每一區塊中A的交易紀錄(追溯),確認A的餘額
          • 防止雙重支付
            • A同時廣播兩條消息
              • 給B 10比特幣
              • 給C 10比特幣
            • 每一個節點會去算A的餘額是否還夠,如果剛好有10比特幣的話,一些節點收到第一條消息就會拒絕第二條(因為餘額不足),反之亦然。
            • 第1(或2)的消息會被放到區塊中(未被確認),當有一個節點解出隨機數,新的區塊會被鏈結到區塊鏈中,其餘節點則會放棄打包區塊的機會,自動承認第一個產生的區塊,此時第1(或2)個消息被確認,另一消息則不會被確認(此時A餘額已經確定是0)
            • 只有當區塊鏈接到區塊鏈上,交易才真正完成
    • 防止竄改
      • 最長鏈原則
        • 當有兩個礦工同時找到一個新區塊(產生分支,上、下),當上面區塊的下一個區塊先被找到,此時上面的鏈結就比下面的長,所有人會跟著往上面走,下方區塊則打包失敗
        • 若有人想要修改自己的交易紀錄,就要從該筆交易紀錄區塊開啟新分支(往另一方向走),但根據最長鏈規則,這筆紀錄不會被其他節點承認
REF: 比特幣交易如何防偽?私鑰公鑰地址啥意思?李永樂老師講比特幣(2)

分享到