• Libbitcoin 工具箱:
    相當於比特幣的瑞士刀

  • 利用 Libbitcoin
    而開發出的兩個
    比特幣應用理念

  • 28/07/18 北京比特幣聚會
  • 姜欣宇
  • 區塊鏈科技專家顧問
  • james.chiang@protonmail.com
Libbitcoin 介紹
  • 比特幣軟件庫(c++)
    • 主要維護者: Eric Voskuil
    • 創始人: Amir Taaki
    • 第一個satoshi模型替代軟件

  • 模塊設計
    • 獨立軟件成分
    • 可獨立compile

  • 程式介面給軟件工程很好讀
    • 比特幣的協議

  • 能延展的服務台
    • 高性能的服務台
    • 可延展的server接口

  • 比特幣的好用工具箱
利用 Libbitcoin 而開發出的用理念
  • 分岔幣的錢包
    • 階層確定衍生錢包 (Hierarchical Deterministic Wallets)
    • 硬分岔和交易重廣播
    • 設立分岔幣錢包應用

  • 閃電網路監控燈塔
    • 簡單的閃電交通
    • 外包閃電通道的狀態
    • 設立閃電監控燈塔應用
階層確定衍生錢包
  • 助記編碼的主要秘密
    • 新的鑰匙能無限制的衍生
    • (公開延長鑰匙/私人延長鑰匙)

  • libbitcoin 錢包程式介面
    • BIP32/39 錢包特性都有

  • 錢包用法會引響鑰匙衍生路結構
    • 收錢地址
    • 零錢地址
    • 衍生新鑰匙保護個人隱私

分岔幣合交易重播
  • 分岔幣時:沒用的輸出索引表兩邊同樣的
    • 錢包的鑰匙兩邊都可以簽交易

  • 簽名可以在另外的區塊鏈從用

  • 硬分岔幣都有重播保護
    • 簽名的算法要改變

  • 錢包應用需要能接受新的參數...

重播保護 : 簽名哈希變化
  • 用私人鑰匙簽簽名哈希

  • bcash 簽名哈希標誌的字節會改變
    • 簽名哈希的字節加分岔號

  • libbitcoin 的程式介面能改變簽名哈希的參數
    • 標誌字節
    • 不同的系列化的算法能力(BIP143)

分岔幣的錢包
  • 錢包在分岔後會重複分岔前的hd鑰匙的結構
    • 錢包需詢問服務台,才能確定未用的輸出

  • 加分岔參數的libbitcoin服務器
    • 每個分岔比需要獨立的服務台
    • 錢包能在每個區塊鏈分開的廣播交易

利用 Libbitcoin 而開發出的用理念
  • 分岔幣的錢包
    • 階層確定衍生錢包
    • 硬分岔和交易重廣播
    • 設立分岔幣錢包應用

  • 閃電網路監控燈塔
    • 簡單的閃電交通
    • 外包閃電通道的狀態
    • 設立閃電監控燈塔應用
簡單的閃電通道
  • 資金的交易和第一承諾交易
    • Alice 簽的資金交易
    • 雙方簽署承諾交易合約

  • 正確的通道結束
    • 任何節點能廣播最新的承諾交易

  • 問題: 不正確的通道結束
    • 無法防止廣播舊的承諾交易

可撤銷的輸出
  • Revocable Sequence Maturity Contract
    • RSMC 輸出有兩個辦法開鎖

  • RSMC A 超時後: Alice能使用
    • Alice 過時後可以簽名 RSMC A

  • RMSC A 隨時能被 R 鑰匙開鎖
    • 私人鑰匙 R 有兩半, r1 合 r2
    • 每個節點會造新密碼
    • r1 發給 Bob 以後,Bob 就能把 R 算出來,rmsc A 就撤銷了

可撤銷輸出的閃電通道
  • 撤銷的輸出可被對方使用
    • 懲罰交易

  • 需要監控被取消的交易
    • 各方需要注意被撤銷的交易廣播

  • 閃電通道監監控燈塔
    • 可以通過第三方外包的方式來實現
      "監控被取消的交易"
    • 監控燈塔看到取消的承諾,就馬上反應

閃電監控燈塔
  • 監控燈塔監控承諾交易號碼的廣播
    • 監控燈塔在數據庫查找交易號碼前半部分
    • 簽署了懲罰交易用交易號碼後半部分加密

  • 取消的交易廣播了
    • 監控燈塔查到交易號碼前半部分
    • 用查到的交易證號後半部分解密懲罰交易

設立閃電通道監控燈塔
  • 監控燈塔存儲數據對(交易號碼,加密懲罰交易)
    • 各數據對可獨立的管理
    • 各數據對可給不同的監控燈塔管理

  • 監控燈塔掃描每個新區塊的數據
    • 通過監控燈塔的掃描,發現可以配對符合交易號碼,廣播懲罰交易

  • 使用libbitcoin來擴展監控燈塔的功能
    • 高性能的服務器
    • zmq 接口適合延展服務

  • Q&A