測試網

出自非小号百科
於 2024年12月20日 (五) 07:10 由 Doge對話 | 貢獻 所做的修訂 (创建页面,内容为“在区块链技术中,测试网(testnet)是一个由与底层软件相同或更新版本的区块链实例构成的网络,用于测试和实验,且不会对真实资金或主链造成风险<ref>[https://books.google.com.tw/books?id=erMQBQAAQBAJ&dq=testnet+blockchain&pg=PA74&redir_esc=y#v=onepage&q=testnet%20blockchain&f=false Understanding Bitcoin: Cryptography, Engineering and Economics] - Pedro Franco - Google Books</ref>。测试网代币与官方…”)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

在區塊鏈技術中,測試網(testnet)是一個由與底層軟件相同或更新版本的區塊鏈實例構成的網絡,用於測試和實驗,且不會對真實資金或主鏈造成風險[1]。測試網代幣與官方(主網)代幣是獨立且不同的,沒有實際價值,可以通過水龍頭(faucet)免費獲得[2]

測試網允許在沒有資金損失風險的情況下開發區塊鏈應用[3]。在比特幣核心軟件中發現了一個漏洞,使得礦工能夠通過向區塊鏈發送「壞區塊」來摧毀比特幣基礎設施(節點)的重要部分[4]。這個網絡與比特幣的主網絡(也稱為 Mainnet)非常相似。這使得應用開發者或其他想要進行比特幣測試的人能夠在不使用真實比特幣或擔心破壞比特幣主鏈的情況下進行實驗。

雖然測試網與主網絡相似,但它們並不兼容,這意味着你不能在測試網上使用代幣,也不能在主網上使用測試網的幣。測試網有自己的一套幣,也稱為「測試網幣」。這些幣沒有任何實際價值,也不能進行交換。然而,這些幣可以用於進行測試交易,確保測試按預期進行。

測試網的重要性在於,開發者和其他程式設計師可以在此實驗新的代碼和解決方案。通過這樣做,他們不會「干擾」比特幣主網絡,也不需要使用有實際價值的比特幣。更重要的是,如果提出的代碼更改出錯,它不會影響比特幣主生態系統。測試網是分析新改進如何在比特幣主網絡中工作的理想場所,因為它是一個非常相似的網絡,具有相似的規則和操作方式。在將任何更改部署到主網版本之前,它會先在測試網上進行實施,觀察結果而不會帶來重大後果。這也是為了測試將集成到比特幣中的工具,驗證這些工具是否能進行交易並與集成代碼正常工作,確保代碼在與真實比特幣交易時完全功能正常。

主網與測試網的區別

  • ADDRESSVERSION參數:測試網使用與比特幣主網不同的值。在比特幣中,使用的是0x00,而在測試網中使用的是0x6F。這個參數決定了地址的格式,因此測試網的地址與比特幣主網的地址不同,這使得它們能夠在視覺上被區分。
  • 創世區塊(Genesis Block):測試網使用與比特幣主網不同的創世區塊。創世區塊是區塊鏈開始創建的地方。
  • IsStandard()驗證:比特幣代碼中的IsStandard()驗證在測試網上是禁用的,這允許在測試網上實驗新的交易和新的想法。
  • DNS種子:在測試網的初期,它使用不同的DNS種子。
  • 地址格式:測試網的地址不以「1」或「3」開頭(像比特幣主網的地址那樣),而是以「m」或「2」開頭。
  • 協議消息頭:測試網的協議消息頭是0x0B110907,而比特幣主網使用的是0xF9BEB4D9。
  • 節點端口:比特幣程序是一個對等網絡(Peer-to-peer)節點,需要與網絡中的其他節點通信。默認情況下,它使用計算機的8333端口,但在測試網模式下,它使用18333端口,以便在同一計算機上同時操作兩個模式。
  • 最低難度:測試網的最低難度為1.0,相當於比特幣主網的0.5難度。這意味着,測試網上的任何難度與比特幣主網相比,難度是主網的一半。此外,如果20分鐘內未找到區塊,難度會自動重置。
  • RPC協議端口:比特幣程序也允許與其他程序進行通信,使用RPC協議的端口。默認情況下,測試網使用18332端口,而比特幣主網使用8332端口[5]

版本演變

目前,比特幣的測試網已經發展到第三個版本,也被稱為Testnet3。在比特幣早期的第一個測試網(Testnet1)中,出現了意料之外的情況:測試網的幣開始獲得價值,並被用於與真實貨幣或比特幣的交易。於是,開發者決定創建一個新的創世區塊,Testnet2由此誕生。然而,Testnet2也存在問題:挖礦複雜度逐漸提高到需要較高成本的程度。

2012年以來,Testnet3開始運行。Testnet3的特點是可以在必要時自動重置挖礦難度,從而解決了之前版本中的問題[6]

2015年12月21日,SegNet部署上線,用於測試由Pieter Wuille提出的隔離見證(Segregated Witness)提案[7]

測試網幣

儘管測試網幣與比特幣幾乎完全相同,但如前所述,這種貨幣沒有任何價值。這是因為測試網幣非常容易獲取。它的設計初衷是為開發者提供一個可供實驗的環境,而無需承擔經濟損失。測試網幣可以通過測試網中的水龍頭免費獲取,這些水龍頭是專門為測試目的提供免費代幣的地址。此外,測試網幣也可以通過低計算成本的方式進行挖礦。

在Testnet3中添加了一些不同於比特幣主網的機制。測試網被設計成當由於複雜性導致區塊無法被挖出時,挖礦難度會自動降低到非常低的水平,使挖礦變得容易。

從主網和測試網的區塊鏈瀏覽器中獲得的圖表可以看出兩者在計算難度上的差異。在測試網中,挖礦難度的峰值大約在60兆字節範圍內,並會周期性地降低到接近0;而在主網中,挖礦難度約為5.5太字節,並且趨勢是持續上升。

創世區塊

測試網使用了與主網不同的創世區塊。測試網絡 Testnet3 在重置時創建了一個新的創世區塊,並釋放了 0.7 個比特幣作為起始區塊獎勵[8]

參考連結

  1. Understanding Bitcoin: Cryptography, Engineering and Economics - Pedro Franco - Google Books
  2. Blockchain By Example: A developer's guide to creating decentralized ... - Bellaj Badr, Richard Horrocks, Xun (Brian) Wu - Google Books
  3. Hierarchical interactions between Ethereum smart contracts across Testnets | Proceedings of the 1st Workshop on Cryptocurrencies and Blockchains for Distributed Systems
  4. Bitcoin hard fork nightmare becomes reality after testnet splits Story by David Canellis
  5. GitHub - bitcoinbook/bitcoinbook: Mastering Bitcoin 3rd Edition - Programming the Open Blockchain
  6. segregated-witness-and-its-impact-on-scalability Pieter Wuille (sipa)
  7. GitHub - bitcoin/bips: Bitcoin Improvement Proposals
  8. Testnet, Mark III · gavinandresen/bitcoin-git@feeb761 · GitHub