Pages:
Author

Topic: Bitcoin 高質技術討論專區 - page 5. (Read 8429 times)

sr. member
Activity: 448
Merit: 250
legendary
Activity: 1792
Merit: 1111
June 16, 2014, 02:44:22 AM
#12
请问如果要提高单个区块大小上限的话,是否需要Hardfork?

另外,如果进行了Hardfork,那些没有更新客户端的人会面临什么样的结果?

多谢!

Bitcoin的本質, 是對區塊有效性的一套共識.

Hardfork的意思, 是把本來不合法的區塊, 變為合法; Softfork的意思, 是把本來合法的區塊, 變為不合法

Softfork在Bitcoin歷史上出現了很多次, 一些是bug修正, 一些是新功能. 以比較簡單的一次CVE-2010-5139為例. 在2010年, 發現了一個嚴重的bug, 原來bitcoin容許輸出的bitcoin量為負值, 由於規則是要求輸出的總量不得高於輸入的總量, 如果有一個輸出為負值, 那其餘輸出的總值就可以大於輸入總值, 就是說可以無限制刷bitcoin了. 當時實行了一次緊急的softfork, 規定任何個別輸出值不得小於0, 問題就解決了. 這做法令原本合法的交易 (負值輸出) 變為不合法, 所以是一次softfork.

要實行softfork, 只要大部份礦工同意新規則就可以了. 如果有小量礦工拒絕新規則, 繼續容許負值輸出, 他們挖到的區塊就得不到大部份礦工承認, 變為無效區塊, 損失了挖礦的收入. 對於非礦工的普通用戶, 即使他們沒更新, 由於新規則的區塊鏈對於他們來說仍然合法, 他們也會自動跟隨這最長的新規則區塊鏈. 因此只要絕大部份礦工同意, softfork其實不會造成真正的分叉

這裏列舉了bitcoin歷史上所有softfork: https://bitcointalksearch.org/topic/m.7166458

至於Hardfork, 情況就複雜得多. 由於是把本來不合法的區塊變為合法, 不更新的用戶, 他們會拒絕接受新的區塊鏈, 而堅持留在舊的區塊鏈. 因此區塊鏈會出現真正的分叉, 兩分叉的bitcoin各不互通. 分叉前就存在的bitcoin, 可以在兩個分叉內各自使用一次; 分叉後才收到的bitcoin, 就只能在該分叉流通. 這明顯會嚴重危害bitcoin的價值. 因此要實行hardfork, 必須要有極充分的共識, 提供長時間的預告, 讓絕大部份的用戶, 包括礦工和非礦工, 都升級到新的規則.

(如果只有極小數如0.1%的用戶拒絕更新, 那問題就不大, 因為他們將沒有足夠算力維持挖礦, 平均一星期才出現一個新區塊, 要6星期才能確認一次交易, 還要等38年才可令難度下調, 那明顯是不可能維持下去的.)

至目前為止, Bitcoin還沒有一次真正的Hardfork. (2013年的BIP0050 bug某種意義上可以算一次, 將來另文再述)

講完了背景, 就正式答問題了. 現在bitcoin區塊有一個規定, 是任何區塊不得大於1MB. 這規定在最初的bitcoin是沒有的, 是Satoshi為防止Bitcoin被攻擊而後來加上 (這其實是一個softfork, 請自己想想為什麼). 但這個1MB的規定, 限制了bitcoin處理的交易總量, 因此很多人希望可以提高. 如果是簡單的由1MB提高至2MB, 那就會是一個hardfork, 因為這是把一個本來不合法的區塊 (2MB大小) 變為合法.

不更新的後果, 就要視乎客戶端的種類. 如果是bitcoin core (前稱bitcoin-qt), 由於會檢查每一區塊的合法性, 因此不更新的後果和上述一樣, 會堅持跟隨原有的分支. 如果是輕便型的錢包, 如multibit, android bitcoin wallet, 由於他們不檢查區塊合法性, 他們是不會知道區塊的大小, 所以兩個分支對他們來說都是合法的, 他們會選擇較長的分支. 如果是在線錢包如blockchain.info, 那服務商選擇哪一個分支, 用戶就用哪一分支

但其實只要動動腦筋, 在理論上是可以用softfork提升區塊大小上限, 去年我就提出了Auxiliary block ( https://bitcointalksearch.org/topic/auxiliary-block-increasing-max-block-size-with-softfork-283746 ) 來解決這個問題, 我暫時不打算翻譯為中文了. 這做法的明顯好處是softfork, 但缺點是實行起來非常複雜, 而且輕便型錢包也必須更新, 否則是看不到擴大後的交易.

(C) jl2012@bitcointalk 2014. CC BY-NC-SA 3.0  http://creativecommons.org/licenses/by-nc-sa/3.0/

如果你喜歡我的原創技術文章, 請考慮捐款, 謝謝!
sr. member
Activity: 448
Merit: 250
June 16, 2014, 12:12:09 AM
#11
请问如果要提高单个区块大小上限的话,是否需要Hardfork?

另外,如果进行了Hardfork,那些没有更新客户端的人会面临什么样的结果?

多谢!
legendary
Activity: 1792
Merit: 1111
June 16, 2014, 12:02:26 AM
#10
legendary
Activity: 1792
Merit: 1111
June 15, 2014, 09:40:45 PM
#9
想问一个问题:比特币QT钱包的地址如何删除?

Bitcoin-QT (現稱Bitcoin Core) 是不容許刪除地址, 因為這十分危險, 可能令你損失金錢

如果你不想用某個錢包了, 最簡單的方法是把所有錢都發到另一個新錢包, 再把舊的離線保存好就可以了. 即使是空錢包也必須備份, 因為可能會有某些原因, 有人把錢再發去那錢包

Quote
删除以后这个地址还可以再分配吗?

我不肯定你"分配"的意思, 不過Bitcoin地址不是分配得來的. Bitcoin地址不像銀行賬號. 銀行的賬號, 是銀行分配給你的; 而Bitcoin地址是你自己在本地隨機產生出來的, 你甚至無需連線, 也可以產生一個Bitcoin地址
legendary
Activity: 896
Merit: 1000
June 15, 2014, 07:33:40 PM
#8
想问一个问题:比特币QT钱包的地址如何删除?删除以后这个地址还可以再分配吗?
地址一旦生成就没法删除吧,就算你删除客户端与否,地址对应的私钥已经存在,删除后可以随时通过私钥来导入。反正地址资源基本是用不尽的。
full member
Activity: 167
Merit: 100
June 15, 2014, 03:08:05 PM
#7
想问一个问题:比特币QT钱包的地址如何删除?删除以后这个地址还可以再分配吗?
legendary
Activity: 1792
Merit: 1111
June 15, 2014, 12:43:13 PM
#6
本人盡量每一兩天講一個技術題目. 如果有想了解的題目可以提出. 謝絕沒意義的回貼如"長知識了", "謝謝  Grin"等
请详细解释下所谓51%攻击,和51%攻击未来对比特币发展的影响 Smiley

這問題可以寫成一個系列了. 要正確了解51%攻擊, 首先要正確了解挖礦

挖礦可能是bitcoin最神奇的一環, 讓人可以在家裏印鈔, 以前做夢也想不到. 在Bitcoin最早的幾年, 挖礦是很多人開始參與bitcoin的原因. 但10個人挖礦, 正確了解挖礦的恐怕1個也沒有

挖礦是Satoshi最重要的發明, 是Bitcoin的靈魂, 挖礦的真正目的是解決去中心化電子貨幣雙重花費 ("雙花") 的問題, 其"印鈔"功能只是次要.

把1元當2元花, 就是雙花; 如果任何人都可以隨便雙花, 任何貨幣都不會有價值. 在傳統金融是靠可信的中心機構防止雙花. 例如央行是唯一可以印鈔的機構, 你把鈔票覆印, 就是雙花, 在中國要判死刑. 另一例子是銀行支票, 例如你有100元在銀行賬戶, 其實你是可以無限發出支票, 但當發出支票的總額高於100元, 那就叫空頭支票, 也就是雙花; 銀行不會容許空頭支票兌現, 發出空頭支票也是犯法的.

Bitcoin也面臨相同問題. 由於Bitcoin傳送就只是一些數碼簽名, 錢包的持有人其實可以無限制把同一bitcoin發送給多於一個人, 情況就像是不斷簽空頭支票, 也就是雙花. 但bitcoin沒有中心機構, 防止雙花的工作就落在礦工身上了.

待續

( 在這個網頁, https://blockchain.info/double-spends , 你可以看到人們嘗試雙花的情況. 正如我上面所說, 嘗試雙花就和發空頭支票一樣容易, 任何人都可以做到. 但由於有挖礦保護, 這些雙花都不會成功, 各位不要聽信謠言 )

(C) jl2012@bitcointalk 2014. CC BY-NC-SA 3.0  http://creativecommons.org/licenses/by-nc-sa/3.0/
hero member
Activity: 630
Merit: 500
June 15, 2014, 12:04:13 PM
#5
本人盡量每一兩天講一個技術題目. 如果有想了解的題目可以提出. 謝絕沒意義的回貼如"長知識了", "謝謝  Grin"等
请详细解释下所谓51%攻击,和51%攻击未来对比特币发展的影响 Smiley
legendary
Activity: 1792
Merit: 1111
June 15, 2014, 11:57:24 AM
#4
本人盡量每一兩天講一個技術題目. 如果有想了解的題目可以提出. 謝絕沒意義的回貼如"長知識了", "謝謝  Grin"等
legendary
Activity: 1792
Merit: 1111
June 15, 2014, 11:54:16 AM
#3
今天有人問到為什麼有些地址是3開頭, 例如這個 https://blockchain.info/address/3QRhucKtEn5P9i7YPxzXCqBtPJTPbRFycn

這叫做Pay-to-script-hash, P2SH, 是2012年才出現的新功能.

傳統的1開頭地址, 在2009年就有了, 其實叫做Pay-to-pubkey-hash, P2PH

所謂地址, 其實就是一些條件, 說明收款人只要做到某些操作, 就有權把錢送出去. 1開頭的地址, 就是說收款人需要提供一個特定的數碼簽名, 就可以把錢送出去, 而這個簽名只有錢包的持有人才能做到. 這個大家都應該不陌生.

但P2PH只能指定一個簽名, 不能做到更複雜的條件. 我們可能希望有一個賬號, 要求三人之中有兩人簽署才能用錢. 這叫做multi-sig, 多重簽名. 要求N人之中有M人簽署的multi-sig就叫M-of-N multi-sig, M 小於或等於 N.

其實多重簽名在2009年一開始就存在了, 但若要指定一個multi-sig的交易, 地址會變得很長, 因此一直沒有流行起來.

但multi-sig明顥是一個很有用的功能, 因此在2012年引入了P2SH功能. 用了P2SH, 無論用錢的條件有多複雜, 都可以用一個固定長度 (約30多字母) 的地址來指定, 其中包括N為不多於15的M-of-N multi-sig. 更複雜的條件都可以, 例如要動公司的錢包, 可以由老闆的簽名, 或四名經理其中三名的簽名 (1 or 3-of-4); 要動用小孩的錢包, 要由小孩簽名, 加上父母其中一方的簽名 (1 and 1-of-2), 理論上都可以做到

但很可惜, 由於一直以來的應用都是基於最簡單的1地址, 3地址經過兩年仍沒有流行起來. 不過情況會在本年開始轉變, 已經有在線錢包應用P2SH: https://greenaddress.it/en/ . 用了P2SH multi-sig的錢包, 即使有關服務跑路了, 也不能帶著錢走; 就算服務被黑了, 只要客戶沒被黑, 黑客也拿不到一分錢. 本人相信P2SH會在兩年內帶來很多全新應用.

(C) jl2012@bitcointalk 2014. CC BY-NC-SA 3.0  http://creativecommons.org/licenses/by-nc-sa/3.0/

如果你喜歡我的原創技術文章, 請考慮捐款, 謝謝!
legendary
Activity: 896
Merit: 1000
June 15, 2014, 11:02:08 AM
#2
 Smiley非常好的解决方案,我一个支持这个独立贴子。
legendary
Activity: 1792
Merit: 1111
June 15, 2014, 10:55:01 AM
#1
由於本區討論質素日益低下, 本人決定設立一系列之高質討論專區, 並由本人直接管理. 本人亦不會再參與中文區內任何其它討論

規則:

1. 本專區由本人管理,  違反規則者可不作警告直接刪貼, 如不喜歡者請不要在此發言
2. 本專區只限討論技術問題. 投資, 政策等題目請勿在此發言
3. 本專區絕不容忍刷貼及一切軟硬廣告, 將直接刪除
4. 任何轉貼文章, 必須附上原出處之連結, 經提醒後不改正者可被刪除
5. 任何翻譯文章, 必須附上原語言文章之連結, 經提醒後不改正者可被刪除
6. 發佈不實信息, 被指出後仍重覆發佈, 視情況可被刪除
7. 有關山寨幣的技術問題, 如非與Bitcoin直接有關, 可被刪除
8. 本專區歡迎任何人發言, 但對於Activity愈低者, 規則會執行得愈嚴格

本人文章如註明CC BY-NC-SA 3.0, 表示轉載者必須引述本人名稱(jl2012@bitcointalk), 不得用於商業用途, 分享時亦必須以相同條款分享. 具體條款見: http://creativecommons.org/licenses/by-nc-sa/3.0/ . 如需用作商業用途, 或以其它條款重新發佈, 請先與本人聯絡

如果你喜歡我的原創技術文章, 請考慮捐款, 謝謝!
Pages:
Jump to: