核心開發團隊公告

在Monero上的2018年,許多令人興奮的新技術正順利地進行著,然而為了保持Monero可以走在隱私保護與區塊鏈技術的尖端,技術並不是全部。考慮到這點,核心開發團隊(Core Team )想要在以下的文章提醒整個社群關於核心開發者在這專案中所扮演的角色和地位。

核心開發者在Monero中的角色常常是個讓人難以理解的事情,尤其是與其他的加密貨幣專案領導結構相比之下顯得不同。有鑑於不需信任(trustless)的社群經營尚無法實現,在某些情況下還是要有人負責需要信任的那些工作。簡單的例子就像是域名的管理(如getmonero.org)或是伺服器的管理(getmonero.org網站所在的伺服器),目前是沒有辦法讓一個去中心化的社群一起來擁有一個域名,所以有人就必須負責擁有這個域名。這種概念就像是核心開發團隊負責作為一個去中心化社群與中心化現實世界的橋樑。 核心開發團隊的責任如下(無特定順序):

  • 作為主要可信任的社群資助系統(Forum Funding System, FFS)的仲裁人,確保眾籌成功的專案有被依規格完成。
  • 管理Monero專案的程式碼,包括在GitHub上合併提交的修改、保存備份、以及確保任何人都可以安全且自由的取得程式碼。
  • 管理Monero專案的捐款,並把Monero花在被認為適合的專案上。
  • 簽署與分發可信任的官方版本Monero客戶端軟體。
  • 為Monero專案設定方向與遠景。

那些認為核心開發團隊怠惰於責任的人們都可以自由取用(fork)一份專案程式碼出去,開創一個新的專案,就如同Monero當初誕生時thankful_for_today所做的事情。 下列則是核心開發團隊”不”負責的部分,舉一些常常被社群誤會怪罪的事項:

  • 核心開發者的成員並不是任何人的上司,做任何事情都不需要經過他們的允許。
  • 核心開發者並”不”成為中心化的單點失效(point of failure),而是做為鼓勵組織性的、自發性的Monero專案生態建立起始點。
  • 核心開發者並”不”等於Monero專案,如果哪天核心開發者全部變成詐騙集團的時候,我們必須要記得Monero是一個專案行動,一個增進隱私並提供真正且滿足替代性的電子錢幣的全球性專案。這個目標是可以不需要核心開發團隊的存在也能做到的。

另一個核心開發者的需求則是需要足夠的活耀度,當某位開發者不能繼續在Monero專案中活耀的時候,那就應該要空出其位置並讓給其他人來替補,依上述的理由,tacotime已正式退出核心開發團隊,若不是在Monero創立初期的幾個月內的夥伴們應該不多都不知道tacotime與其對現今Monero發展所作出的貢獻。簡單的說,他與smooth在bitmonero的發展早期時奮鬥著凝聚社群與在thankfulfortoday之後的時期領導專案的方向。他作為程式碼的主要維護者,而這工作後來由fluffypony取而代之,我們很可以大膽的說如果沒有tacotime早期的努力,就沒有今天的Monero。核心開發團隊感謝他過去的貢獻,也希望他未來一切順利。

但是每次的改變其實也帶來了新的機會,核心開發團隊很高興地要歡迎我們的新成員Jeremie “binaryFate” Dubois-Lacoste加入核心團隊。binaryFate擁有電腦科學博士學位,在組合數學系統與演算法最佳化上具有學術專長。經過數年在學術研究單位的工作後,他決定要成為全職的加密貨幣創業人。他從2012年開始,已經在加密貨幣的投資、交易、和創業中活耀了一段時間。他在2014年時開始參與Monero專案,接著就成為隱私與貨幣替代性的技術積極擁護者,不論是在線上或真實世界中都是如此。

不論是過去或是現任的全體核心開發團隊都要向所有持續不懈工作付出的志願開發者和貢獻者表達感謝。我們滿心期待2018能夠帶給專案和社群的成果。

頁首圖來源: helloluis
官方原文: https://getmonero.org/2018/03/01/core-team-announcement.html

開發者會議紀錄 DevMeeting 20180225

  • 支援ledger硬體錢包的程式碼距離可以被合併的進度又大幅的縮短了
    • 需要與ledger硬體錢包的團隊更進一步的討論才能收尾
  • 三月的硬分叉(協定的升級)
    • 正在等待vtnerd的PoW調整。CUDA跟CPU的部分已經上傳到Github了,而OpenCL還在測試中。
    • 在硬分叉前後一周的禮拜天都將舉行開發者會議,時間在17:00 UTC
  • 有關預設環狀簽數量的討論

繼續閱讀...

關於PoW共識機制更動與重複使用金鑰

PoW共識機制的更動

最近常常可以看到關於抵抗ASIC礦機和如何面對潛在的ASIC礦機威脅等話題,這篇文將會(稍微)認真地指出: 我們對於如何藉由在硬分叉時調整PoW共識機制以維持抗ASIC礦機特性的立場。

特殊應用積體電路(Application Specific Integrated Circuit)簡稱ASIC在這邊指得是被特殊設計出來的挖礦硬體,舉例來說,BTC的ASIC礦機被設計用來挖SHA256演算法的加密貨幣。由於這種硬體是被特別設計用來挖礦的,也因此會比CPU、GPU、甚至是FPGA等日常使用的硬體來得有大量的效能優勢。因此,任何被設計出來的ASIC將會顯著地主宰全網算力並導致中心化的問題。

Monero的程式碼是從CryptoNote參考實作分出(fork),在CryptoNote的白皮書(https://cryptonote.org/whitepaper.pdf)中提到,比特幣的一個最大的缺點即是其PoW共識機制導致了中心化的問題。為了打造更平等的挖礦網路和更去中心化的特性,原先的CryptoNote開發者創造了Cryptonight PoW共識機制,以此拉近CPU(大眾)與GPU/FPGA/ASIC(少數人)的挖礦能力差距。CryptoNote的作者亦提到了”有些礦工比其他礦工更有優勢是合理的”,因為”他們的投資應能線性的提升其算力優勢”,這代表ASIC礦機的出現或許是必然的。我們雖然也認同這樣的可能性,但為了去中心化的原則下,我們認為任何ASIC礦機算力優勢的出現必須要越平等越好。在發文此刻,我們認為任何新發展的ASIC礦機都不會是平等的算力,更不會使Monero網路趨向去中心化。

比特幣使用的PoW共識機制(SHA256)具有一個重大的缺點,就是太容易就能從CPU轉移至GPU、接著至FPGA、最後就發展到了ASIC,這其中每一個轉移都帶來了巨大的效率提升。因此CPU挖礦與ASIC挖礦之間就存在著巨大的效益差距,導致最後ASIC成為了唯一挖礦的可行方案,這在本質上造成了中心化,因為只有少數的製造商才有辦法生產ASIC礦機。Cryptonight (Monero的PoW機制)為了拉近CPU、GPU、FPGA、ASIC的差距,在PoW共識機制中綁定了一定數量的記憶體需求,這樣的方式造成了ASIC的製造成本顯著提升。這個PoW機制帶來了更平等的挖礦,這樣的好處有: 第一,如果挖礦算力是去中心化的,這將會防止礦工刻意去挑選或忽略特定交易的確認,避免Monero的區塊鏈審查行為。第二,這將會降低挖礦趨於中心化至大型挖礦廠房。第三,這將會讓政府難以管制可以用來挖礦的硬體。

進一步地說,特製的硬體幾乎只能由少數的公司設計,如同比特幣目前的情況,最大宗的ASIC礦機都是由Bitmain設計與生產。如Peter Todd所說: “世界上僅有非常少數的公司有能力創造出有競爭力的ASIC礦機,基本上就是Intel、ASMC、GlobalFoundries等等”。

這造成了一個單點失效(single point of failure)的弱點,例如,政府可能向ASIC製造商要求增加一個”自殺開關”,這樣使得其能從遠端關閉或是控制礦機,而這將是有潛力破壞整個交易網路的威脅。或是政府也可以要求礦工必須擁有執照才能使用ASIC挖礦,如此就限制了ASIC礦機只能被特定的團體所持有。這樣的證照系統最終可能導致某些交易的黑名單行為,譬如,政府可以要求礦工不得打包特定的交易否則就撤銷證照。相反的,用日常用途的硬體挖礦就可以讓這些手段無法被實際執行。

挖礦這件事,通常來說也具有著讓富者恆富的效應,最終導致中心化的問題。譬如具有經濟規模的礦工可能會更有足夠資本來提升其在全網算力裡的占比。而Cryptonight演算法,拜其平等的特性所賜,或多或少迴避了這個問題,因為礦工必須面對數種來源的競爭: (i) 幾乎沒有成本的殭屍網路(botnet)、(ii) 愛好者礦工,並非由利益驅動的使用他們的CPU與GPU支持網路、(iii)網頁礦工,這種有可能是非法(未經同意透過廣告挖礦)也有可能是合法(用來代替CAPTCHAs或減少/替代廣告)的方式。相對之下,ASIC礦機加速了富者恆富,因為他們沒有上述提及的競爭對手。

總結來說,我們強烈的相信保持抵抗ASIC的特性將會帶來好處,因此若有需要時,我們可能會發起臨時性的硬分叉以約束任何潛在的ASIC礦機威脅。此外,為了維持去中心化的目標並抑制檯面下的ASIC開發,Monero核心開發團隊將會在每次的例行分叉更新時微調PoW共識機制,也就是一年兩次的周期,這些更動將會是細微的調整,且不會影響效能太多,第一次微調已在測試中,將在本次三月的硬分叉中實施。我們的最終目標則是研發出新的一套PoW共識機制演算法以取代Cryptonight來確保更好的ASIC抵抗能力。

微調將會相容於下列軟體: zone117x’s pool, Snipa’s pool, Lucas Jones’ CPU miner, wolf0’s CPU miner, ccminer-cryptonight, sgminer-gm, xmr-stak, xmrig-nvidia, wolf-xmr-miner。

金鑰的重複使用

身為使用者的你必須意識到Monero網路與你所擁有的Monero安全性是取決於你握有的Monero私鑰,你的Monero金鑰就是Monero金鑰。請不要把他們拿來使用在其他用途,包括在Monero的其他分叉幣上取得錢幣。若你使用同一份金鑰(key)在不同鏈上重複花費同一筆交易輸出(output),這將會傷害你的隱私,同時也對其他人的隱私造成傷害,因為這會產生相同的金鑰映像(key image)在不同的環簽名(ring)之中(這不影響隱匿性地址或保密交易協定,僅影響環狀簽名)。此外,當你在其他鏈上使用相同的金鑰之後,你的私鑰安全性將依賴那些第三方的信用。

  • 分叉者們: 如果你們要分叉Monero區塊鏈,請不要要求使用者重複使用他們的私鑰,而是讓使用者在你們的新鏈上產生新的私鑰。
  • 使用者們: 如果分叉者要求你在他們的新鏈上輸入你的Monero金鑰(在這篇文章發表之後),他們很有可能正在試著操縱你參與大規模的Monero攻擊事件。

請注意安全,並不要在Monero以外的用途重複使用你的Monero金鑰。

本文譯自getmonero.org https://getmonero.org/2018/02/11/PoW-change-and-key-reuse.html

開發者會議紀錄 DevMeeting 20180128

  • 開發者發現防彈協定可使用”批次認證”的方式大幅增加運作速率。
    • 就一般的複雜度而言,可縮減至僅需約15%的時間。
  • 若對門羅幣的Debian套件有興趣的人們,歡迎加入這個討論
  • 門羅幣GUI的部分:
    • 已將子地址功能納入。
    • 已將付款ID和整合型地址的功能移除。
    • 增加了--bootstrap-daemon-address參數,希望可以加快同步的速度。
  • 2018三月的硬分叉
    • 如先前的討論所述,防彈協定在主要網路正式啟用前還需要更多的研究,因此並不會在2018年三月的硬分叉植入。
    • 有在計畫要降低手續費,改變公式會如何影響整個網路還在研究中。

繼續閱讀...

開發者會議紀錄 DevMeeting 20171217

  • 增加了關閉DNS查詢的指令 (為了離線模式而設計的)
  • 防彈協定(BP)已開始在測試網路(testnet)中運作了
    • 協定中的數學部分已經很仔細的審視過了,並無明顯的錯誤,是時候來測試了
    • “對加密學來說最好的測試就是時間” -- Surae
    • 關於何時可以在主要網路中啟用BP的部分討論了非常久(佔了絕大多數的開會時間),選項分別有2018三月或九月的硬分叉
    • 防彈協定若無法趕上三月的硬分叉,屆時可能會另有替代方案暫時降低手續費
  • 門羅幣硬體錢包小組今天有個可以簡化韌體升級程序的重大突破
  • 下一次會議時間是2018年的一月14

繼續閱讀...

關於Monero手續費的一份筆記

近期社群中不斷有抱怨認為Monero交易的手續費過於昂貴。雖然我們並不同意其中的一些意見,但我們還是必須先徹底地分析一下這個情況。在那之前我們必須回應一點,有些抱怨認為開發者理當要將手續費直接修改降低後釋出新版本,但這樣的作法是因小失大的,因為 1. 這個方法只是把問題向後拖延;2. 改變參數與公式需要進行硬分叉,而這需要全面的共識;3. 每當價格變化後就得介入調整手續費的作法與去中心化的生態是矛盾的。

繼續閱讀...

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

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

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

感謝Bünz、Bootle 與其他作者近期發表的一篇論文 (原文在此),他們在論文中提出了一個更有效率的範圍保護協定,稱為防彈協定。該協定的範圍保護容量僅在範圍大小與輸出數量同時增加時才會對數成長。因此防彈協定就分為兩種方案: 單筆輸出與多筆輸出的交易。多筆輸出的交易可以是多個單筆輸出或是一個多筆的輸出組成(這會比各自獨立的範圍保護來的省容量)。

讓我們來看看一個標準的雙筆輸出交易,也就是一筆傳送出去和一筆找零回自己錢包的輸出。以Monero現行的範圍保護協定下,這樣的交易容量約為13.2kB。若改用單筆輸出的防彈協定後,容量將只需要2.5kB,節省了將近80%的容量,等於節省了80%交易使用區塊的容量,也連帶地降低了80%的交易手續費。若使用多筆輸出的方案甚至可以節省更多的容量。另外,在我們的初步測試中,防彈協定認證所需的時間也比現行協定來得更快,也就是可以加速區塊鏈的驗證速度。

我們已完成了可運作的防彈協定JAVA測試程式碼(GitHub repo在此),單筆輸出與多筆輸出方案皆有。而單筆輸出的方案已經被moneromooo改寫成C++的版本(PR在此),並且會在近期放上測試網路,正在徹底的檢查與測試程式碼。

而多筆輸出的防彈方案還需要多點時間進行確認,因為防彈協定的驗證所需的運算是與輸出數呈線性正相關(容量為對數相關),攻擊者可能會利用這點打包一筆巨大數量輸出的交易,這可能讓攻擊者得以用小額的手續費來耗費巨大的驗證運算資源,讓交易網路壟罩在著阻斷服務攻擊(denial-of-service attack, DoS)的風險下。因此我們必須調整手續費的架構,必須額外考慮到所耗費的運算資源來計算手續費,這不代表手續費會被提高,而是讓手續費在因應輸出增加時的計算方式能夠更加適當且安全。

為了避免產生任何預期外的問題,我們將會以兩階段的方式來啟用防彈協定,你會先看到單筆輸出的方案上線,常見的雙筆輸出交易將會暫時以兩筆分別單筆輸出的方案的方式使用,即便如此也比現行的方案節省了可觀的容量,你將會發現交易手續費變低和錢包驗證速度加快。我們將會繼續研究多筆輸出防彈方案和其手續費架構的微調,最後將會在第二階段將之啟用,我們希望礦工是在手續費計算架構安全的情況下才使用多筆輸出的防彈方案。

總而言之,防彈協定給Monero交易帶來了巨大的進步,可觀的容量節省,更快的錢包驗證速度,以及更低的手續費。如果你有在使用測試網路,千萬別錯過近期就會投入測試的防彈協定!

翻譯原文來源: https://getmonero.org/2017/12/07/Monero-Compatible-Bulletproofs.html

將MyMonero網頁版錢包匯入至GUI錢包

MyMonero是許多人使用的熱門網頁版錢包,使用上方便不須煩惱同步問題,但畢竟是線上服務,偶爾會發生服務中斷或延遲等狀況,這篇要來教你怎麼把MyMonero的金鑰匯入到官方的GUI錢包。 首先必須說明一點,Mymonero用的種子碼是舊式的13字記憶種子碼(seed),而官方的錢包是25字種子碼,所以MyMonero的13字並無法適用一般的25字種子碼的回復方法,必須從MyMonero網站上取得個別的金鑰來匯入GUI錢包。

  • 點選從網站上的右上角Account/Account Details

  • 就會出現個別的錢包金鑰 (請注意這些金鑰等同於種子碼一樣為機密資訊,切勿外露)

  • 接著啟動GUI錢包,選擇中間的從金鑰回復錢包選項。

  • 輸入你想要的錢包名稱,選擇金鑰還原後就會出現各個金鑰的欄位。
  • 將剛剛網站上的個別金鑰逐個填入。
  • 回復特定高度若不清楚可不填。
  • 最後一欄可指定產生的錢包檔案儲存的位置

  • 接著為你的錢包檔案設定一個密碼

  • 設定完成後就會看到錢包開始同步區塊找回錢包餘額啦!

  • 需額外注意的是,用金鑰還原的錢包不會有種子碼資訊,因為從種子碼到金鑰是無法逆向解密的。所以從MyMonero取出金鑰匯入之後,原本的種子碼還是要收好以備不時之需喔!

若你對GUI錢包的使用不熟悉,可以參考GUI錢包的使用教學遠端節點的使用

開發者會議紀錄 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)換成比特幣用的版本

繼續閱讀...