防彈協定(Bulletproofs)將為Monero帶來更低的手續費

這是一篇關於防彈協定(Bulletproofs)的進度簡述與其在Monero上的應用介紹。簡單來說: 這協定令人驚艷,有效地降低了手續費,且已準備好要在測試網路(testnet)上開始測試。

現行的保密交易技術(confidential transactions, CT)可將Monero的交易金額隱藏,但為了確保所有人都可以驗證交易輸入和輸出的總和為零,我們使用具有代數性質的承諾協議(commitment),此外,我們還需要確保所有數值為正值以免造成溢位(overflow)的風險,此時範圍保護(range proofs)就發揮了作用。範圍保護可以讓每個人得以將承諾協議限制在一個特定的範圍內進行驗證,並完全不洩漏其他的交易資訊。我們現行的範圍保護協定會因交易輸出增加與範圍長度(目前為64bit)而使得容量大小呈現線性成長,這就造成了肥大的交易容量。不僅如此,若是交易中有多筆輸出,每筆輸出都需要分別有各自獨立的範圍保護,更會大幅增加交易容量,這並不是一件好事。

感謝Bünz、Bootle 與其他作者近期發表的一篇論文 (原文在此),他們在論文中提出了一個更有效率的範圍保護協定,稱為防彈協定。

閱讀更多

開發者會議紀錄 DevMeeting 20171203

  • MRL 已有可運作的多筆交易輸出的bulletproofs的java測試程式碼了
    • 目前正在轉換為C++的版本(不包含多筆輸出的部分)
    • 此技術對於手續費架構的影響也在研究中(輸出筆數若很大量可能會造成DoS)
    • 單筆輸出的bulletproofs大小約略是704bytes,雙筆輸出則是768bytes左右。而依照目前門羅幣現行的版本,單筆輸出的大小是6k,雙筆輸出則是12k。
    • 多數的bulletproofs在測試時平均大小約為2.2k
    • bulletproofs可能會包含於門羅幣的2018九月硬分叉
    • 供測試網路使用的版本可能會在一周內完成
  • 為了準備發布新版本,程式碼將會在本月(2017十二月)底凍結
  • Surae Noether 的multiSig植入工作已經差不多完成檢查
  • 程式碼凍結時預計會包含到multiSig (因此multisig也會出現在下一發布版本中)
    • 若有開發者對multiSig的開發方向和程式碼有興趣,現在是最好的時機到github上看看
  • ZeroMQ(0MQ) 也預計會出現在下一個版本中,但此刻還有缺一些功能
  • 依然在研究是否可以把門羅幣的亂數生產器(Random Number Generator)換成比特幣用的版本

閱讀更多

開發者會議紀錄 DevMeeting 20171119

  • MRL小組已對BulletProofs做了徹底的研究
    • 可直接替代原先的range-proofs功能,容量大小約略是原先的10%
    • 速度基本上是一樣的… 或許可以變快一點點
    • 近期會把程式碼從Java test code 改寫成C/C++
  • MultiSig的開發持續進行中
  • 許多錯誤修正的程式碼已陸續被併入專案 (hyc 算過了, 一共72個)
    • 掩飾使用者輸入密碼時的密碼長度
    • 資料庫鎖定資料機制的更新
    • BSD的版本問題修復
    • 修正了show_transfers的多筆交易input顯示不全的問題
  • 硬體錢包
    • 團隊成員有二十位了
    • 第一個里程碑已完成
    • 原型會在本周的慕尼黑門羅幣會議展出
  • monero-core 的GitHub專案被正名為 monero-gui
  • Monero 整合小組已準備好發佈 Magento 電子商務插件下一個正在朝OpenCart電子商務插件進行整合。

閱讀更多