From c8bf0b1b355f0bbd09bb3857c565556ac10dce2e Mon Sep 17 00:00:00 2001 From: Darin Stanchfield Date: Mon, 30 Nov 2015 20:01:44 -0800 Subject: [PATCH 01/12] added KeepKey description --- _translations/en.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_translations/en.yml b/_translations/en.yml index 0c628b6a..81252347 100644 --- a/_translations/en.yml +++ b/_translations/en.yml @@ -185,6 +185,7 @@ en: walletbitgo: "BitGo is a high-security multi-sig wallet, which protects your bitcoin from theft and loss. You maintain full custody; BitGo cannot spend or freeze funds. BitGo wallets are easy to use and offer advanced security features such as spending limits and multi-user access." walletgreenaddress: "GreenAddress is a user-friendly multi-signature wallet with improved security and privacy. At no time are your keys server side, even encrypted. For security reasons, you should always use 2FA and the browser extension or Android App." wallettrezor: "Trezor is a hardware wallet providing a high level of security without sacrificing convenience. Unlike cold storage, Trezor is able to sign transactions while connected to an online device. That means spending bitcoins is secure even when using a compromised computer." + walletkeepkey: "KeepKey is a hardware wallet that makes bitcoin security simple. When you entrust KeepKey with your money, every bitcoin transaction you make must be reviewed and approved via it's OLED display and confirmation button." walletcopay: "Copay is the HD-multisignature wallet originally built to secure BitPay's funds. Copay supports multiple personal and shared wallets, testnet, and the full Payment Protocol. A private BWS node can be used for enhanced security and privacy." walletnano: "Ledger Nano is a hardware wallet built upon a ST23YT66 banking smartcard platform. It keeps the user private keys safe, validates transactions, can be used as a secure prepaid card or a multisignature party. While not open-source, it can be deterministically validated." walletninki: "An advanced wallet for experienced Bitcoin users. Ninki is a multi-signature wallet with a beautiful user interface. You have full control of your bitcoins at all times." From dbce8b38a2b7b22998a16e7b8232def7d3a52e28 Mon Sep 17 00:00:00 2001 From: Darin Stanchfield Date: Mon, 30 Nov 2015 20:02:01 -0800 Subject: [PATCH 02/12] added KeepKey wallet --- _templates/choose-your-wallet.html | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/_templates/choose-your-wallet.html b/_templates/choose-your-wallet.html index bdc88c78..bf382b20 100755 --- a/_templates/choose-your-wallet.html +++ b/_templates/choose-your-wallet.html @@ -772,6 +772,23 @@ wallets: privacyaddressreuse: "checkpassprivacyaddressrotation" privacydisclosure: "checkfailprivacydisclosureaccount" privacynetwork: "checkpassprivacynetworksupporttorproxy" +- keepkey: + title: "KeepKey" + titleshort: "KeepKey" + compat: "hardware" + level: 2 + platform: + hardware: + text: "walletkeepkey" + link: "https://www.keepkey.com/" + source: "https://github.com/keepkey/" + screenshot: "keepkey.png" + check: + control: "checkgoodcontrolfull" + validation: "checkneutralvalidationvariable" + transparency: "checkfailtransparencynew" + environment: "checkgoodenvironmenthardware" + privacy: "checkneutralprivacyvariable" --- From 6e65d6fa26466700b77323649e3748d5948adde2 Mon Sep 17 00:00:00 2001 From: Darin Stanchfield Date: Mon, 30 Nov 2015 20:02:08 -0800 Subject: [PATCH 03/12] added KeepKey product photography --- img/screenshots/keepkey.png | Bin 0 -> 39381 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/screenshots/keepkey.png diff --git a/img/screenshots/keepkey.png b/img/screenshots/keepkey.png new file mode 100644 index 0000000000000000000000000000000000000000..3ae01cb547a08825301d03a85310dd22cc11fb2f GIT binary patch literal 39381 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 literal 0 HcmV?d00001 From a1fa2f70592417cb7d7599a0fad5cd41dc8768ad Mon Sep 17 00:00:00 2001 From: Darin Stanchfield Date: Mon, 30 Nov 2015 20:02:19 -0800 Subject: [PATCH 04/12] added KeepKey logo --- img/wallet/keepkey.png | Bin 0 -> 3803 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/wallet/keepkey.png diff --git a/img/wallet/keepkey.png b/img/wallet/keepkey.png new file mode 100644 index 0000000000000000000000000000000000000000..125bcfa32fb7dd14f289f6d4e2ac2205d76ab1e9 GIT binary patch literal 3803 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 literal 0 HcmV?d00001 From 09340267782a8e47a82a3f59dbd99fe3fba039a8 Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Tue, 22 Dec 2015 16:25:14 -0500 Subject: [PATCH 05/12] Add capacity increses FAQ --- en/bitcoin-core/capacity-increases-faq.md | 364 ++++++++++++++++++++++ en/bitcoin-core/capacity-increases.md | 3 +- en/bitcoin-core/index.md | 2 +- 3 files changed, 367 insertions(+), 2 deletions(-) create mode 100644 en/bitcoin-core/capacity-increases-faq.md diff --git a/en/bitcoin-core/capacity-increases-faq.md b/en/bitcoin-core/capacity-increases-faq.md new file mode 100644 index 00000000..1c6e671a --- /dev/null +++ b/en/bitcoin-core/capacity-increases-faq.md @@ -0,0 +1,364 @@ +--- +# This file is licensed under the MIT License (MIT) available on +# http://opensource.org/licenses/MIT. + +layout: base-core +lang: en +id: bitcoin-core-capacity-increases-faq +columns: 1 +title: Capacity increases FAQ — Bitcoin Core +breadcrumbs: + - bitcoin + - bcc + - Capacity increases FAQ +--- +# Capacity increases FAQ + +1. toc +{:toc} + +## What specific technologies are included in the roadmap, and when can we expect them? {#roadmap-dates} + +New technology will be deployed when it is ready and has been tested. +However, we believe the following is a reasonable schedule for the +specific improvements described in the [roadmap][]. + +| Dec 2015 | | Deploy segregated witness testnet | +| Feb 2016 | 0.12.0 | [libsecp256k1 verification][] | +| Feb 2016 | | Segregated witness feature complete & ready for general review | +| Mar 2016\* | 0.12.x | Deploy OP_CHECKSEQUENCEVERIFY (BIPs [68][BIP68] & [112][BIP112]) + [BIP113][] as first [BIP9][] versionbits soft fork | +| April 2016\* | 0.12.x | Deploy segregated witness | +| 2016 | | Weak blocks, IBLTs, or both | + +\* Dates with an asterisk are when we expect to release soft fork-ready code. The code will not be released until it has been well reviewed, and the actual fork will take time to activate ([BIP66][] activated in July 2015 after a few months; [BIP65][] activated in Dec 2015 after only 5 weeks). + +- **Segregated witness testnet:** a separate testnet (not part of the + regular testnet) that provides an opportunity for Bitcoin Core + contributors to test segregated witness and for wallet authors to + begin working with it. + +- **Libsecp256k1 verification:** 500% to 700% speed boost on x86\_64 + hardware during verification to help new full nodes join the network + and to lighten the burden on existing nodes. + +- **OP\_CHECKSEQUENCEVERIFY:** 25,000% improvement in bi-directional + [payment channel efficiency][] by allowing users to keep channels open + as long as they want. + +- **VersionBits:** increase the maximum number of soft forks able to be + deployed simultaneously from 1 to 29, allowing for faster and more + decentralized future upgrades of the network. + +- **Segregated witness:** 175% to 400% direct capacity upgrade, 66% + additional improvement in bi-directional channel efficiency by + consolidating channel open and close operations, an end to + third-party malleability that hurts smart contract deployment, fraud + proofs to allow lightweight clients to better participate in + economic enforcement, and ability to more easily upgrade Bitcoin's + Script language so that new and more powerful trustless contracts + may be devised. + +- **IBLTs and weak blocks:** 90% or more reduction in critical bandwidth + to relay blocks created by miners who want their blocks to propagate + quickly with a modest [increase in total bandwidth][], bringing many of + the benefits of the [Bitcoin Relay Network][] to all full nodes. This + improvement is accomplished by spreading bandwidth usage out over time + for full nodes, which means IBLT and weak blocks may allow for safer + future increases to the max block size. + +## Is the segregated witness soft fork equivalent to a 4MB block size increase, a 2MB increase, a 1.75MB increase, or what? I keep hearing different numbers. {#segwit-size} + +The [current proposal][] for soft fork segregated witness (segwit) counts +each byte in a witness as 0.25 bytes towards the maximum block size +limit, meaning the maximum size of a block is just under 4MB. + +However, blocks are not expected to consist entirely of witness data and +each non-witness byte is counted as 1.00 bytes towards the maximum block +size limit, so blocks near 4MB in size would be unlikely. + +According to some [calculations][] performed by Anthony Towns, a block +filled with standard single-signature P2PKH transactions would be about +1.6MB and a block filled with 2-of-2 multisignature transactions would +be about 2.0MB. + +[current proposal]: https://youtu.be/fst1IK_mrng?t=2234 +[calculations]: http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-December/011869.html + +## Segregated witness sounds complicated; will the ecosystem be prepared for its deployment? {#ecosystem-ready} + +Some ideas are easy to explain but hard to execute. Other ideas are easy +to execute but hard to explain. Segregated witness (segwit) seems to be +the latter. + +Segwit can be deployed incrementally without breaking compatibility, so +no significant preparation of the ecosystem is necessary. Developers +who want immediate hands-on experience with segwit can begin to test +their software on the segwit testnet being deployed in Dec 2015. + +Initially, only miners who wish to support it need to upgrade in +order to activate it and enforce it on the mainnet. Existing +applications only need to change if they wish to take advantage of the +new features. + +Segregated witness transactions will require lower fees, will afford +much greater performance optimizations, and can support multistage smart +contracts and protocols such as bi-directional payment channels that can +scale without writing extra data to the blockchain. Wallets are strongly +encouraged to upgrade but can continue to operate without modification +as the deployment does not break backwards compatibility. + +## Segregated witness still sounds complicated. Why not simply raise the maximum block size? {#size-bump} + +There's a [single line of code][max_block_size] in Bitcoin Core that says the maximum block size is 1,000,000 bytes (1MB). The simplest change would be a hard fork to update that line to say, for example, 2,000,000 bytes (2MB). + +Hard forks are anything but simple: + +- **We don't have experience:** Miners, merchants, developers, and users + have never deployed a hard fork, so techniques for safely deploying + them have not been tested. + + This is unlike soft forks, whose deployments were initially managed + by Nakamoto, where we gained experience from the complications in + the [BIP16][] deployment, where we refined our technique in the [BIP34][] + deployment, and where we've gained enough experience with BIPs [66][BIP66] + and [65][BIP65] to begin managing multiple soft forks with [BIP9][] version bits + in the future. + +- **Upgrades required:** Hard forks require all full nodes to upgrade or + everyone who uses that node may lose money. This includes the node + operator, if they use it to protect their wallet, as well as + lightweight clients who get their data from the node. + +- **Other changes required:** Even a single-line change such as + increasing the maximum block size has effects on other parts of the + code, some of which are undesirable. For example, right now it's + possible to construct a transaction that takes up almost 1MB of + space and which takes 30 seconds or more to validate on a modern + computer (blocks containing such transactions have been mined). In + 2MB blocks, a 2MB transaction can be constructed that may take over + 10 minutes to validate which opens up dangerous denial-of-service + attack vectors. Other lines of code would need to be changed to + prevent these problems. + +Despite these considerable complications, with sufficient precautions, +none of them is fatal to a hard fork, and we do expect to make hard +forks in the future. But with segregated witness (segwit) we have a +soft fork, similar to to other soft forks we've performed and gained +experience in deploying, that provides us with many benefits in addition +to allowing more transactions to be added to the blockchain. + +Segwit does require more changes in higher level software stacks than a +simple block size increase, but if we truly want to see bitcoin scale, +far more invasive changes will be needed anyway, and segwit will +gently encourage people to upgrade to more scalable models right away +without forcing them to do so. + +Developers, miners, and the community have accrued significant +experience deploying soft forks, and we believe segwit can be deployed +at least as fast, and probably more securely, than a hard fork that +increases the maximum block size. + +## Will there be a hard fork before or as part of the segregated witness implementation? {#pre-segwit-fork} + +No. That is not part of the [roadmap][]. + +[roadmap]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-December/011865.html + +## If there's eventually going to be a hard fork, why not do it now? {#why-not-now} + +We currently have the ability to increase the capacity of the +system through soft forks that have widespread consensus without any +of the complications of a hard fork, as described in an [earlier +question][q simple raise], so the expectation that there will be an +eventual hard fork is not sufficient reason to attempt one now. + +In addition to giving us extra transaction capacity, the improvements +proposed in the roadmap (combined with other technology such as +bi-directional payment channels) give users the ability to reduce the +amount of blockchain space they use on average---effectively increasing +the capacity of the Bitcoin system without increasing the amount of full +node bandwidth used. + +For example, + +- [BIP68][] and [BIP112][] allow bi-directional payment channels to stay open + indefinitely, which we expect to vastly reduce the number of payment + channel transactions that need to be committed to the blockchain. + +- Segregated witness allows a payment channel close transaction to be + combined with a payment channel open transaction, reducing the + blockchain space used to change channels by about 66%. + +- Segregated witness allows soft forks to change the Bitcoin Script + language in ways that could reduce the average size of a transaction, + such as using public-key-recovery-from-signatures or Schnorr combined + signatures. + +- Segregated witness permits the creation of compact fraud proofs that + may bring the security of Simplified Payment Verification (SPV) + lightweight clients up near to that of full nodes, which may allow the + network to function well with fewer full nodes than it can under + currently-deployed technology. + +The actual effect of these technologies is unknown, but scaling now with +a soft fork that has wide consensus allows us to obtain the immediate +gains, test and measure the mid-term possibilities, and use that data to +formulate long-term plans. + +## How will segregated witness transactions work for wallets? {#segwit-in-wallets} + +Wallets that currently support P2SH can migrate to full segregated +witness in two phases: + +- Phase 1: Scripts are hashed twice, first to 256 bytes and then to 160 + bytes. The 160 byte hash will be compatible with existing P2SH + addresses, so upgraded wallets will be able to send and receive + bitcoins to and from currently existing wallets. + +- Phase 2: Scripts are hashed once to 256 bytes. This format will not be + compatible with existing wallets but will allow more efficient use of + block space and will offer better security due to greater collision + resistance. + +## If no one is forced to upgrade, why will anyone bother to upgrade? I heard P2SH took almost two years to become widely deployed. {#why-upgrade} + +Each byte of the witness part of a segregated witness (segwit) +transaction will only count as 0.25 bytes towards the size of the +transaction. Since transaction fees are based on the size of a +transaction, this is effectively a 75% discount on fees for that part of +a transaction---but only for people who use segwit. + +David Harding provided a table of [estimated savings][] at various +fee/transaction levels. That is, if the fee for a typical 250-byte +transaction is $0.01 USD, using segwit will save about $0.003 when +spending a P2PK-in-P2SH transaction output. + +| Transaction | Bytes saved | $0.01/250B | $0.05/250B | $0.25/250B | $1.00/250B | +|-------------|-------------|------------|------------|------------|------------| +| P2PK-in-P2SH | 79/107 | $0.003 | $0.015 | $0.079 | $0.316 | +| 1-of-1 P2SH multisig | 83/112 | $0.003 | $0.016 | $0.083 | $0.332 | +| 2-of-2 P2SH multisig | 163/219 | $0.006 | $0.032 | $0.163 | $0.652 | +| 2-of-3 P2SH multisig | 189/254 | $0.007 | $0.037 | $0.189 | $0.756 | + +(We don't expect fees to get as high as the highest seen in this +table; they are just provided for reference.) + +Web wallets and exchanges that send large numbers of transactions each +day at fixed rates (such as for free or for 1% per spend) are expected +to be early adopters---even the small savings per spend seen in the +table above adds up to significant amounts of money if repeated hundreds +or thousands of times a day. + +## I heard you were breaking zero-confirmation transactions. Which technology in the scaling roadmap is doing that? {#rbf} + +None of them. By default, current versions of Bitcoin Core won't +replace an unconfirmed transaction with another transaction that spends +any of the same inputs. Some people think this means the first +transaction they see that spends a particular input is safe, but this is +untrue. (If it were true, we wouldn't need the blockchain.) + +This current default policy does mean that people who want to be able to +update their unconfirmed transactions can't do that. The original +version of Bitcoin provided people with a way to indicate that they +wanted to be able to update their transactions, but Nakamoto had to +disable it in 2010 to prevent denial-of-service attacks. + +Recent Bitcoin Core developers realized that they could prevent the +DOS attack by requiring updated transactions pay extra fees, and they've +re-enabled Nakamoto's mechanism for indicating when a transactions can +be replaced. This feature is planned for Bitcoin Core 0.12.0 (expected +Jan/Feb 2016) but, like Nakamoto's original feature, is opt-in so +people who want to be able to replace their transactions have to use a +wallet that supports that feature. + +Currently there are no wallets that provide this feature, but wallets +that do provide it in the future may be able to combine multiple +transactions together to reduce the amount of blockchain space they use +as well as increase the fees they pay on transactions that are taking a +long time to confirm, helping to prevent transactions from getting +“stuck” (a known usability problem). + +## Weak blocks and IBLTs just say “2016” in the roadmap schedule. Does this mean you have no idea when they'll be available? {#weak-blocks-iblts} + +Weak blocks and IBLTs are two separate technologies that are still being +actively studied to choose the right parameters, but the number of +developers working on them is limited and so it's difficult to guess +when they'll be deployed. + +Weak blocks and IBLTs can both be deployed as network-only enhancements +(no soft or hard fork required) which means that there will probably +only be a short time from when testing is completed to when their +benefits are available to all upgraded nodes. We hope this will happen +within 2016. + +After deployment, both weak blocks and IBLTs may benefit from a simple +non-controversial soft fork ([canonical transaction ordering][]), which +should be easy to deploy using the BIP9 versionBits system described +elsewhere in this FAQ. + +[canonical transaction ordering]: https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2#canonical-ordering-of-transactions + +## “Why would miners adopt the SegWit format, given that it does not provide any savings of bandwidth, storage, or processing time to them?” {#why-mine-segwit} + +Most [previous soft forks][] have not provided these benefits to miners +either. For example, + +| BIP16 (P2SH) | New transaction type | +| BIP30 (duplicate txids) | Required checking for duplicate txids | +| BIP34 (height in coinbase) | Reduced miner coinbase space by 4 bytes | +| BIP65 (OP_CLTV) | New opcode | + +The BIP66 (strict DER) soft fork which activated in July 2015 will +soon be providing reduced processing time by making it possible to +switch to libsecp256k1 for validation as described elsewhere is this +FAQ. The reduced validation time make makes it fairly unique among soft +forks in providing direct benefits to miners. + +What segregated witness (segwit) does is provide several major benefits +to anyone who uses it to create transactions: + +A permanent fix for third-party malleability, allowing multi-stage +smart contracts to flourish. A modest reduction in fees. Easy future +upgrades to Bitcoin Script, so wallets can more easily gain access to +new features. + +Through the previous soft forks, and through conversations such as the +[Miners' Panel][] at Scaling Bitcoin Hong Kong, miners have +repeatedly shown that they want Bitcoin to be the most useful system +possible even if they don't receive any direct benefits. Segwit and +the other improvements in the roadmap provide significant usability +enhancements. + +In addition, segwit allows miners to put more transactions in their +blocks, which may allow them to increase their per-block revenue. + +## How can I help? + +Start by reading the [Bitcoin Core contributor][] pages on Bitcoin.org. +In particular, [code review][] is a critical part of getting soft forks +deployed. + +To get specific suggestions on how you can help, please join the +[#bitcoin-dev][] IRC channel. + +[#bitcoin-dev]: https://webchat.freenode.net/?channels=bitcoin-dev&uio=d4 +[BIP9]: https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki +[BIP16]: https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki +[BIP34]: https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki +[BIP50]: https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki +[BIP65]: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki +[BIP66]: https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki +[BIP68]: https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki +[BIP112]: https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki +[BIP113]: https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki +[bitcoin core contributor]: /en/bitcoin-core/ +[Bitcoin relay network]: http://bitcoinrelaynetwork.org/ +[code review]: https://bitcoin.org/en/development#code-review +[estimated savings]: https://www.reddit.com/r/bitcoinxt/comments/3w1i6b/i_attended_scaling_bitcoin_hong_kong_these_are_my/cxtkaih +[increase in total bandwidth]: https://scalingbitcoin.org/hongkong2015/presentations/DAY1/3_block_propagation_1_rosenbaum.pdf +[libsecp256k1 verification]: https://github.com/bitcoin/bitcoin/pull/6954 +[max_block_size]: https://github.com/bitcoin/bitcoin/blob/3038eb63e8a674b4818cb5d5e461f1ccf4b2932f/src/consensus/consensus.h#L10 +[miners' panel]: https://youtu.be/H-ErmmDQRFs?t=1086 +[payment channel efficiency]: https://scalingbitcoin.org/hongkong2015/presentations/DAY2/1_layer2_2_dryja.pdf +[previous soft forks]: https://github.com/bitcoin/bips/blob/master/bip-0123.mediawiki#classification-of-existing-bips +[q simple raise]: #size-bump diff --git a/en/bitcoin-core/capacity-increases.md b/en/bitcoin-core/capacity-increases.md index 87bf7c64..6e4fa2f6 100644 --- a/en/bitcoin-core/capacity-increases.md +++ b/en/bitcoin-core/capacity-increases.md @@ -19,7 +19,8 @@ Bitcoin system.][1] We have been working on scalability for several years within the Bitcoin Core project and consider this the best possible continuation of our efforts. -A FAQ is being prepared and will be linked from here when available. +For more information, please see the +[FAQ](/en/bitcoin-core/capacity-increases-faq). {% include bitcoin-core/capability-increases-sigs.md %} diff --git a/en/bitcoin-core/index.md b/en/bitcoin-core/index.md index e1949d76..c72f859f 100644 --- a/en/bitcoin-core/index.md +++ b/en/bitcoin-core/index.md @@ -91,7 +91,7 @@ breadcrumbs: {% endcapture %} {% assign array_releases = text_releases | strip_newlines | split: '::' %} - - 2015-12-21 - [Roadmap: Capacity increases for the Bitcoin system](/en/bitcoin-core/capacity-increases) + - 2015-12-21 - Capacity increases for the Bitcoin system: [Statement](/en/bitcoin-core/capacity-increases) & [FAQ](/en/bitcoin-core/capacity-increases-faq) {% comment %}{% endcomment %} {% for release in array_releases %} {% if forloop.index <= 3 %} From f16634a6b010e3b524356747e7e0ab5cf682d6b1 Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Tue, 22 Dec 2015 21:22:23 -0500 Subject: [PATCH 06/12] Capacity increases: update Chinese translations Translation by jl2012 --- zh_CN/bitcoin-core/capacity-increases.md | 3 ++- zh_TW/bitcoin-core/capacity-increases.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/zh_CN/bitcoin-core/capacity-increases.md b/zh_CN/bitcoin-core/capacity-increases.md index 8d78d9eb..d99f4a46 100644 --- a/zh_CN/bitcoin-core/capacity-increases.md +++ b/zh_CN/bitcoin-core/capacity-increases.md @@ -17,7 +17,7 @@ breadcrumbs: 我们连署支持 [比特币系统扩展][1] 路线图。我们已在Bitcoin Core计划内为可扩展性工作多年,认为这是最可以延续我们一直以来努力的方向。 -我们正准备一份常见问答集,完成後会在此连结。 +有关更多详情请参阅 [常见问题解答][FAQ],中文版本正在准备中。 {% include bitcoin-core/capability-increases-sigs.md %} @@ -27,3 +27,4 @@ breadcrumbs: [1]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-December/011865.html +[FAQ]: /en/bitcoin-core/capacity-increases-faq diff --git a/zh_TW/bitcoin-core/capacity-increases.md b/zh_TW/bitcoin-core/capacity-increases.md index 35dd25b8..52b91500 100644 --- a/zh_TW/bitcoin-core/capacity-increases.md +++ b/zh_TW/bitcoin-core/capacity-increases.md @@ -17,7 +17,7 @@ breadcrumbs: 我們連署支持[比特幣系統擴展][1]路線圖。我們已在Bitcoin Core計劃內為可擴展性工作多年,認為這是最可以延續我們一直以來努力的方向。 -我們正準備一份常見問答集,完成後會在此連結。 +有關更多詳情請參閱 [常見問題解答][FAQ],中文版本正在準備中。 {% include bitcoin-core/capability-increases-sigs.md %} @@ -26,3 +26,4 @@ Core計劃內為可擴展性工作多年,認為這是最可以延續我們一 如果你想參與連署,請到[#1165](https://github.com/bitcoin-dot-org/bitcoin.org/pull/1165)。 [1]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-December/011865.html +[FAQ]: /en/bitcoin-core/capacity-increases-faq From 4f906e43fe23532e904eb56db8c9fe852cb102cd Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Tue, 22 Dec 2015 21:44:32 -0500 Subject: [PATCH 07/12] Capacity increases FAQ: fix typos reported by Dooglus (thanks!) --- en/bitcoin-core/capacity-increases-faq.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/en/bitcoin-core/capacity-increases-faq.md b/en/bitcoin-core/capacity-increases-faq.md index 1c6e671a..25083423 100644 --- a/en/bitcoin-core/capacity-increases-faq.md +++ b/en/bitcoin-core/capacity-increases-faq.md @@ -143,7 +143,7 @@ Hard forks are anything but simple: Despite these considerable complications, with sufficient precautions, none of them is fatal to a hard fork, and we do expect to make hard forks in the future. But with segregated witness (segwit) we have a -soft fork, similar to to other soft forks we've performed and gained +soft fork, similar to other soft forks we've performed and gained experience in deploying, that provides us with many benefits in addition to allowing more transactions to be added to the blockchain. @@ -210,12 +210,12 @@ formulate long-term plans. Wallets that currently support P2SH can migrate to full segregated witness in two phases: -- Phase 1: Scripts are hashed twice, first to 256 bytes and then to 160 - bytes. The 160 byte hash will be compatible with existing P2SH +- Phase 1: Scripts are hashed twice, first to 256 bits and then to 160 + bits. The 160 bit hash will be compatible with existing P2SH addresses, so upgraded wallets will be able to send and receive bitcoins to and from currently existing wallets. -- Phase 2: Scripts are hashed once to 256 bytes. This format will not be +- Phase 2: Scripts are hashed once to 256 bits. This format will not be compatible with existing wallets but will allow more efficient use of block space and will offer better security due to greater collision resistance. @@ -246,7 +246,7 @@ table; they are just provided for reference.) Web wallets and exchanges that send large numbers of transactions each day at fixed rates (such as for free or for 1% per spend) are expected to be early adopters---even the small savings per spend seen in the -table above adds up to significant amounts of money if repeated hundreds +table above will add up to significant amounts of money if repeated hundreds or thousands of times a day. ## I heard you were breaking zero-confirmation transactions. Which technology in the scaling roadmap is doing that? {#rbf} @@ -311,7 +311,7 @@ either. For example, The BIP66 (strict DER) soft fork which activated in July 2015 will soon be providing reduced processing time by making it possible to switch to libsecp256k1 for validation as described elsewhere is this -FAQ. The reduced validation time make makes it fairly unique among soft +FAQ. The reduced validation time makes it uncommon among soft forks in providing direct benefits to miners. What segregated witness (segwit) does is provide several major benefits From cc79a1ee7de9a2a6366898b7ace3a33d9853d24e Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Wed, 23 Dec 2015 18:44:46 -0500 Subject: [PATCH 08/12] Capacity increases FAQ: add links --- en/bitcoin-core/capacity-increases-faq.md | 29 +++++++++++++---------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/en/bitcoin-core/capacity-increases-faq.md b/en/bitcoin-core/capacity-increases-faq.md index 25083423..0e6330e5 100644 --- a/en/bitcoin-core/capacity-increases-faq.md +++ b/en/bitcoin-core/capacity-increases-faq.md @@ -37,19 +37,19 @@ specific improvements described in the [roadmap][]. contributors to test segregated witness and for wallet authors to begin working with it. -- **Libsecp256k1 verification:** 500% to 700% speed boost on x86\_64 +- **[Libsecp256k1][] verification:** 500% to 700% speed boost on x86\_64 hardware during verification to help new full nodes join the network and to lighten the burden on existing nodes. -- **OP\_CHECKSEQUENCEVERIFY:** 25,000% improvement in bi-directional +- **[OP\_CHECKSEQUENCEVERIFY][BIP112]:** 25,000% improvement in bi-directional [payment channel efficiency][] by allowing users to keep channels open as long as they want. -- **VersionBits:** increase the maximum number of soft forks able to be +- **[VersionBits][BIP9]:** increase the maximum number of soft forks able to be deployed simultaneously from 1 to 29, allowing for faster and more decentralized future upgrades of the network. -- **Segregated witness:** 175% to 400% direct capacity upgrade, 66% +- **[Segregated witness][bip-segwit]:** 175% to 400% direct capacity upgrade, 66% additional improvement in bi-directional channel efficiency by consolidating channel open and close operations, an end to third-party malleability that hurts smart contract deployment, fraud @@ -280,8 +280,8 @@ long time to confirm, helping to prevent transactions from getting ## Weak blocks and IBLTs just say “2016” in the roadmap schedule. Does this mean you have no idea when they'll be available? {#weak-blocks-iblts} -Weak blocks and IBLTs are two separate technologies that are still being -actively studied to choose the right parameters, but the number of +[Weak blocks and IBLTs][] are two separate technologies that are still being +[actively studied][] to choose the right parameters, but the number of developers working on them is limited and so it's difficult to guess when they'll be deployed. @@ -293,7 +293,7 @@ within 2016. After deployment, both weak blocks and IBLTs may benefit from a simple non-controversial soft fork ([canonical transaction ordering][]), which -should be easy to deploy using the BIP9 versionBits system described +should be easy to deploy using the [BIP9][] versionBits system described elsewhere in this FAQ. [canonical transaction ordering]: https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2#canonical-ordering-of-transactions @@ -303,12 +303,12 @@ elsewhere in this FAQ. Most [previous soft forks][] have not provided these benefits to miners either. For example, -| BIP16 (P2SH) | New transaction type | -| BIP30 (duplicate txids) | Required checking for duplicate txids | -| BIP34 (height in coinbase) | Reduced miner coinbase space by 4 bytes | -| BIP65 (OP_CLTV) | New opcode | +| [BIP16][] (P2SH) | New transaction type | +| [BIP30][] (duplicate txids) | Required checking for duplicate txids | +| [BIP34][] (height in coinbase) | Reduced miner coinbase space by 4 bytes | +| [BIP65][] (OP_CLTV) | New opcode | -The BIP66 (strict DER) soft fork which activated in July 2015 will +The [BIP66][] (strict DER) soft fork which activated in July 2015 will soon be providing reduced processing time by making it possible to switch to libsecp256k1 for validation as described elsewhere is this FAQ. The reduced validation time makes it uncommon among soft @@ -342,8 +342,11 @@ To get specific suggestions on how you can help, please join the [#bitcoin-dev][] IRC channel. [#bitcoin-dev]: https://webchat.freenode.net/?channels=bitcoin-dev&uio=d4 +[actively studied]: http://diyhpl.us/wiki/transcripts/scalingbitcoin/bitcoin-block-propagation-iblt-rusty-russell/ +[bip-segwit]: https://github.com/jl2012/bips/blob/segwit/bip-segwit.mediawiki [BIP9]: https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki [BIP16]: https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki +[BIP30]: https://github.com/bitcoin/bips/blob/master/bip-0030.mediawiki [BIP34]: https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki [BIP50]: https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki [BIP65]: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki @@ -356,9 +359,11 @@ To get specific suggestions on how you can help, please join the [code review]: https://bitcoin.org/en/development#code-review [estimated savings]: https://www.reddit.com/r/bitcoinxt/comments/3w1i6b/i_attended_scaling_bitcoin_hong_kong_these_are_my/cxtkaih [increase in total bandwidth]: https://scalingbitcoin.org/hongkong2015/presentations/DAY1/3_block_propagation_1_rosenbaum.pdf +[libsecp256k1]: https://github.com/bitcoin/secp256k1 [libsecp256k1 verification]: https://github.com/bitcoin/bitcoin/pull/6954 [max_block_size]: https://github.com/bitcoin/bitcoin/blob/3038eb63e8a674b4818cb5d5e461f1ccf4b2932f/src/consensus/consensus.h#L10 [miners' panel]: https://youtu.be/H-ErmmDQRFs?t=1086 [payment channel efficiency]: https://scalingbitcoin.org/hongkong2015/presentations/DAY2/1_layer2_2_dryja.pdf [previous soft forks]: https://github.com/bitcoin/bips/blob/master/bip-0123.mediawiki#classification-of-existing-bips +[weak blocks and iblts]: https://www.youtube.com/watch?v=ivgxcEOyWNs&t=1h40m20s [q simple raise]: #size-bump From faa60263984ee62a87df0792e9ebd7f937c64d96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B8bra?= Date: Sun, 27 Dec 2015 01:58:54 +0000 Subject: [PATCH 09/12] Remove Coinbase Remove Coinbase from the choose your wallet page. --- _templates/choose-your-wallet.html | 21 --------------------- img/screenshots/coinbase.png | Bin 21915 -> 0 bytes img/wallet/coinbase.png | Bin 4406 -> 0 bytes 3 files changed, 21 deletions(-) delete mode 100644 img/screenshots/coinbase.png delete mode 100644 img/wallet/coinbase.png diff --git a/_templates/choose-your-wallet.html b/_templates/choose-your-wallet.html index bdc88c78..3cdeb10b 100755 --- a/_templates/choose-your-wallet.html +++ b/_templates/choose-your-wallet.html @@ -666,27 +666,6 @@ wallets: privacyaddressreuse: "checkpassprivacyaddressrotation" privacydisclosure: "checkfailprivacydisclosurecentralized" privacynetwork: "checkfailprivacynetworknosupporttor" -- coinbase: - title: "Coinbase" - titleshort: "Coinbase" - compat: "web" - level: 4 - platform: - web: - text: "walletcoinbase" - link: "https://coinbase.com" - screenshot: "coinbase.png" - os: - check: - control: "checkfailcontrolthirdparty" - validation: "checkfailvalidationcentralized" - transparency: "checkfailtransparencyremote" - environment: "checkfailenvironmentdesktop" - privacy: "checkpassprivacybasic" - privacycheck: - privacyaddressreuse: "checkpassprivacyaddressrotation" - privacydisclosure: "checkfailprivacydisclosureaccount" - privacynetwork: "checkpassprivacynetworksupporttorproxy" - coinkite: title: "Coinkite" titleshort: "Coinkite" diff --git a/img/screenshots/coinbase.png b/img/screenshots/coinbase.png deleted file mode 100644 index 40599dcce026729d17683ca1ab390251d9054108..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21915 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 J^=fwS{soqHLNWjV diff --git a/img/wallet/coinbase.png b/img/wallet/coinbase.png deleted file mode 100644 index 848d7575e7a7da249a098e72d76da59a2c7c4586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4406 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 Date: Sun, 27 Dec 2015 17:13:42 +0000 Subject: [PATCH 10/12] Update about page Update domain owners list --- _templates/about-us.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_templates/about-us.html b/_templates/about-us.html index dbc25f75..fbb3db64 100644 --- a/_templates/about-us.html +++ b/_templates/about-us.html @@ -81,11 +81,11 @@ id: about-us

Greg SandersDocumentation Writing

-

{% translate owners %} — {% translate partial_list %}

+

{% translate owners %}

-

Martti Malmi(AKA Sirius)
Inactive

-

Michael Marquardt(AKA Theymos)

+

CøbraCo-Owner

+

theymosCo-Owner

{% translate github %}

From a37c4873e11694fa3ba0e6edecd9461f1e192ab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B8bra?= Date: Mon, 28 Dec 2015 06:02:57 +0000 Subject: [PATCH 11/12] Sign statement Sign statement --- _includes/bitcoin-core/capability-increases-sigs.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_includes/bitcoin-core/capability-increases-sigs.md b/_includes/bitcoin-core/capability-increases-sigs.md index 3d11a5b4..14fae7c7 100644 --- a/_includes/bitcoin-core/capability-increases-sigs.md +++ b/_includes/bitcoin-core/capability-increases-sigs.md @@ -12,6 +12,7 @@ http://opensource.org/licenses/MIT. - [BtcDrak](https://github.com/btcdrak) - [Charlie Lee](https://github.com/coblee) - [Christian Decker](https://github.com/cdecker) +- [Cøbra](https://github.com/cobra-bitcoin) - [Cory Fields](https://github.com/theuni) - [Craig Watkins](https://github.com/crwatkins) - [Daniel](https://github.com/arowser) From 51a5e1c8293e7bb4ffda354dca002fbadb39084c Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Mon, 28 Dec 2015 14:57:43 -0500 Subject: [PATCH 12/12] README: Apple reviewers no longer needed (Craig's got it covered) --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index b814a152..9451bc1c 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,7 @@ Good To Me (LGTM)" comment. * [Submit new wallets][] for the [Choose Your Wallet page][], or - help us [review wallet submissions][]. **Reviewers with Apple iOS - hardware especially needed**---email to - be notified about iOS wallets needing review. + help us [review wallet submissions][]. * [Translate Bitcoin.org into another language][] using [Transifex][] or help review new and updated translations. **Translation coordinator