以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

比特幣技術周報丨Schnorr簽名隨機數生成為何棄用RFC6979 ?_COIN

Author:

Time:1900/1/1 0:00:00

寫在前面:這期的比特幣技術周報,我們先討論一個關于比特幣最小允許交易大小的問題,然后是一些新的技術問答,比如關于taproot輸入大小、Mempool300MB限制以及Schnorr簽名nonce生成的問題,最后則是關于比特幣基礎設施軟件的一些重大更新。

(圖片來自:tuchong.com)

注:原文內容來自BitcoinOptech

一、關于最小比特幣交易大小的討論

ThomasVoegtlin在比特幣開發者郵件列表中發表了一個帖子,介紹了如何創建只有60字節大小的剝離交易。而目前的情況卻是,BitcoinCore拒絕中繼或產生小于82字節的交易。對此,GregorySanders指出,這個限制規則的原因是為了解決CVE-2017-12842漏洞,而攻擊者可利用該漏洞將一筆精心編制的64字節交易納入到一個區塊中,然后使用它誘使SPV錢包確認一筆或多筆其他任意交易。

正如第36期周報中所述,通過禁止小于65字節的剝離交易,用共識軟分叉提議永久性地消除了執行該攻擊的能力。

Colonial Pipeline首席執行官將面臨國會對比特幣贖金的質疑:美國石油管道公司Colonial Pipeline的首席執行官約瑟夫·布朗特(Joseph Blount)預計將在周二面對國會,以提供他在5月14日決定授權支付近500萬美元比特幣贖金的理由。布朗特上個月告訴《華爾街日報》,他之所以付款,是因為Colonial的高管不確定網絡攻擊對其系統的破壞程度或恢復管道運營需要多長時間。(Coindesk)[2021/6/8 23:21:04]

在描述了這一規則的動機之后,GregorySanders詢問該規則是否可簡化為只禁止大小正好為64字節的剝離交易。zmncpxj回答稱,64字節以下的任何規則都可能會存在漏洞,而65字節或更大的規則則似乎很好。

二、來自比特幣StackExchange的精選問答

問題1、單簽名和2-of-3多重簽名的taproot輸入大小是多少?

Murch答:

taproot通常有兩種使用方式。默認方式是使用密鑰路徑使用輸出,則其行為類似于p2pk輸出,除了它使用了schnorr簽名以及使用bech32編碼的相應地址。

Instacoin推出允許在線出售比特幣的新網站:Instacoin推出了一個新網站,允許客戶直接在線出售其比特幣。這項名為Instacoin Direct的新服務為用戶提供了可重復儲值的預付Visa卡,用于結算加密貨幣。(newswire)[2020/12/11 14:50:39]

而另一種方法就是多重簽名。

實際上,2-of-3多重簽名的使用條件被分為3個2-of-2條件:

2-of-{A,B,C}=(A&&B)||(A&&C)||(B&&C)

假設是其中兩個密鑰是熱的,而第三個是用于恢復的備份密鑰。使用這兩個熱密鑰進行花費的默認情況是使用MuSig聚合到根路徑pubkey中。使用備份密鑰的另外花費條件存儲在樹的子葉中。目前有兩種變體:一種是備份密鑰能夠參與MuSig簽名,另一種是退回到更簡單的多重簽名方案,其中簽名是非交互的。

此后,Murch還給出了

相關的成本計算過程和結果。

問題2:比特幣交易存儲池超過300MB會發生什么?

比特幣全網未確認交易4,885筆:金色財經報道,據btc.com數據顯示,目前比特幣全網未確認交易數為4,885筆,24小時交易速率為3.93 txs/s。目前全網難度為19.30 T,預測下次難度上調0.43%%至19.38 T,距離調整還剩7 天 16 小時。[2020/10/10]

問題具體描述:目前比特幣的交易存儲池大小為108MB,根據趨勢來看,它正在慢慢接近300MB,據說這也是BTC交易存儲池的限制。那達到300MB之后會發生什么?

Murch答:

每個節點都會維護一個單獨的交易存儲池,雖然默認值是300MB,但每個節點運營者都可以設置自己的值。mempool限制不適用于序列化數據,而是與節點上反序列化交易數據的實際存儲使用情況有關,而這個存儲使用情況取決于平臺。

當達到節點的mempool限制時,它將放棄費用率最低的交易,并增加其minMempoolFeeRate。它將把新的minMempoolFeeRate傳達給對等節點,基本上是告訴對方暫時不要轉發低于該費用率的交易。請注意,每個節點都單獨執行此操作,因此具有較大mempool或不同體系結構的節點可能會在不同的時間丟棄交易。節點將保留與其自己的錢包相關的交易副本。即使所有其他節點都放棄了交易,交易的發送者和接收者也將保留副本。發送者可以強迫其節點丟棄原始交易并發送另一筆有沖突的交易以對其進行更新,或者發送者的節點將繼續嘗試廣播該交易,以便在擁堵過去后最終在網絡上再次中繼該交易。

動態 | 三平臺比特幣多空比為66.69%:33.31%:金色財經報道,Blockchainwhispers數據顯示,當前Bitfinex、Bitmex、Binance三個平臺比特幣多空比為66.69%:33.31%,做多掛單金額達到8.99億美元,做空掛單金額達到4.49億美元。其中,

Bitfinex:比特幣多空比80.14%:19.86%,做多掛單金額為3.10億美元,做空掛單金額為7677.41萬美元;

Bitmex:比特幣多空比62.50%:37.50%,做多掛單金額為5.56億美元,做空掛單金額為3.33億美元;

Binance:比特幣多空比46.20%:53.80%,做多掛單金額為3319.47萬美元,做空掛單金額為3865.12萬美元。[2020/2/5]

在擁堵過去并經歷一些延遲之后,節點會降低它的minmempoolferate,并再次開始接受它以前拒絕的那些交易。

問題3:為什么不使用RFC6979生成schnorr簽名的nonce隨機數?

問題具體描述:在閱覽

Schnorr簽名的BIP時發現,RFC6979變體并沒有被用于Schnorr簽名的nonce生成,而是采用了新的生成途徑,這是什么原因?

動態 | 比特幣持有者現在可以通過閃電網絡在亞馬遜上消費:據Coindesk消息,比特幣消費者現在可以使用閃電網絡在亞馬遜等電子商務網站上購物。加密支付處理創業公司Moon今天宣布,任何支持閃電的錢包現在也可以通過Moon的瀏覽器擴展使用。在此之前,大約有250名測試版用戶通過將瀏覽器擴展程序連接到Coinbase等交換帳戶,已經使用Moon在電子商務網站上花費加密貨幣。[2019/4/23]

對此問題,PieterWuille解釋稱:

“原因有很多,首先,RFC6979并不便宜,而且相當復雜,計算單個候選nonce,需要22次調用SHA256壓縮函數。哈希很快,但這實際上相當于哈希1400字節,與簽名時間相比,這不再是微不足道的。而它的目的是實例化一個眾所周知的PRNG以生成候選nonce隨機數,但這對我們來說開銷過高。

secp256k1有一個有趣的性質,它的grouporder可以非常接近2^256,因此完全不需要PRNG,一個單獨的哈希就足夠了,這樣復雜性就更低,并且時間也是恒定的。

一個更簡單的替代方法是Ed25519所使用的,其中單個SHA512調用生成一個512位數字。我們的構造是不同的,但靈感來自于此,一些更改的地方是:

我們不需要512位的哈希以及模降低,因為曲線order接近2^256,因此我們可以直接使用256位哈希,而不需要縮減;

我們擔心簽名者的公鑰來自不受信任的輸入實現。GregMaxwell在密碼學郵件列表上就此問題展開了討論:https://moderncrypto.org/mail-archive/curves/2020/001012.html,并收到了DJB等人的回復。我們通過在nonce生成中納入公鑰來解決這個問題。

我們正嘗試通過鼓勵合成nonce來防御錯誤攻擊和差分功率分析攻擊。RFC6979也有一個支持此功能的變體,但由于我們使用了線性派生的私鑰,因此,DPA攻擊更難防范,標準解決方案可能不適用。請參閱此處的開發者討論貼:https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-March/017711.html

三、比特幣主要基礎設施的更新

BitcoinCore0.20.0rc2是下一版BitcoinCore軟件的最新候選版本;

LND0.10.1-beta.rc2是下一個LND維護版本軟件的最新候選版本;

除了這些之外,本周BitcoinCore、C-Lightning以及LND還發生了一些顯著變化。

BitcoinCore#18956使用了Windows系統上的API,這就要求使用Windows7或更高版本的系統。自2018年10月發布BitcoinCore0.17以來,所有版本的發行說明都明確提到,使用Windows系統運行core節點,至少是Windows7或更高版本的系統。

BitcoinCore#18861阻止節點針對尚未宣布給請求對等方的交易回復P2P協議getdata請求。這可以防止監視節點繞過BitcoinCore現有的隱私增強行為,即在向每個對等節點宣布新交易之前,等待稍長的時間,從而使每筆交易都使用不同的路徑在網絡中傳播。

BitcoinCore#17681允許錢包內部為BIP32HD錢包種子獲取新地址,即使該種子不再是錢包的活躍種子。這樣,即使節點正在執行初始區塊鏈下載,也可以安全地使用sethdseedRPC切換到新的HD種子。更新的代碼,確保錢包可以看到以前從舊HD種子獲得的地址的任何付款。

BitcoinCore#18895使用unbroadcast字段更新返回有關mempool中個人交易數據的RPC,該字段指示本地節點的任何對等節點是否已請求交易副本。此外,getmempoolinfoRPC將使用unboadcastcount字段更新。為了保護隱私,只有當交易由節點的錢包或sendrawtransactionRPC提交時,才會跟蹤該交易的廣播狀態。

BitcoinCore#18677增加了一個新的--enable-multiprocess生成配置選項,它將在現有bitcoind和bitcoin-qt二進制文件存在的同時生成額外的二進制文件。目前,新的和舊的二進制文件之間的唯一區別,在于它們的名稱。但如果PR#10102被合并,新的二進制文件將把node、wallet和GUI的功能分割成單獨的可執行文件,并在必要時相互通信。默認情況下,生成選項當前處于禁用狀態。最近一篇關于多進程子項目的文章,請參見第39期周報。

BitcoinCore#18594允許bitcoin-cli-getinfo輸出多錢包模式加載的每個錢包的余額。

C-Lightning#3738利用libwally的PSBT支持,增加了對BIP174部分簽名比特幣交易的初始支持。用戶唯一能夠看到的變化是,txprepareRPC返回了交易的PSBT形式,但是PR在GitHub上被標記為努力為新通道提供雙重資助。

LND#4227從各種程序包中刪除了原始私鑰處理,為硬件錢包簽名的支持鋪平了道路。

Tags:COINOIN比特幣COIPhilcoinpixiucoin比特幣市值相當于多少家銀行Masternodecoin

火必交易所
技術指南 | 一文讀懂跨鏈網關的設計理念_應用鏈

跨鏈網關在跨鏈體系中,是一個對接具體類型區塊鏈以及轉發跨鏈消息的重要組成部分。它主要提供了應用鏈適配、跨鏈交易監聽、跨鏈交易執行、跨鏈交易路由等核心功能.

1900/1/1 0:00:00
白士泮:疫情對新加坡就業民生的影響_YTN

疫情過后,我能找回我的工作嗎?有哪些工作不會再回來的?首先,要看你的工作是在哪個行業。凡是和觀光旅游相關的服務行業如航空,酒店,旅游交通,會議展覽等的生意將會繼續面對萎縮,因為專家預測疫情可能會.

1900/1/1 0:00:00
力挺比特幣的世界第2交易員:僅次于索羅斯,連續25年無虧損_比特幣

保羅.都鐸.瓊斯:“如果一定要我預測,我的選擇是比特幣”。在給客戶的一份報告中,連續25年無虧損、創下了對沖基金記錄的PaulTudorJones寫道,“在這個渴望新的安全資產的世界里,比特幣的.

1900/1/1 0:00:00
大歷史視角:世界儲備貨幣的興衰更替與比特幣的機會_比特幣

世界頭號對沖基金橋水基金的創始人瑞·達里歐最近發布了研究宏觀歷史的文章,他試圖探索出最近500年來大國興衰的原因以及周期更替的歷史趨勢.

1900/1/1 0:00:00
Polkadot的主網終于要上線了,我的代投卻跑了_POL

作者:0x66 來源:區塊律動BlockBeats多家Tokenfund討伐TROY的消息淹沒了這個本該大肆宣揚的新消息:在長達兩年半的漫長等待后,Polkadot終于迎來了新的里程碑.

1900/1/1 0:00:00
自媒體:四川金融辦下文,要求企業退出虛擬貨幣挖礦_區塊鏈

吳說區塊鏈獨家獲悉,4月29日四川省金融工作領導小組辦公室下發《關于引導企業有序退出虛擬貨幣“挖礦”活動的通知》。目前這一通知正在各縣市落地中.

1900/1/1 0:00:00
ads