開發者會議記錄 DevMeeting 20181007

  • 本週合併了許多將在v0.13.0版本發布的程式碼
    • 執行檔可望在本週發布,CLI應當會率先發布,而後才是GUI。
    • TheCharlatan將會宣布/建議本次版本使用可重現編譯(reproducible build)的可行性。
      • 若不幸失敗了,程式碼/二進位版本將會以原先的方式發布,可重現編譯的版本將改於v0.13.1推出。
    • 翻譯小組在發佈前還有些檔案需要處理。
  • 未來的版本發布規劃
    • 建構小組希望於2019一月推出v0.14.x版本 – 大幅提前於下次協定升級的時間。
    • 將會預留超過一個月的時間測試並於二月正式發布。
    • 目標是讓排程不要這麼緊迫 – 在接近正式發布的時候別塞入太多的新功能。
    • 防彈協定的安排方式是個很好的例子:原先排在2018較早的月份,但因程式碼的審查而決定延後推出,整個過程運行的相當順利。
  • v0.13.x 的GUI可能會加入使用手冊/教學文件
    • 如何妥善的打包還在討論中。
    • 用PDF很好但可能會成為一個攻擊向量。
    • 團隊正在尋求替代方案。
  •  Mac在v0.13.x支援Ledger的測試尚未收到足夠的資料,開發Ledger整合介面的其中一名開發者,cslashm,並無Mac供測試
    • 目前已知在Mac上有個可能的bug是按下按鈕過快或過慢時會有點問題。
  • 下次開會將於10月14日 UTC 17:00(台灣時間10月15日01:00)

閱讀更多開發者會議記錄 DevMeeting 20181007

關於燒毀漏洞的事後檢討

這篇文章要來談一個被稱為燒毀(burning)的漏洞。這篇文章的目標是對上述的漏洞提供完整的細節,解釋這是如何被用來攻擊線上服務、商家與交易所,並且 Monero (開發)社群是如何處理這個漏洞。

這個漏洞基本上來自於錢包在接收到被燒毀的交易時不會發出警告。因此,有心的攻擊者可以利用這點,僅是支付網路交易就能燒毀一個服務機構的錢包內資金。經由此漏洞,攻擊者其實沒有直接的獲益,但是仍然可能有間接的獲益。燒毀的概念上是將數筆交易送至相同的隱匿性地址,而這地址是在先前就已經存在的,這概念的例子可以在先前的討論中看到。不幸的是,這問題被利用來攻擊服務機構的可能性並沒有被察覺,直到 Monero 的一位 reddit 社群成員提出了這個攻擊假設。

目前,Monero的隱匿性地址可以用這樣的公式來表示:

P = Hs(rA||i)*G + B

其中

Hs 是一個雜湊至純量的函式(注意這存量的輸出為 reduced modulo l);
r 是交易私鑰,由發送者隨機產生;
A 是查看公鑰,是收款者的錢包地址字串的其中一部分;
i 是交易輸出索引 (每筆交易輸出都有其索引編號,譬如第一筆交易輸出就是索引0);
G 是標準 Ed25519 的基點;
B 是花費公鑰,是收款者的錢包地址字串的其中一部分;

而 Monero 的金鑰映像可由以下公式表示:

I = xHp(P)

其中

x 是一個私鑰/純量(由收款者的花費私鑰與 ECDH 共享金鑰雜湊純量輸出相加而得);
Hp 是雜湊至點函式;
P 是隱匿性地址;

可以從上面的公式看到,將 Monero 發送至相同的隱匿性地址時將會輸出多個重複的金鑰映像,當區塊鏈網路中出現重複的金鑰映像時,網路將會將之捨棄,因為這相當於重複花費的攻擊。因此每一個隱匿性地址都只能有一個交易輸出被花費一次(錢包會自動挑選面額最大的來使用),而其餘的交易輸出將會無法被花費/被燒毀。此外,發送到同一個隱匿性地址的交易之間關係將可以被連結起來。

閱讀更多關於燒毀漏洞的事後檢討

開發者會議記錄 DevMeeting 20180909

    • 由於與表定分叉更新的時間已非常接近(約於20181018),因此下次的版號將直上V0.13.0.0而非原規劃的v0.12.4.0

    • 最新的PoW已更動為CryptoNightv2,需要一些會C++的開發者幫忙審查

    • Kovri 的程式碼已正式從GitHub移至Gitlab,而主要的Monero 程式碼尚未決定是否要移動

      • 很可能以Gitlab為主而Github作為鏡像備份

      • 也可能Monero就直接用Gitlab的軟體自行架站

      • 防彈協定(BulletProofs)與CryptoNightv2程式碼的合併並於testnet上運行預期會在9月10-11號開始

      • 下次開會時間為2018年9月16號

閱讀更多開發者會議記錄 DevMeeting 20180909

關於重複計數漏洞的事後檢討

這篇文章要來談重複計數(multiple counting)的漏洞,其包括了兩個變種。這篇文章的目標是對上述的漏洞提供完整的細節,解釋這是如何被用來攻擊線上服務、商家與交易所,並且 Monero (開發)社群是如何處理這個漏洞。

重複計數漏洞的兩個變種存在於子地址(subaddress)功能中,這功能用了個不同的交易金鑰程式碼架構。第一個漏洞的變種簡單來說就是沒有對重複的公鑰進行檢查,因此攻擊者可以重複將同份交易公鑰包含在交易中,這結果導致了接收者的錢包會回報收到了x倍於其真正收到的的交易數量(x是代表收到幾次交易金鑰的一個整數),所有用來回報收到交易的指令(如show_transfers (CLI), get_transfers (RPC))都被此漏洞影響。但是餘額並沒有受到影響,錢包依舊會回報正常的資金餘額。可惜的是,大多數的交易所都是利用 get_transfers 或 get_payments RPC指令在運作,因此重複的交易公鑰將會導致計算出錯誤的金額。

閱讀更多關於重複計數漏洞的事後檢討

開發者會議記錄 DevMeeting 20180826

  • 下次分叉的日期暫訂為2018年的10月18日
  • SChernykh已貼出了CrptoNight-v2最後的更動
    • 即將要合併入程式碼
    • 這將會是分叉後的新Proof of Work協定
  • 最終版的防彈協定即將要合併
    • 不確定是否會納入數個可以加速程式速度的程式碼修正
  • Endogenic 的LightWallet pull request需要幫忙審閱
  • ph4r05 提交了一些初步的程式碼來支援Trezor的硬體錢包
  • 一旦新防彈協定和CryptoNight-v2的合併入主程式碼後,testnet的區塊鏈將會重組並會需要一些測試者
    • 預計下禮拜開始,最早禮拜二。
  • GUI在分叉前可能還是會有個v0.12.4.0的更新發布
  • 讓Monero可進行重現編譯(reproducible builds)的工作持續進行中,正在徵求額外的協助
  • 下次開會時間是2018年9月9日

閱讀更多開發者會議記錄 DevMeeting 20180826

開發者會議記錄 DevMeeting 20180729

  • 已收到所有防彈協定的審查結果了
    • 未發現明顯的問題
    • 並得到一些最佳化上的建議
    • 所有跡象都顯示防彈協定將可以被排入下一次的協定升級中
  • vtnerd 研究msgpack應用在monero上的編碼已有一段時間,預計將可與json做為並行方案
    • msgpack是編碼/解碼速度普遍較純JSON快的二進位通訊編碼
  • vtnerd 將會繼續處理ZeroMQ(0MQ)的實作
  • MoneroMooo 開發出了一個區塊鏈的分析工具來計算交易輸出來源的基數(the cardinal of an output’s ancestry)
  • 還有一大堆GUI的工作仍舊持續在進行中
  • hyc正在測試新的PoW運作方案-randomJS已經用C++改寫,且正在Wownero中測試
  • 下次會議將於8月12日舉行

閱讀更多開發者會議記錄 DevMeeting 20180729

開發者會議記錄 DevMeeting 20180715

  • Monero v0.12.3 CLI命令列介面版本錢包已發布
  • Monero v0.12.3 GUI錢包
    • 已標記發布版本號並由Fluffy編譯發布
    • 此版本將開始原生支援Ledger硬體錢包
    • 0.12.3版發布之後,後續的重要目標將是改善使用者體驗
    • 亦將開始開發安卓和iOS系統原生支援的版本
    • 若任何人對套件打包有興趣,請與dEBRUYNE聯繫
  • rbrunner 持續開發Monero訊息系統中
    • endogenic 表示他們打算做出類似OpenMonero的東西
  • Oneiric 正在處理 Kovri的SSU(加密的UDP封包)
  • endogenic 成功的把Monero原始碼轉譯(transpiling)成Javascript了(透過wasm)
  • vtnerd 預估Lightwallet的起始/測試用伺服器的實作PR將會在今日(7/15)上傳
    • 隨著進度的推展將會有許多次較小的程式碼上傳
  • 可能將會有個小版釋出(0.12.3.1 或 0.12.4)來修正會隨機閃退的問題
  • 若你對學習嵌入式硬體的開發有興趣,請聯繫msvb-lab。該硬體團隊開發出了一款徽章,將會在今年的世界駭客大賽上亮相,這是個很好的入門學習機會。

閱讀更多開發者會議記錄 DevMeeting 20180715

開發者會議紀錄 DevMeeting 20180617

  • 在Fluffy完成編譯之前有個非官方的GUI編譯版本已發布可供使用
  • VTNerd 做了一些ZeroMQ(0MQ)的更新
  • Serhack 繼續”精通門羅幣”(Mastering Monero)書籍的撰寫
  • 有關防彈協定的審查
    • Quarkslab 預計它們的審查即將完成(最早會在下周末)
    • 初期報告顯示沒有漏洞,但它們有一些建議的改進方式
    • Kudelski的報告約會在六月底出爐
  • 有關減少完整節點同步所需時間的討論
  • 有關GUI錢包的效能和提升使用者體驗(UX)的討論
  • Mooo 需要一些協助來測試PR 4011 中的新SSL 設定:https://github.com/monero-project/monero/pull/4011
  • 下次開會將於7/1舉行

閱讀更多開發者會議紀錄 DevMeeting 20180617

開發者會議紀錄 DevMeeting 20180520

閱讀更多開發者會議紀錄 DevMeeting 20180520