mirror of
https://github.com/seigler/dash-docs
synced 2025-07-28 10:16:15 +00:00
New Bitcoin Core subsite
This commit contains a large number of contributions from Saïvann Carignan.
This commit is contained in:
parent
c4517a951e
commit
706c791e92
85 changed files with 17420 additions and 88 deletions
113
en/bitcoin-core/features/index.md
Normal file
113
en/bitcoin-core/features/index.md
Normal file
|
@ -0,0 +1,113 @@
|
|||
---
|
||||
# This file is licensed under the MIT License (MIT) available on
|
||||
# http://opensource.org/licenses/MIT.
|
||||
|
||||
layout: base-core
|
||||
lang: en
|
||||
id: bitcoin-core-feature-overview
|
||||
columns: 1
|
||||
title: Features - Bitcoin Core
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- bcc
|
||||
- Features
|
||||
end_of_page: |
|
||||
<script>
|
||||
start_slideshow($('#slidebox'));
|
||||
</script>
|
||||
---
|
||||
|
||||
# Bitcoin Core
|
||||
{:.not-displayed}
|
||||
|
||||
<div id="slidebox">
|
||||
<div class="slide-viewer">
|
||||
<div class="slide-group">
|
||||
<div class="slide slide-1">
|
||||
<a href="#validation"><img src="/img/bitcoin-core/slider-validation.svg" alt="Full Validation: the best possible decentralized security" /></a>
|
||||
</div>
|
||||
<div class="slide slide-2">
|
||||
<a href="#privacy"><img src="/img/bitcoin-core/slider-privacy.svg" alt="Strong privacy" /></a>
|
||||
</div>
|
||||
<div class="slide slide-3">
|
||||
<a href="#requirements"><img src="/img/bitcoin-core/slider-warning.svg" alt="Requirements and warnings" /></a>
|
||||
</div>
|
||||
<div class="slide slide-4">
|
||||
<a href="#user-interface"><img src="/img/bitcoin-core/slider-ui.svg" alt="User interface" /></a>
|
||||
</div>
|
||||
<div class="slide slide-5">
|
||||
<a href="#network-support"><img src="/img/bitcoin-core/slider-network.svg" alt="Support the network" /></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="slide-buttons"
|
||||
><button type="image" class="slide-btn button-1" markdown="1"
|
||||
><span class="fa fa-check-square-o"></span></button>
|
||||
|
||||
<button type="button" class="slide-btn button-2" markdown="1"
|
||||
><span class="fa fa-shield"></span></button>
|
||||
|
||||
<button type="button" class="slide-btn button-3" markdown="1"
|
||||
><span class="fa fa-bar-chart"></span></button>
|
||||
|
||||
<button type="button" class="slide-btn button-4" markdown="1"
|
||||
><span class="fa fa-sign-in"></span></button>
|
||||
|
||||
<button type="button" class="slide-btn button-5" markdown="1"
|
||||
><span class="fa fa-globe"></span></button
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<br class="clear">
|
||||
{% include bitcoin-core/download-bitcoin-core.html %}
|
||||
|
||||
## <span class="fa fa-check-square-o fa-lg"></span> Full Validation {#validation}
|
||||
{:.no_gap}
|
||||
|
||||
Bitcoin Core ensures every block and transaction it accepts is valid,
|
||||
increasing not only your security but also **helping prevent miners and
|
||||
banks from taking control of Bitcoin.**
|
||||
|
||||
{:.right-hanger}
|
||||
[Learn about full validation][bcc validation]
|
||||
|
||||
## <span class="fa fa-shield fa-lg"></span> Better Privacy {#privacy}
|
||||
|
||||
Bitcoin Core provides **exclusive privacy features** that can make it
|
||||
hard for anyone to link you to your transactions.
|
||||
|
||||
{:.right-hanger}
|
||||
[Discover the privacy advantages][bcc privacy]
|
||||
|
||||
|
||||
## <span class="fa fa-bar-chart fa-lg"></span> Warning: Better Security Has Costs {#requirements}
|
||||
|
||||
Bitcoin Core uses more resources than other wallets, but it's still
|
||||
convenient to run on most computers and Internet connections.
|
||||
|
||||
{:.right-hanger}
|
||||
[System requirements & warnings][bcc requirements]
|
||||
|
||||
|
||||
## <span class="fa fa-sign-in fa-lg"></span> A Better User Interface {#user-interface}
|
||||
|
||||
Bitcoin Core wallet has **features most other wallets don't have.** But
|
||||
if you don't need them, you can use several other wallets on top of
|
||||
Bitcoin Core without losing Bitcoin Core's [security][bcc validation] and
|
||||
[privacy][bcc privacy] benefits.
|
||||
|
||||
{:.right-hanger}
|
||||
[Tour the user interface][bcc user interface]
|
||||
|
||||
|
||||
## <span class="fa fa-globe fa-lg"></span> Support The Network {#network-support}
|
||||
|
||||
Bitcoin Core helps support other peers. This isn't as useful as [helping
|
||||
to keep Bitcoin decentralized](#validation), but it's **an easy way for
|
||||
broadband users to contribute** to less well-connected users.
|
||||
|
||||
{:.right-hanger}
|
||||
[Begin donating bandwidth][bcc network support]
|
||||
|
||||
<br>
|
||||
{% include references.md %}
|
59
en/bitcoin-core/features/network-support.md
Normal file
59
en/bitcoin-core/features/network-support.md
Normal file
|
@ -0,0 +1,59 @@
|
|||
---
|
||||
# This file is licensed under the MIT License (MIT) available on
|
||||
# http://opensource.org/licenses/MIT.
|
||||
|
||||
id: bitcoin-core-donate-bandwidth
|
||||
layout: base-core
|
||||
lang: en
|
||||
columns: 1
|
||||
title: Support The Network - Bitcoin Core Features
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- bcc
|
||||
- bcc features
|
||||
- Network Support
|
||||
---
|
||||
# Donate Bandwidth Using Bitcoin Core
|
||||
{:.not-displayed}
|
||||
|
||||

|
||||
|
||||
{% include bitcoin-core/download-bitcoin-core.html %}
|
||||
|
||||
The Bitcoin peer-to-peer network serves both Bitcoin Core and many other
|
||||
Bitcoin programs (mostly lightweight wallets). By contributing some of
|
||||
your bandwidth---typically about 100 GB upload a month---you can help
|
||||
support Bitcoin.
|
||||
|
||||
The [bandwidth sharing guide][] provides all of the details you need
|
||||
to begin donating bandwidth.
|
||||
|
||||
## Don't Forget About Decentralization
|
||||
|
||||
The Bitcoin network needs more than bandwidth---it also needs people who
|
||||
[actively secure][bcc validation do you validate] their bitcoins using Bitcoin Core. By
|
||||
securing your bitcoins with a full node like Bitcoin Core, you [help
|
||||
protect Bitcoin's decentralization][bcc validation decentralization] for
|
||||
yourself and other Bitcoin users.
|
||||
|
||||
You can help protect decentralization instead of donating bandwidth by
|
||||
simply using Bitcoin Core as your main wallet. Or, even better, you can
|
||||
both donate bandwidth and protect decentralization at the same time by
|
||||
using Bitcoin Core as your main wallet while also following the
|
||||
instructions in the [bandwidth sharing guide][].
|
||||
|
||||
## Thank You
|
||||
|
||||
Whether you choose to donate bandwidth, protect decentralization, or
|
||||
both, please know that your fellow Bitcoin users thank you. Without
|
||||
volunteers like you, Bitcoin would never have come as far as it has.
|
||||
|
||||
|
||||
<br class="clear big">
|
||||
<div class="prevnext">
|
||||
<span markdown="1">**Previous Feature**<br>[User interface][bcc user interface]</span>
|
||||
<span markdown="1">**Next feature**<br>[Feature overview][bcc features]</span>
|
||||
</div>
|
||||
<br class="clear">
|
||||
|
||||
{% include references.md %}
|
465
en/bitcoin-core/features/privacy.md
Normal file
465
en/bitcoin-core/features/privacy.md
Normal file
|
@ -0,0 +1,465 @@
|
|||
---
|
||||
# This file is licensed under the MIT License (MIT) available on
|
||||
# http://opensource.org/licenses/MIT.
|
||||
|
||||
id: bitcoin-core-privacy
|
||||
layout: base-core
|
||||
lang: en
|
||||
columns: 1
|
||||
title: Privacy - Bitcoin Core Features
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- bcc
|
||||
- bcc features
|
||||
- Privacy
|
||||
|
||||
third_party_privacy:
|
||||
## Alphabetical order
|
||||
|
||||
- name: "Bitcoin Core"
|
||||
css_class: bitcoin_core
|
||||
group: default-show
|
||||
|
||||
tracks_real_names: "no"
|
||||
knows_your_bitcoin_balance: "no"
|
||||
susceptible_to_taint_analysis: "yes"
|
||||
tracks_payments: "no"
|
||||
tracks_amounts: "no"
|
||||
tracks_ip_addresses: "no"
|
||||
|
||||
- name: "BitGo"
|
||||
css_class: bitcoin_go
|
||||
group: not-displayed
|
||||
|
||||
tracks_real_names: "no"
|
||||
knows_your_bitcoin_balance: "yes"
|
||||
susceptible_to_taint_analysis: "yes"
|
||||
tracks_payments: "yes"
|
||||
tracks_amounts: "yes"
|
||||
tracks_ip_addresses: "yes"
|
||||
|
||||
- name: BitPay
|
||||
css_class: bitpay
|
||||
group: not-displayed
|
||||
|
||||
tracks_real_names: "yes"
|
||||
knows_your_bitcoin_balance: "yes"
|
||||
susceptible_to_taint_analysis: "no"
|
||||
tracks_payments: "yes"
|
||||
tracks_amounts: "yes"
|
||||
tracks_ip_addresses: "yes"
|
||||
|
||||
- name: Blockchain.info
|
||||
css_class: blockchain_info
|
||||
group: not-displayed
|
||||
|
||||
tracks_real_names: "no"
|
||||
knows_your_bitcoin_balance: "yes"
|
||||
susceptible_to_taint_analysis: "yes"
|
||||
tracks_payments: "yes"
|
||||
tracks_amounts: "yes"
|
||||
tracks_ip_addresses: "yes"
|
||||
|
||||
- name: Coinbase
|
||||
css_class: coinbase
|
||||
group: default-show
|
||||
|
||||
tracks_real_names: "yes"
|
||||
knows_your_bitcoin_balance: "yes"
|
||||
susceptible_to_taint_analysis: "no"
|
||||
tracks_payments: "yes"
|
||||
tracks_amounts: "yes"
|
||||
tracks_ip_addresses: "yes"
|
||||
|
||||
- name: GreenAddress
|
||||
css_class: greenaddress
|
||||
group: not-displayed
|
||||
|
||||
tracks_real_names: "no"
|
||||
knows_your_bitcoin_balance: "yes"
|
||||
susceptible_to_taint_analysis: "yes"
|
||||
tracks_payments: "yes"
|
||||
tracks_amounts: "yes"
|
||||
tracks_ip_addresses: "yes"
|
||||
|
||||
- name: Ninki
|
||||
css_class: ninki
|
||||
group: not-displayed
|
||||
|
||||
tracks_real_names: "no"
|
||||
knows_your_bitcoin_balance: "yes"
|
||||
susceptible_to_taint_analysis: "yes"
|
||||
tracks_payments: "yes"
|
||||
tracks_amounts: "yes"
|
||||
tracks_ip_addresses: "yes"
|
||||
---
|
||||
# Bitcoin Core's Excellent Privacy
|
||||
{:.not-displayed}
|
||||
|
||||

|
||||
|
||||
{% include bitcoin-core/download-bitcoin-core.html %}
|
||||
|
||||
> What if every time you spent or received cash, all the transaction
|
||||
> details were published to your Twitter or Facebook feed for all your
|
||||
> friends to see? You probably wouldn't want to use cash any more.
|
||||
|
||||
Every confirmed Bitcoin transaction is published to the block chain
|
||||
where anyone can see it. So **why do people still use Bitcoin?** And why
|
||||
do many of them believe that Bitcoin is a private way of sending money?
|
||||
|
||||
One reason is that Bitcoin Core and some other Bitcoin software tries to
|
||||
avoid associating your real-world identity with the transactions you
|
||||
make. The difference looks like this:
|
||||
|
||||

|
||||
|
||||
The second type of transaction (a pseudonymous transaction) only provides
|
||||
practical privacy if nobody can figure out that "5a35b" is really Alice.
|
||||
It's up to your wallet to prevent anyone from making that connection.
|
||||
See below for how Bitcoin Core's privacy compares to other wallets.
|
||||
|
||||
|
||||
## No Sign-Up Required
|
||||
|
||||
Third-party Bitcoin services can both increase and decrease your
|
||||
privacy. They can increase it by mixing your transactions with those of
|
||||
other users; they can decrease it by tracking your activity and directly
|
||||
associating it with your real name or other identifying information.
|
||||
|
||||
<p class="center">
|
||||
Click an entry below to show it:<br>
|
||||
|
||||
{% for service in page.third_party_privacy %}
|
||||
{% if service.name != 'Bitcoin Core' %}
|
||||
<button
|
||||
{% if service.group == "default-show" %}
|
||||
class="js showcolumn active"
|
||||
{% else %}
|
||||
class="js showcolumn"
|
||||
{% endif %}
|
||||
id="{{service.css_class}}"
|
||||
>{{service.name}}</button>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
|
||||
<table class="privacy-comparison">
|
||||
{% comment %}
|
||||
<!-- Don't overdo it! Limit table to a total of seven content rows, with a
|
||||
maximum of five content rows in each category. -->
|
||||
{% endcomment %}
|
||||
<tr>
|
||||
<th markdown="span" colspan="99">Who knows your information? **Just you**{:.fggreen} or also a **service provider?**{:.fgred}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th></th>
|
||||
{% for service in page.third_party_privacy %}
|
||||
{% if service.name %}
|
||||
<th class="{{service.css_class}} {{service.group}}">{{service.name}}</th>
|
||||
{% else %}
|
||||
{% die "Some service doesn't have a name" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Your real name</td>
|
||||
{% for service in page.third_party_privacy %}
|
||||
{% case service.tracks_real_names %}
|
||||
{% when "yes" %}
|
||||
<td class="bgred {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "no" %}
|
||||
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "maybe" %}
|
||||
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
|
||||
{% else %}
|
||||
{% die "missing service information" %}
|
||||
{% endcase %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Your bitcoin balance</td>
|
||||
{% for service in page.third_party_privacy %}
|
||||
{% case service.knows_your_bitcoin_balance %}
|
||||
{% when "yes" %}
|
||||
<td class="bgred {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "no" %}
|
||||
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "maybe" %}
|
||||
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
|
||||
{% else %}
|
||||
{% die "missing service information" %}
|
||||
{% endcase %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Who you pay, and/or who pays you (in some cases)</td>
|
||||
{% for service in page.third_party_privacy %}
|
||||
{% case service.tracks_payments %}
|
||||
{% when "yes" %}
|
||||
<td class="bgred {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "no" %}
|
||||
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "maybe" %}
|
||||
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
|
||||
{% else %}
|
||||
{% die "missing service information" %}
|
||||
{% endcase %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
<tr>
|
||||
<td>How much you spend and/or receive</td>
|
||||
{% for service in page.third_party_privacy %}
|
||||
{% case service.tracks_amounts %}
|
||||
{% when "yes" %}
|
||||
<td class="bgred {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "no" %}
|
||||
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "maybe" %}
|
||||
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
|
||||
{% else %}
|
||||
{% die "missing service information" %}
|
||||
{% endcase %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
<tr>
|
||||
<td>The IP address your connection came from</td>
|
||||
{% for service in page.third_party_privacy %}
|
||||
{% case service.tracks_ip_addresses %}
|
||||
{% when "yes" %}
|
||||
<td class="bgred {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "no" %}
|
||||
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "maybe" %}
|
||||
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
|
||||
{% else %}
|
||||
{% die "missing service information" %}
|
||||
{% endcase %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
|
||||
<tr class="empty"></tr>
|
||||
<tr>
|
||||
<th markdown="span" colspan="99">Who can guess your information? **Just you**{:.fggreen} or also **people
|
||||
you trade with?**{:.fgred}</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th></th>
|
||||
{% for service in page.third_party_privacy %}
|
||||
{% if service.name %}
|
||||
<th class="{{service.css_class}} {{service.group}}">{{service.name}}</th>
|
||||
{% else %}
|
||||
{% die "Some service doesn't have a name" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Other transactions you made or received</td>
|
||||
{% for service in page.third_party_privacy %}
|
||||
{% case service.susceptible_to_taint_analysis %}
|
||||
{% when "yes" %}
|
||||
<td class="bgred {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "no" %}
|
||||
<td class="bggreen {{service.css_class}} {{service.group}}"></td>
|
||||
{% when "maybe" %}
|
||||
<td class="bgyellow {{service.css_class}} {{service.group}}"></td>
|
||||
{% else %}
|
||||
{% die "missing service information" %}
|
||||
{% endcase %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
## Perfect Privacy for Received Transactions
|
||||
|
||||
There are {{site.text.total_tx_count_in_millions}} million transactions on the Bitcoin block
|
||||
chain. How do you find which ones pay you? Here are some common
|
||||
options:
|
||||
|
||||
<table class="received_transactions">
|
||||
<tr>
|
||||
<td class="center" markdown="span">**Ask bankers**{:.fgred}<br
|
||||
>They'll monitor your every transaction<br><br
|
||||
><button class="popup js" data-container="bitcoin_bank_receiving">Bitcoin banks</button></td>
|
||||
|
||||
<td class="center" markdown="span">**Ask random nodes**{:.fgred}<br
|
||||
>Some of which sell your data<br><br
|
||||
><button class="popup js" data-container="bloom_filter_receiving">P2P lightweight wallets</button></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="center" markdown="span">**Ask a free service**{:.fgred}<br
|
||||
>(Actually, some do care about privacy)<br><br
|
||||
><button class="popup js" data-container="electrum_style_receiving">Client lightweight wallets</button></td>
|
||||
|
||||
<td class="center" markdown="span">**Get all {{site.text.total_tx_count_in_millions}} million transactions**{:.fggreen}<br
|
||||
>For **perfect** receiving privacy<br><br
|
||||
>**Bitcoin Core**</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Bitcoin Core downloads all {{site.text.total_tx_count_in_millions}} million transactions on the Bitcoin block
|
||||
chain and processes them to find which transactions pay you.
|
||||
|
||||
This currently takes about {{site.text.typical_ibd_time_in_hours}} hours the first time
|
||||
you start Bitcoin Core and about {{site.text.typical_144_block_catchup_time_in_minutes}}
|
||||
minutes a day to keep updated, but it gives you what scientists call
|
||||
**<button class="popup js" data-container="information_theoretic_privacy">information-theoretic (perfect) privacy</button>**
|
||||
against eavesdroppers for received transactions.
|
||||
|
||||
## Strong Privacy for Sent Transactions
|
||||
|
||||
To put a transaction on the block chain, you must send it publicly---but
|
||||
how you send it can make a big difference.
|
||||
|
||||

|
||||
|
||||
**Can you guess who made which transactions?** Nearly all peer-to-peer
|
||||
lightweight clients today make no attempt to obscure their sent
|
||||
transactions. They simply send them to some or all of their peers.
|
||||
|
||||
Bitcoin Core does much better. By default, it relays transactions for
|
||||
all of its peers---thousands of separate transactions a day under common
|
||||
conditions---which allows it both [support the peer-to-peer network][bcc
|
||||
network support] and confuse anti-privacy organizations that try to
|
||||
track your transactions.
|
||||
|
||||
|
||||
## Tor Compatible
|
||||
|
||||
The Tor anonymity network helps disassociate your online activity from
|
||||
your IP address (which is often closely associated with your real name).
|
||||
This significantly increases your ability to confound anti-privacy
|
||||
organizations.
|
||||
|
||||
Once you [setup Tor][], using it with Bitcoin Core is [easy][bcc
|
||||
tor]. If you also [setup a Tor hidden service][bcc tor hs], you will
|
||||
be able to [connect mobile clients][bcc user interface lightweight]
|
||||
to your Bitcoin Core full node for increased security and privacy
|
||||
wherever you go.
|
||||
|
||||
{:.right-hanger}
|
||||
[Start using Tor today <span class="fa fa-external-link-square"></span>][setup tor]
|
||||
|
||||
|
||||
## Decentralized Peer Discovery
|
||||
|
||||
The first time any Bitcoin program connects to the peer-to-peer network,
|
||||
it has to ask a centralized authority for a list of recommended peers.
|
||||
|
||||
Once the program gets on the network, it can ask its peers for more
|
||||
recommendations in a fully decentralized way---but
|
||||
<button class="popup js" data-container="spv_decentralized_peer">most</button>
|
||||
lightweight wallets don't bother.
|
||||
|
||||
<table class="center_header">
|
||||
<tr>
|
||||
<th class="fgred">P2P Lightweight Wallets</th>
|
||||
<th class="fggreen">Bitcoin Core</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Asks the same centralized services every time program is
|
||||
restarted. This can be faster.</td>
|
||||
|
||||
<td>Uses the peer-to-peer network to independently discover new
|
||||
peers. Uses found peers on restart.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
This allows the centralized authority to connect lightweight wallets to
|
||||
dishonest peers that can **completely destroy lightweight transaction
|
||||
privacy.** Those dishonest peers can work with dishonest miners to
|
||||
**weaken lightweight security too.**
|
||||
|
||||
Bitcoin Core prefers decentralized peer discovery, so after the first
|
||||
time it starts, it no longer has to trust the centralized authority.
|
||||
Isn't that worth occasionally starting up a few seconds slower?
|
||||
|
||||
<br class="clear big">
|
||||
<div class="prevnext">
|
||||
<span markdown="1">**Previous Feature**<br>[Validation][bcc validation]</span>
|
||||
<span markdown="1">**Next feature**<br>[Requirements][bcc requirements]</span>
|
||||
</div>
|
||||
<br class="clear">
|
||||
|
||||
<div class="not-displayed">
|
||||
<div id="bitcoin_bank_receiving" title="Bitcoin Bank Receiving Privacy" markdown="block">
|
||||

|
||||
|
||||
When you receive bitcoins to a Bitcoin bank, the money is sent to one of
|
||||
the bank's addresses---not your own---which can give you excellent
|
||||
privacy against random strangers.
|
||||
|
||||
However, the bank knows you received the transaction and they can likely
|
||||
also see any information you associate with the transaction, such as the
|
||||
sender's name or another note you attach to the transaction.
|
||||
|
||||
The bank may also be required by law to disclose information about your
|
||||
account. They can also sell your information or have a hacker steal your
|
||||
information.
|
||||
</div>
|
||||
|
||||
<div id="bloom_filter_receiving" title="Bloom Filter Privacy" markdown="block">
|
||||

|
||||
|
||||
By only asking for payments related to your wallet, plus maybe a few
|
||||
others as bloom filter camouflage, lightweight wallets may reveal who you
|
||||
paid, who paid you, and what your current bitcoin balance is.
|
||||
|
||||
> A [2014 study of lightweight clients][study of SPV privacy over tor]
|
||||
> said, "Our results show that bloom filters incur serious privacy
|
||||
> leakage in existing SPV client implementations [...] such an
|
||||
> information leakage might severely harm the privacy of users" **Nearly
|
||||
> all lightweight clients are still vulnerable today.**
|
||||
|
||||
**Learn more:** ["Lying consistently is hard"][lying consistently is hard]
|
||||
|
||||
</div>
|
||||
|
||||
<div id="electrum_style_receiving" title="Client Lightweight Wallet Receiving Privacy" markdown="block">
|
||||

|
||||
|
||||
Some lightweight wallets don't connect to the Bitcoin peer-to-peer (P2P)
|
||||
network. Instead, they make a (usually secure) connection to a single
|
||||
server that provides block chain data.
|
||||
|
||||
The wallet tells the server all of its addresses, and the server replies
|
||||
with all of the transactions that belong to the wallet. This explicitly
|
||||
reveals all of your addresses, which is bad for your privacy---but it
|
||||
only gives that information to one server, as long as you don't change
|
||||
servers later.
|
||||
|
||||
The server can, of course, give away your information and further
|
||||
reduce your privacy. However, as of
|
||||
{{site.text.assertion_month | date: "%B %Y"}}, most of these types of
|
||||
servers are run by volunteers who likely want to help protect your
|
||||
privacy, so this model can be more private than bank wallets or P2P
|
||||
lightweight wallets.
|
||||
|
||||
</div>
|
||||
|
||||
<div id="spv_decentralized_peer" title="P2P Decentralized Peer Discovery" markdown="block">
|
||||
The following P2P lightweight wallets use decentralized peer discovery
|
||||
by default.
|
||||
|
||||
- BreadWallet
|
||||
|
||||
If you know of another compliant lightweight wallet, please [tell us
|
||||
about it][docs issue].
|
||||
</div>
|
||||
|
||||
<div id="information_theoretic_privacy" title="Information-Theoretic Privacy" markdown="block">
|
||||
Information-theoretic privacy means that the privacy can't be broken even
|
||||
if an attacker has unlimited computing resources.
|
||||
|
||||
**Learn more:** [Information theoretic security][] (Wikipedia)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include references.md %}
|
229
en/bitcoin-core/features/requirements.md
Normal file
229
en/bitcoin-core/features/requirements.md
Normal file
|
@ -0,0 +1,229 @@
|
|||
---
|
||||
# This file is licensed under the MIT License (MIT) available on
|
||||
# http://opensource.org/licenses/MIT.
|
||||
|
||||
layout: base-core
|
||||
lang: en
|
||||
columns: 1
|
||||
id: bitcoin-core-requirements
|
||||
title: Requirements And Warnings - Bitcoin Core
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- bcc
|
||||
- bcc features
|
||||
- Requirements
|
||||
---
|
||||
# Bitcoin Core Requirements And Warnings
|
||||
{:.not-displayed}
|
||||
|
||||

|
||||
|
||||
{% include bitcoin-core/download-bitcoin-core.html %}
|
||||
|
||||
Bitcoin Core gives you increased [security][bcc validation] and
|
||||
[privacy][bcc privacy] at a cost. You need to [take
|
||||
responsibility](#wallet-responsibility-checklist) for the security of
|
||||
your bitcoins, meet higher [minimum system
|
||||
requirements](#system-requirements), and beware of some [possible
|
||||
problems](#possible-problems).
|
||||
|
||||

|
||||
**No matter what Bitcoin software you use,** you should never
|
||||
buy more bitcoins than you can afford to lose. Bitcoin is still an
|
||||
experimental system and bitcoins remain a risky investment.
|
||||
|
||||
## Wallet Responsibility Checklist
|
||||
|
||||
Bitcoin Core puts you in charge of your wallet, which means your
|
||||
bitcoins are at risk unless you complete certain tasks:
|
||||
|
||||
{% comment %}
|
||||
<!-- Note: the short pop-ups below are a temporary measure. I (@harding) plan
|
||||
to write a Bitcoin Core user guide for the site that will provide more
|
||||
detailed instructions for at least some of these things. -->
|
||||
{% endcomment %}
|
||||
|
||||
- <button class="popup js" data-container="backup_your_keys">Backup your keys</button>
|
||||
|
||||
- Make sure your <button class="popup js" data-container="secure_your_wallet">wallet is secure</button>
|
||||
|
||||
- Setup an <button class="popup js" data-container="offline_wallet">offline wallet</button>
|
||||
(cold storage) for significant amounts of bitcoins
|
||||
|
||||
- Watch for [security notifications](/en/alerts)
|
||||
|
||||
- Allow your heirs to <button class="popup js" data-container="bitcoin_inheritance">receive your bitcoins</button>
|
||||
if you die or become incapacitated
|
||||
|
||||
If you need help with any step, please ask for assistance in any of
|
||||
Bitcoin's [friendly forums][bcc forums] or [live chatrooms][bcc live
|
||||
help].
|
||||
|
||||
## System Requirements
|
||||
|
||||
{% assign DISK='<span class="fa fa-li fa-hdd-o fa-2x"></span> **Disk space**<br>' %}
|
||||
{% assign DOWNLOAD='<span class="fa fa-li fa-download fa-2x"></span> **Download**<br>' %}
|
||||
{% assign UPLOAD='<span class="fa fa-li fa-upload fa-2x"></span> **Upload**<br>' %}
|
||||
{% assign MEMORY='<span class="fa fa-li fa-database fa-2x"></span> **Memory (RAM)**<br>' %}
|
||||
{% assign SYSTEM='<span class="fa fa-li fa-desktop fa-2x"></span> **System**<br>' %}
|
||||
{% assign OS='<span class="fa fa-li fa-windows fa-2x"></span> **Operating system**<br>' %}
|
||||
{% assign FOOTNOTE='<b>*</b>' %}
|
||||
{% capture INITIAL_DOWNLOAD %}<b>*</b> Plus a one-time {{site.text.chain_gb}} GB download the first time you start Bitcoin Core.{% endcapture %}
|
||||
|
||||
<div markdown="block" class="two-column-list" id="system-requirements-accordion">
|
||||
|
||||
### Bare Minimum (With Default Settings)
|
||||
|
||||
<div markdown="block">
|
||||
|
||||
{:.fa-ul}
|
||||
- {{DISK}} {{site.text.bitcoin_datadir_gb}} GB
|
||||
|
||||
- {{DOWNLOAD}} 250 MB/day (8 GB/month){{FOOTNOTE}}
|
||||
|
||||
- {{UPLOAD}} 5 GB/day (150 GB/month)
|
||||
|
||||
- {{MEMORY}} 512 MB
|
||||
|
||||
- {{SYSTEM}} Desktop<br
|
||||
>Laptop<br
|
||||
>[Some ARM chipsets][wiki bitcoin core compatible devices arm] >1 GHz
|
||||
|
||||
- {{OS}} Windows 7/8.x<br
|
||||
>Mac OS X<br
|
||||
>Linux<br
|
||||
>Some BSDs
|
||||
|
||||
<br class="clear">
|
||||
|
||||
{{INITIAL_DOWNLOAD}}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
### Bare Minimum (With Custom Settings)
|
||||
|
||||
<div markdown="block">
|
||||
|
||||
{:.fa-ul}
|
||||
- {{DISK}} {{site.text.bitcoin_datadir_gb_pruned}} GB
|
||||
|
||||
- {{DOWNLOAD}} 150 MB/day (5 GB/month){{FOOTNOTE}}
|
||||
|
||||
- {{UPLOAD}} 10 MB/day (300 MB/month)
|
||||
|
||||
- {{MEMORY}} 256 MB
|
||||
|
||||
- {{SYSTEM}} Desktop<br
|
||||
>Laptop<br
|
||||
>[Most ARM chipsets][wiki bitcoin core compatible devices arm]
|
||||
|
||||
- {{OS}} Windows 7/8.x<br
|
||||
>Mac OS X<br
|
||||
>Linux<br
|
||||
>Some BSDs
|
||||
|
||||
<br class="clear">
|
||||
|
||||
{{INITIAL_DOWNLOAD}}
|
||||
|
||||
**Learn more:** [Bitcoin Core configuration options][bcc configuration]
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
### Minimum Recommended
|
||||
|
||||
<div markdown="block">
|
||||
|
||||
{:.fa-ul}
|
||||
- {{DISK}} {{site.text.bitcoin_datadir_gb}} GB
|
||||
|
||||
- {{DOWNLOAD}} 500 MB/day (15 GB/month){{FOOTNOTE}}
|
||||
|
||||
- {{UPLOAD}} 5 GB/day (150 GB/month)
|
||||
|
||||
- {{MEMORY}} 1 GB
|
||||
|
||||
- {{SYSTEM}} Desktop<br
|
||||
>Laptop<br
|
||||
>[Some ARM chipsets][wiki bitcoin core compatible devices arm] >1 GHz
|
||||
|
||||
- {{OS}} Windows 7/8.x<br
|
||||
>Mac OS X<br
|
||||
>Linux
|
||||
|
||||
<br class="clear">
|
||||
|
||||
{{INITIAL_DOWNLOAD}}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
## Possible Problems
|
||||
|
||||
{% include bitcoin-core/bitcoin-core-possible-problems.md %}
|
||||
|
||||
<div class="not-displayed">
|
||||
<div id="backup_your_keys" title="Backup Your Keys" markdown="block">
|
||||
By default, you need to backup Bitcoin Core after every 100
|
||||
transactions. This includes both transactions you send as well as
|
||||
payments you request (whether or not you actually received the payment).
|
||||
|
||||
For example, you need to backup after sending 33 payments and requesting
|
||||
67 payments (even though you only received 60 payments).
|
||||
|
||||
Bitcoin Core can be configured to allow you to go more transactions
|
||||
between backups. See the [`-keypool` setting][bcc configuration].
|
||||
</div>
|
||||
|
||||
<div id="secure_your_wallet" title="Secure Your Wallet" markdown="block">
|
||||
Anyone who gets access to your wallet can steal your bitcoins. The
|
||||
first line of defense against this is encrypting your wallet, an option
|
||||
from the File menu in the graphical interface.
|
||||
|
||||
However, encrypting may not be enough if your computer becomes infected
|
||||
by malware. Learn about <button class="popup js" data-container="offline_wallet">offline wallets</button>
|
||||
for security against this type of attack.
|
||||
|
||||
In addition to securing your wallet, you also need to keep your backups
|
||||
secure. Anyone who gets access to them can also steal your bitcoins.
|
||||
|
||||
**Learn more:** [secure your wallet][]
|
||||
</div>
|
||||
|
||||
<div id="offline_wallet" title="Offline Wallet" markdown="block">
|
||||
Computers that connect to the Internet are frequently hacked or infected
|
||||
with bitcoin-stealing malware. Computers that never connect to the
|
||||
Internet are a much more secure location for your bitcoins.
|
||||
|
||||
Bitcoin Core can be run on an always-offline computer, creating an
|
||||
offline wallet (also called a cold wallet). The offline wallet will
|
||||
securely store the private keys, while a separate online Bitcoin Core
|
||||
wallet will send and receive transactions.
|
||||
|
||||
**Learn more:** [Creating and signing offline transactions][offline transactions]
|
||||
</div>
|
||||
|
||||
<div id="bitcoin_inheritance" title="Bitcoin Inheritance" markdown="block">
|
||||
Your Bitcoin wallet isn't like a bank account---it won't automatically
|
||||
go to your heirs if you die or become disabled.
|
||||
|
||||
You have to plan ahead and make sure there is a way for your heirs
|
||||
to access your wallet backups when you're no longer available.
|
||||
|
||||
**Learn more:** [Estate planning: how can I ensure my bitcoins are inheritable?][inherit bitcoins]
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br class="clear big">
|
||||
<div class="prevnext">
|
||||
<span markdown="1">**Previous Feature**<br>[Privacy][bcc privacy]</span>
|
||||
<span markdown="1">**Next feature**<br>[User interface][bcc user interface]</span>
|
||||
</div>
|
||||
<br class="clear">
|
||||
|
||||
{% include references.md %}
|
367
en/bitcoin-core/features/user-interface.md
Normal file
367
en/bitcoin-core/features/user-interface.md
Normal file
|
@ -0,0 +1,367 @@
|
|||
---
|
||||
# This file is licensed under the MIT License (MIT) available on
|
||||
# http://opensource.org/licenses/MIT.
|
||||
|
||||
id: bitcoin-core-user-interface
|
||||
layout: base-core
|
||||
lang: en
|
||||
columns: 1
|
||||
title: User Interface - Bitcoin Core Features
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- bcc
|
||||
- bcc features
|
||||
- Interface
|
||||
---
|
||||
# Bitcoin Core's User Interface
|
||||
{:.not-displayed}
|
||||
|
||||

|
||||
|
||||
{% include bitcoin-core/download-bitcoin-core.html %}
|
||||
|
||||
Bitcoin Core has a built in wallet with [graphical](#graphical) and
|
||||
[command line/API](#cli) modes. It can also simultaneously support multiple
|
||||
lightweight wallets with similar [security][bcc validation] and
|
||||
[privacy][bcc privacy] to its built-in wallet.
|
||||
|
||||

|
||||
|
||||
**Warning:** you only get the security and privacy benefits in supported
|
||||
lightweight wallets if they make a secure and private connection to your
|
||||
Bitcoin Core *every* time you use them. This usually requires special
|
||||
configuration.
|
||||
|
||||
## Bitcoin Core Wallet GUI (Graphical) {#graphical}
|
||||
|
||||
{% comment %}<!-- Limit to a maximum of 10 features to avoid overwhelming the reader -->{% endcomment %}
|
||||
<div markdown="block" class="two-column-list">
|
||||
|
||||
{:.fa-ul}
|
||||
- <span class="fa fa-li fa-desktop fa-2x"></span> **<button class="popup js" data-container="gui_overview">Clear overview</button>**<br
|
||||
>See your current balance and recent transactions
|
||||
|
||||
- <span class="fa fa-li fa-toggle-on fa-2x"></span> **<button class="popup js" data-container="gui_fee_slider">Fee slider</button>**<br
|
||||
>Easily choose between low fees and fast confirmation
|
||||
|
||||
- <span class="fa fa-li fa-btc fa-2x"></span> **<button class="popup js" data-container="gui_coin_control">Coin control</button>**<br
|
||||
>Enhance privacy or save money by choosing your inputs
|
||||
|
||||
- <span class="fa fa-li fa-qrcode fa-2x"></span> **<button class="popup js" data-container="gui_qr_codes">QR codes</button>**<br
|
||||
>Generate QR codes to receive payment
|
||||
|
||||
- <span class="fa fa-li fa-file-text-o fa-2x"></span> **<button class="popup js" data-container="gui_unique_invoices">Unique invoices</button>**<br
|
||||
>Easily track who paid you
|
||||
|
||||
- <span class="fa fa-li fa-shield fa-2x"></span> **<button class="popup js" data-container="gui_proxy_configuration">Proxy configuration</button>**<br
|
||||
>Use Tor or a proxy for privacy
|
||||
|
||||
- <span class="fa fa-li fa-bar-chart fa-2x"></span> **<button class="popup js" data-container="gui_network_monitoring">Network monitoring</button>**<br
|
||||
>Track how much bandwidth you use
|
||||
|
||||
- <span class="fa fa-li fa-power-off fa-2x"></span> **<button class="popup js" data-container="gui_watch_only">Watch-only support</button>**<br
|
||||
>Track bitcoins stored safely offline
|
||||
|
||||
</div>
|
||||
<br class="clear">
|
||||
|
||||
|
||||
## Bitcoin Core Wallet RPC/REST (CLI) {#cli}
|
||||
|
||||
{% comment %}<!-- Limit to a maximum of 10 features to avoid overwhelming the reader -->{% endcomment %}
|
||||
|
||||
<div markdown="block" class="two-column-list">
|
||||
|
||||
{:.fa-ul}
|
||||
- <span class="fa fa-li fa-plus-square-o fa-2x"></span> **<button class="popup js" data-container="rpc_getnewaddress">GetNewAddress</button>**<br
|
||||
>Get a new address for receiving payment
|
||||
|
||||
- <span class="fa fa-li fa-area-chart fa-2x"></span> **<button class="popup js" data-container="rpc_getbalance">GetBalance</button>**<br
|
||||
>Instantly see your available Bitcoin balance
|
||||
|
||||
- <span class="fa fa-li fa-arrows fa-2x"></span> **<button class="popup js" data-container="rpc_sendmany">SendMany</button>**<br
|
||||
>Send a single payment to multiple addresses
|
||||
|
||||
- <span class="fa fa-li fa-list fa-2x"></span> **<button class="popup js" data-container="rpc_listunspent">ListUnspent</button>**<br
|
||||
>See what received transactions you can spend
|
||||
|
||||
- <span class="fa fa-li fa-share-square-o fa-2x"></span> **<button class="popup js" data-container="rpc_rawtx">Create/Sign/Send</button>**<br
|
||||
>Create and send raw transactions
|
||||
|
||||
- <span class="fa fa-li fa-bell-o fa-2x"></span> **<button class="popup js" data-container="notification">Notification</button>**<br
|
||||
>Be notified of new blocks and transactions
|
||||
|
||||
|
||||
</div>
|
||||
<br class="clear">
|
||||
|
||||
**Learn more:** documentation for the [RPC][rpc] and [REST][rest] interfaces
|
||||
|
||||
## Lightweight Wallets Using Bitcoin Core {#lightweight}
|
||||
|
||||
Lightweight wallets usually connect to several random full nodes (like
|
||||
Bitcoin Core) to send and receive all of their data. In the process they
|
||||
[leak private data][bcc privacy data leaking] and make themselves more
|
||||
[vulnerable to attacks][bcc validation protection].
|
||||
|
||||

|
||||
|
||||
But it's also possible to connect certain lightweight wallets solely to
|
||||
your own Bitcoin Core full node, called a trusted peer. If you do this
|
||||
with a secure and private connection every time you use that
|
||||
lightweight wallet, you'll get most of the security and privacy
|
||||
benefits of a full node as well as [help protect decentralization][bcc
|
||||
validation decentralization].
|
||||
|
||||

|
||||
|
||||
<br>
|
||||
|
||||
### Trusted Peer Support {#trusted-peer}
|
||||
|
||||
The following wallets can securely connect to a trusted peer.
|
||||
|
||||
<div markdown="block" class="wallet_accordion">
|
||||
{% comment %}<!-- Put wallets in alphabetical order -->{% endcomment %}
|
||||
|
||||
### Armory
|
||||
|
||||
<div markdown="block">
|
||||

|
||||
|
||||
{% translate walletarmory choose-your-wallet %}
|
||||
|
||||
**No configuration necessary:** Armory uses a local Bitcoin Core full
|
||||
node by default.
|
||||
|
||||
{% comment %}
|
||||
<!-- TODO/Someday: move wallet yaml into _data directory so we can pull
|
||||
URLs and other info from it -->
|
||||
{% endcomment %}
|
||||
|
||||
{:.right-hanger}
|
||||
[Get Armory <span class="fa fa-external-link-square"></span>](https://bitcoinarmory.com/)
|
||||
|
||||
</div>
|
||||
|
||||
### GreenBits
|
||||
|
||||
<div markdown="block">
|
||||

|
||||
|
||||
GreenBits is a fast and easy to use wallet. Enjoy improved security with
|
||||
a minimal/zero trust approach, optional hardware wallets support,
|
||||
multisignature based 2FA and spending limits functionality.
|
||||
|
||||
**Requires you setup a [Tor .onion address][bcc tor hs].**
|
||||
|
||||
1. Open the GreenBits app
|
||||
|
||||
2. Go to the configuration screen
|
||||
|
||||
3. Choose to *Enable SPV* (default) and tap *Only connect to a
|
||||
trusted peer*.
|
||||
|
||||
4. Enter your .onion address in the *trusted peer* field.
|
||||
|
||||
5. Restart the app.
|
||||
|
||||
Note that GreenAddress will still be able to see your payments; however,
|
||||
you'll have enhanced security as well as privacy from random peers on
|
||||
the Bitcoin network.
|
||||
|
||||
{:.right-hanger}
|
||||
[Get GreenBits <span class="fa fa-external-link-square"></span>](https://play.google.com/store/apps/details?id=com.greenaddress.greenbits_android_wallet)
|
||||
</div>
|
||||
|
||||
### mSigna
|
||||
|
||||
<div markdown="block">
|
||||

|
||||
|
||||
{% translate walletmsigna choose-your-wallet %}
|
||||
|
||||
**No configuration necessary:** just install Bitcoin Core on the same
|
||||
computer you plan to use mSigna, wait for Bitcoin Core to sync the block
|
||||
chain, and then start mSigna---it will automatically connect to your
|
||||
Bitcoin Core full node.
|
||||
|
||||
{:.right-hanger}
|
||||
[Get mSigna <span class="fa fa-external-link-square"></span>](https://ciphrex.com/redirect/?referer=bitcoin.org)
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="not-displayed">
|
||||
<div id="gui_overview" title="Wallet Overview" markdown="block">
|
||||

|
||||
</div>
|
||||
|
||||
<div id="gui_fee_slider" title="Fee Slider" markdown="block">
|
||||

|
||||
</div>
|
||||
|
||||
<div id="gui_coin_control" title="Coin Control" markdown="block">
|
||||

|
||||
</div>
|
||||
|
||||
<div id="gui_qr_codes" title="QR Codes" markdown="block">
|
||||

|
||||
</div>
|
||||
|
||||
<div id="gui_unique_invoices" title="Unique Invoices" markdown="block">
|
||||

|
||||
</div>
|
||||
|
||||
<div id="gui_proxy_configuration" title="Proxy Configuration" markdown="block">
|
||||

|
||||
</div>
|
||||
|
||||
<div id="gui_network_monitoring" title="Network monitoring" markdown="block">
|
||||

|
||||
</div>
|
||||
|
||||
<div id="gui_watch_only" title="Watching-only Wallets" markdown="block">
|
||||

|
||||
</div>
|
||||
|
||||
<div id="rpc_getnewaddress" title="GetNewAddress" markdown="block">
|
||||
<div class="multicode" markdown="block">
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet getnewaddress "doc test"
|
||||
{% endhighlight %}
|
||||
{% highlight text %}
|
||||
mft61jjkmiEJwJ7Zw3r1h344D6aL1xwhma
|
||||
{% endhighlight %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="rpc_getbalance" title="GetBalance" markdown="block">
|
||||
<div class="multicode" markdown="block">
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet getbalance
|
||||
{% endhighlight %}
|
||||
{% highlight json %}
|
||||
1.99900000
|
||||
{% endhighlight %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="rpc_sendmany" title="SendMany" markdown="block">
|
||||
<div class="multicode" markdown="block">
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet sendmany \
|
||||
"test1" \
|
||||
'''
|
||||
{
|
||||
"mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN": 0.1,
|
||||
"mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe": 0.2
|
||||
} ''' \
|
||||
6 \
|
||||
"Example Transaction"
|
||||
{% endhighlight %}
|
||||
{% highlight text %}
|
||||
ec259ab74ddff199e61caa67a26e29b13b5688dc60f509ce0df4d044e8f4d63d
|
||||
{% endhighlight %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="rpc_listunspent" title="ListUnspent" markdown="block">
|
||||
<div class="multicode" markdown="block">
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet listunspent 6 99999999 '''
|
||||
[
|
||||
"mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe"
|
||||
]
|
||||
'''
|
||||
{% endhighlight %}
|
||||
{% highlight json %}
|
||||
[
|
||||
{
|
||||
"txid" : "d54994ece1d11b19785c7248868696250ab195605b469632b7bd68130e880c9a",
|
||||
"vout" : 1,
|
||||
"address" : "mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe",
|
||||
"account" : "test label",
|
||||
"scriptPubKey" : "76a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac",
|
||||
"amount" : 0.00010000,
|
||||
"confirmations" : 6210,
|
||||
"spendable" : true
|
||||
}
|
||||
]
|
||||
{% endhighlight %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="rpc_rawtx" title="Create/Sign/Spent Raw Transactions" markdown="block">
|
||||
Create a raw transaction:
|
||||
|
||||
<div class="multicode" markdown="block">
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet createrawtransaction '''
|
||||
[
|
||||
{
|
||||
"txid": "1eb590cd06127f78bf38ab4140c4cdce56ad9eb8886999eb898ddf4d3b28a91d",
|
||||
"vout" : 0
|
||||
}
|
||||
]''' '{ "mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe": 0.13 }'
|
||||
{% endhighlight %}
|
||||
{% highlight text %}
|
||||
01000000011da9283b4ddf8d89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e0000000000ffffffff01405dc600000000001976a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac00000000
|
||||
{% endhighlight %}
|
||||
</div>
|
||||
|
||||
Sign the above raw transaction:
|
||||
|
||||
<div class="multicode" markdown="block">
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet signrawtransaction 01000000011da9283b4ddf8d\
|
||||
89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e0000000000ffff\
|
||||
ffff01405dc600000000001976a9140dfc8bafc8419853b34d5e072ad37d1a51\
|
||||
59f58488ac00000000
|
||||
{% endhighlight %}
|
||||
{% highlight json %}
|
||||
{
|
||||
"hex" : "01000000011da9283b4ddf8d89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e000000006a47304402200ebea9f630f3ee35fa467ffc234592c79538ecd6eb1c9199eb23c4a16a0485a20220172ecaf6975902584987d295b8dddf8f46ec32ca19122510e22405ba52d1f13201210256d16d76a49e6c8e2edc1c265d600ec1a64a45153d45c29a2fd0228c24c3a524ffffffff01405dc600000000001976a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac00000000",
|
||||
"complete" : true
|
||||
}
|
||||
{% endhighlight %}
|
||||
</div>
|
||||
|
||||
Send the above signed raw transaction:
|
||||
|
||||
<div class="multicode" markdown="block">
|
||||
{% highlight bash %}
|
||||
bitcoin-cli -testnet sendrawtransaction 01000000011da9283b4ddf8d\
|
||||
89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e000000006a4730\
|
||||
4402200ebea9f630f3ee35fa467ffc234592c79538ecd6eb1c9199eb23c4a16a\
|
||||
0485a20220172ecaf6975902584987d295b8dddf8f46ec32ca19122510e22405\
|
||||
ba52d1f13201210256d16d76a49e6c8e2edc1c265d600ec1a64a45153d45c29a\
|
||||
2fd0228c24c3a524ffffffff01405dc600000000001976a9140dfc8bafc84198\
|
||||
53b34d5e072ad37d1a5159f58488ac00000000
|
||||
{% endhighlight %}
|
||||
{% highlight text %}
|
||||
f5a5ce5988cc72b9b90e8d1d6c910cda53c88d2175177357cc2f2cf0899fbaad
|
||||
{% endhighlight %}
|
||||
</div>
|
||||
|
||||
The returned value is the transaction's identifier (TXID).
|
||||
</div>
|
||||
|
||||
<div id="notification" title="Programmable Notification" markdown="block">
|
||||
<div class="multicode" markdown="block">
|
||||
{% highlight bash %}
|
||||
bitcoind -daemon -walletnotify=your_notification_command
|
||||
{% endhighlight %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<br class="clear big">
|
||||
<div class="prevnext">
|
||||
<span markdown="1">**Previous Feature**<br>[Requirements][bcc requirements]</span>
|
||||
<span markdown="1">**Next feature**<br>[Network Support][bcc network support]</span>
|
||||
</div>
|
||||
<br class="clear">
|
||||
|
||||
{% include references.md %}
|
477
en/bitcoin-core/features/validation.md
Normal file
477
en/bitcoin-core/features/validation.md
Normal file
|
@ -0,0 +1,477 @@
|
|||
---
|
||||
# This file is licensed under the MIT License (MIT) available on
|
||||
# http://opensource.org/licenses/MIT.
|
||||
|
||||
layout: base-core
|
||||
lang: en
|
||||
columns: 1
|
||||
id: bitcoin-core-validation
|
||||
title: Validation - Bitcoin Core Features
|
||||
breadcrumbs:
|
||||
- bitcoin
|
||||
- bcc
|
||||
- bcc features
|
||||
- Validation
|
||||
---
|
||||
# Bitcoin Core Validation
|
||||
{:.not-displayed}
|
||||
|
||||

|
||||
|
||||
{% include bitcoin-core/download-bitcoin-core.html %}
|
||||
|
||||
> Imagine a scientist reading about an experimental result and then
|
||||
> repeating the experiment for herself. Doing so allows her to **trust
|
||||
> the result without having to trust the original scientists.**
|
||||
|
||||
Bitcoin Core checks each block of transactions it receives to ensure
|
||||
that everything in that block is fully valid---allowing it to trust the
|
||||
block without trusting the miner who created it.
|
||||
|
||||
This prevents miners from tricking Bitcoin Core users into accepting
|
||||
blocks that violate the 21 million bitcoin limit or which break other
|
||||
important rules.
|
||||
|
||||
Users of other wallets don't get this level of security, so miners can
|
||||
trick them into accepting fabricated transactions or hijacked block chains.
|
||||
|
||||
Why take that risk if you don't have to? Bitcoin Core provides
|
||||
the **best possible security against dishonest miners** along
|
||||
with additional security against other easier attacks (see below
|
||||
for details).
|
||||
|
||||
|
||||
## How Validation Protects Your Bitcoins
|
||||
|
||||
<button class="popup js" data-container="bitcoin_banks">Bitcoin banks</button>
|
||||
and
|
||||
<button class="popup js" data-container="spv_wallets">lightweight (SPV) wallets</button>
|
||||
put your bitcoins at
|
||||
increased risk of being stolen. That risk may be acceptable for small
|
||||
values of bitcoin on mobile wallets, but is it what you want for your
|
||||
real wallet?
|
||||
|
||||
*Click any row below for more details about that attack*
|
||||
{:.center}
|
||||
|
||||
<table class="validation">
|
||||
<tr>
|
||||
<th>Attack</th>
|
||||
<th markdown="span">Bank Wallet</th>
|
||||
<th markdown="span">SPV Wallet</th>
|
||||
<th>Bitcoin Core</th>
|
||||
</tr>
|
||||
|
||||
<tr class="brief">
|
||||
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Direct theft</td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bggreen"></td>
|
||||
<td class="bggreen"></td>
|
||||
</tr>
|
||||
|
||||
<tr class="details">
|
||||
<td colspan="4" markdown="block">
|
||||
> Alice deposits 100 bitcoins to Bank.Example.com. The next day, the
|
||||
> owners of the site disappear with Alice's money.
|
||||
|
||||
- **Bitcoin bank**{:.fgred} users are vulnerable to direct theft because
|
||||
they don't control their own private keys.
|
||||
|
||||
- **Lightweight (SPV) wallet**{:.fggreen} users and **Bitcoin
|
||||
Core**{:.fggreen} users are not vulnerable because they control their
|
||||
own private keys.
|
||||
|
||||
<div class="callout" markdown="block">
|
||||
Direct theft is likely the leading cause of stolen bitcoins so far.
|
||||
</div>
|
||||
|
||||
### Real Example
|
||||
|
||||
Bitcoin exchange Mt Gox reportedly had 650,000 bitcoins (worth $347
|
||||
million USD) stolen from their customer deposits and their own operating
|
||||
funds. They declared bankruptcy on 28 February 2014.
|
||||
|
||||
Even when the bankruptcy proceeding is complete, customers are unlikely to
|
||||
recover more than a small fraction of the bitcoins they had on deposit.
|
||||
|
||||
**Learn More:** [Collapse of Mt
|
||||
Gox](https://en.bitcoin.it/wiki/Collapse_of_Mt._Gox)
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="brief">
|
||||
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Bait and switch</td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bgyellow"></td>
|
||||
<td class="bggreen"></td>
|
||||
</tr>
|
||||
|
||||
<tr class="details">
|
||||
<td colspan="4" markdown="block">
|
||||
> Alice installs Example Wallet, whose open source code has been
|
||||
> audited. The next day, the authors of Example Wallet push new code to
|
||||
> Alice's device and steal all her bitcoins.
|
||||
|
||||
- **Bitcoin bank**{:.fgred} users are vulnerable because they can only
|
||||
spend their bitcoins when they use the bank's approved software.
|
||||
|
||||
- **Lightweight (SPV) wallet**{:.fgyellow} users are vulnerable with
|
||||
most software because auditors can't easily verify the software you
|
||||
run (the executable) is the same as the program source code, called a
|
||||
deterministic build. However, some lightweight wallets are moving to
|
||||
deterministic builds.
|
||||
|
||||
- **Bitcoin Core**{:.fggreen} is built deterministically. Cryptographic
|
||||
signatures from build auditors---many of whom are well known to the
|
||||
community---are [released publicly][gitian sigs].
|
||||
|
||||
<div class="callout" markdown="block">
|
||||
Bitcoin.org's [Choose Your Wallet][] page tells you whether or not
|
||||
wallet builds are audited in the *Transparency* score for each wallet.
|
||||
</div>
|
||||
|
||||
### Real Example
|
||||
|
||||
In April 2013, the OzCoin mining pool was hacked. The thief stole 923
|
||||
bitcoins (worth $135,000 USD), but online wallet StrongCoin modified
|
||||
their wallet code to 'steal back' 569 of those bitcoins ($83,000)
|
||||
from one their users who was suspected of the theft.
|
||||
|
||||
Although this attack was done with good intentions, it illustrated
|
||||
that the operators of StrongCoin could steal bitcoins from their users
|
||||
at any time even though the users supposedly controlled their own
|
||||
private keys.
|
||||
|
||||
**Learn More:** [OzCoin Hacked, Stolen Funds Seized and Returned by StrongCoin](https://bitcoinmagazine.com/4273/ozcoin-hacked-stolen-funds-seized-and-returned-by-strongcoin/)
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="brief">
|
||||
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Fabricated transactions</td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bggreen"></td>
|
||||
</tr>
|
||||
|
||||
<tr class="details">
|
||||
<td colspan="4" markdown="block">
|
||||
> Mallory creates a transaction giving Alice 1,000 bitcoins, so Alice
|
||||
> gives Mallory some cash. Later Alice discovers the transaction Mallory
|
||||
> created was fake.
|
||||
|
||||
- **Bitcoin bank**{:.fgred} users depend on the information reported by the
|
||||
bank, so they can easily be fooled into accepting fabricated
|
||||
transactions.
|
||||
|
||||
- **Lightweight (SPV) wallet**{:.fgred} users depend on full nodes and
|
||||
miners to validate transactions for them. It costs nothing for
|
||||
dishonest full nodes to send unconfirmed fabricated transactions to an
|
||||
SPV wallet. Getting one or more confirmations of those fabricated
|
||||
transactions is also possible with help from a dishonest miner.
|
||||
|
||||
- **Bitcoin Core**{:.fggreen} users don't have to worry about fabricated
|
||||
transactions because Bitcoin Core validates every transaction before
|
||||
displaying it.
|
||||
|
||||
<div class="callout" markdown="block">
|
||||
Currently the best defense against fabricated transactions, besides
|
||||
using Bitcoin Core, is to wait for as many confirmations as possible.
|
||||
</div>
|
||||
|
||||
### Real Example
|
||||
|
||||
On 4 August 2015, web wallet BlockChain.info began indicating that a
|
||||
transaction had spent the earliest mined 250 bitcoins, coins that some
|
||||
people believed were owned by Bitcoin creator Satoshi Nakamoto.
|
||||
|
||||
It was soon discovered that the transaction was invalid. BlockChain.info
|
||||
was not validating transactions with Bitcoin Core and that transaction
|
||||
had been [created by a security researcher][fake satoshi transaction].
|
||||
|
||||
**Learn more:** [BitcoinJ documentation about pending transaction
|
||||
safety][]
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="brief">
|
||||
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Chain hijacking</td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bggreen"></td>
|
||||
</tr>
|
||||
|
||||
<tr class="details">
|
||||
<td colspan="4" markdown="block">
|
||||
> Alice believes that there should never be more than 21 million
|
||||
> bitcoins---but one day she's tricked into buying "bitcoins" that
|
||||
> are only valid on a block chain with permanent 10% inflation.
|
||||
|
||||
- **Bitcoin bank**{:.fgred} users have to use whatever block chain the
|
||||
bank uses. Banks can even profit from switching their users to a new
|
||||
chain and selling their users' bitcoins from the old chain.
|
||||
|
||||
- **Lightweight (SPV) wallet**{:.fgred} users accept the block chain
|
||||
they know about with the most proof of work. This lets the hash rate
|
||||
majority of miners force SPV wallet users off of Bitcoin.
|
||||
|
||||
- **Bitcoin Core**{:.fggreen} users don't have to worry about chain
|
||||
hijacking because Bitcoin Core validates every block using *all* of
|
||||
Bitcoin's consensus rules.
|
||||
|
||||
<div class="callout" markdown="block">
|
||||
Preventing chain hijacking is one of Bitcoin Core's most important jobs.
|
||||
The alternative is to allow miners to do whatever they want.
|
||||
</div>
|
||||
|
||||
### Real Example
|
||||
|
||||
In July 2015, several large Bitcoin miners accidentally produced an
|
||||
invalid block chain several blocks longer than the correct block chain.
|
||||
Some bank wallets and many SPV wallets accepted this longer chain,
|
||||
putting their users' bitcoins at risk.
|
||||
|
||||
Recent versions of Bitcoin Core never accepted any of the blocks from
|
||||
the invalid chain and never put any bitcoins at risk.
|
||||
|
||||
It is believed that the miners at fault controlled more than 50% of the
|
||||
network hash rate, so they could have continued to fool SPV wallets
|
||||
indefinitely. It was only their desire to remain compatible with
|
||||
Bitcoin Core users that forced them to abandon over $37,500 USD worth of
|
||||
mining income.
|
||||
|
||||
**Learn more:** [July 2015 chain forks][]
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="brief">
|
||||
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Transaction withholding</td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bggreen"></td>
|
||||
</tr>
|
||||
|
||||
<tr class="details">
|
||||
<td colspan="4" markdown="block">
|
||||
> Mallory shows Alice $1,000 USD that he will pay her if she sends him some
|
||||
> bitcoins. Alice sends the bitcoins but the transaction never seems to
|
||||
> confirm. After waiting a long time, Alice returns Mallory's cash. It
|
||||
> turns out the transaction did confirm, so Alice gave away her bitcoins
|
||||
> for nothing.
|
||||
|
||||
- **Bitcoin bank**{:.fgred} users only see the transactions the bank
|
||||
choose to show them.
|
||||
|
||||
- **Lightweight (SPV) wallets**{:.fgred} users only see the
|
||||
transactions their full node peers choose to send them, even if those
|
||||
transactions were included in a block the SPV wallet knows about.
|
||||
|
||||
- **Bitcoin Core**{:.fggreen} users see all transactions included in
|
||||
received blocks. If Bitcoin Core hasn't received a block for too long,
|
||||
it displays a catching-up progress bar in the graphical [user
|
||||
interface][bcc user interface] or a warning message in the CLI/API user
|
||||
interface.
|
||||
|
||||
<div class="callout" markdown="block">
|
||||
Unless you use Bitcoin Core, you can never be sure that your bitcoin balance
|
||||
is correct according to the block chain.
|
||||
</div>
|
||||
|
||||
### Real Example
|
||||
|
||||
In March 2015, spy nodes run by the company Chainalysis accidentally
|
||||
prevented some users of the lightweight BreadWallet from connecting to
|
||||
honest nodes. Since the spy nodes didn't relay transactions, BreadWallet
|
||||
users stopped receiving notification of new transactions.
|
||||
|
||||
**Learn more:** [Chainalysis CEO Denies 'Sybil Attack' on Bitcoin's Network](http://www.coindesk.com/chainalysis-ceo-denies-launching-sybil-attack-on-bitcoin-network/)
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="brief">
|
||||
<td><span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-e"></span>Chain rewrites</td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bgred"></td>
|
||||
<td class="bgred"></td>
|
||||
</tr>
|
||||
|
||||
<tr class="details">
|
||||
<td colspan="4" markdown="block">
|
||||
> Mallory gives Alice 1,000 bitcoins. When Alice's wallet says the
|
||||
> transaction is confirmed, Alice gives Mallory some cash. Later Alice
|
||||
> discovers that Mallory has managed to steal back the bitcoins.
|
||||
|
||||
This attack applies to **all Bitcoin wallets.**{:.fgred}
|
||||
|
||||
The attack works because powerful miners have the ability to rewrite the
|
||||
block chain and replace their own transactions, allowing them to take
|
||||
back previous payments.
|
||||
|
||||
The cost of this attack depends on the percentage of total network hash
|
||||
rate the attacking miner controls. The more centralized mining becomes,
|
||||
the less expensive the attack for a powerful miner.
|
||||
|
||||

|
||||
|
||||
### Real Example
|
||||
|
||||
In September 2013, someone used centralized mining pool GHash.io to
|
||||
steal an estimated 1,000 bitcoins (worth $124,000 USD) from the gambling
|
||||
site BetCoin.
|
||||
|
||||
The attacker would spend bitcoins to make a bet. If he won, he would
|
||||
confirm the transaction. If he lost, he would create a transaction
|
||||
returning the bitcoins to himself and confirm that, invalidating the
|
||||
transaction that lost the bet.
|
||||
|
||||
By doing so, he gained bitcoins from his winning bets without losing
|
||||
bitcoins on his losing bets.
|
||||
|
||||
Although this attack was performed on unconfirmed transactions, the
|
||||
attacker had enough hash rate (about 30%) to have profited from
|
||||
attacking transactions with one, two, or even more confirmations.
|
||||
|
||||
**Learn more:** [GHash.IO and double-spending against BetCoin
|
||||
Dice][ghash betcoin double spend]
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Note that although all programs---including Bitcoin Core---are
|
||||
vulnerable to chain rewrites, Bitcoin provides a defense mechanism: the
|
||||
more confirmations your transactions have, the safer you are. *There is
|
||||
no known decentralized defense better than that.*
|
||||
|
||||
|
||||
## Help Protect Decentralization
|
||||
|
||||
{% comment %}<!-- 1231006505 is the time in block 0; 31558149 is the average number of seconds in a year -->{% endcomment %}
|
||||
{% capture bitcoin_age %}{{ site.time | date: "%s" | minus: "1231006505" | divided_by: "31558149" }}{% endcapture %}
|
||||
|
||||
The bitcoin currency only works when people accept bitcoins in exchange
|
||||
for other valuable things. That means it's the people accepting
|
||||
bitcoins who give it value and who get to decide how Bitcoin should work.
|
||||
|
||||
When you accept bitcoins, you have the power to enforce Bitcoin's rules,
|
||||
such as preventing confiscation of any person's bitcoins without access
|
||||
to that person's private keys.
|
||||
|
||||
Unfortunately, **many users outsource their enforcement power**. This
|
||||
leaves Bitcoin's decentralization in a weakened state where a handful of
|
||||
miners can collude with a handful of banks and free services to change
|
||||
Bitcoin's rules for all those non-verifying users who outsourced their power.
|
||||
|
||||
<table class="received_transactions center">
|
||||
<tr>
|
||||
<td class="center" markdown="span">*Users of Bitcoin banks*<br
|
||||
>**Trust bankers**{:.fgred}</td>
|
||||
|
||||
<td class="center" markdown="span">*Users of P2P lightweight wallets*<br
|
||||
>**Trust miners**{:.fgred}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="center" markdown="span">*Users of client lightweight wallets*<br
|
||||
> **Trust "free" services**{:.fgred}</td>
|
||||
|
||||
<td class="center" markdown="span">*Users of Bitcoin Core*<br
|
||||
>**Enforce the rules**{:.fggreen}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Unlike other wallets, **Bitcoin Core *does* enforce the rules**---so
|
||||
if the miners and banks change the rules for their non-verifying
|
||||
users, those users will be unable to pay full validation Bitcoin Core
|
||||
users like you.
|
||||
|
||||
As long as there are many non-verifying users who want to be able to
|
||||
pay Bitcoin Core users, miners and others know they can't effectively
|
||||
change Bitcoin's rules.
|
||||
|
||||
But what if not enough non-verifying users care about paying Bitcoin
|
||||
Core users? Then it becomes easy for miners and banks to take control of
|
||||
Bitcoin, likely bringing to an end this {{bitcoin_age}} year experiment
|
||||
in decentralized currency.
|
||||
|
||||

|
||||
|
||||
If you think **Bitcoin should remain decentralized,** the best thing you
|
||||
can do is [validate every payment you receive](#do-you-validate) using your own personal
|
||||
full node such as Bitcoin Core.
|
||||
|
||||
We don't know how many full validation users and business are needed,
|
||||
but it's possible that for each person or business who validates their
|
||||
own transactions, Bitcoin can remain decentralized even if there are ten
|
||||
or a hundred other non-verifying users. If this is the case, **your
|
||||
small contribution can have a large impact** towards keeping Bitcoin
|
||||
decentralized.
|
||||
|
||||
## Do You Validate Your Transactions? {#do-you-validate}
|
||||
|
||||
Some people confuse [supporting the network][bcc network support] with
|
||||
helping to [protect Bitcoin's decentralization][bcc validation
|
||||
decentralization].
|
||||
|
||||
To [improve your security][bcc validation protection] and help
|
||||
protect decentralization, you must use a wallet that fully validates
|
||||
received transactions. There are three ways to do that with Bitcoin
|
||||
Core right now:
|
||||
|
||||
1. **Use the built-in wallet's graphical mode.** If you request payment
|
||||
using the following screen in Bitcoin Core, your received
|
||||
transactions will be fully validated.
|
||||
|
||||

|
||||
|
||||
2. **Use Bitcoin Core as a trusted peer for certain lightweight
|
||||
wallets.** Learn more on the [user interface][bcc user interface
|
||||
lightweight] page. If you use a secure connection to your personal
|
||||
trusted peer *every time* you use the wallet, your received
|
||||
transactions will be fully validated.
|
||||
|
||||
3. **Use the built-in wallet's CLI/API interface.** This is meant for
|
||||
power users, businesses, and programmers. The [user interface][bcc
|
||||
user interface] page provides an overview, the [installation
|
||||
instructions][bandwidth sharing guide] can help you get started, and
|
||||
the [RPC][]/[REST][] documentation can help you find specific
|
||||
commands. If you're using [`getnewaddress`][rpc getnewaddress] to
|
||||
create receiving addresses, your received transactions will be fully
|
||||
validated.
|
||||
|
||||
If you have any questions, please ask on the [forums][bcc forums] or
|
||||
[chatrooms][bcc live help].
|
||||
|
||||
|
||||
|
||||
<br class="clear big">
|
||||
<div class="prevnext">
|
||||
<span markdown="1">**Previous Feature**<br>[Feature Overview][bcc main]</span>
|
||||
<span markdown="1">**Next feature**<br>[Privacy][bcc privacy]</span>
|
||||
</div>
|
||||
<br class="clear">
|
||||
|
||||
|
||||
<div class="not-displayed">
|
||||
<div id="bitcoin_banks" title="Bitcoin Banks" markdown="block">
|
||||
**Bitcoin banks and exchanges** are organizations that control your
|
||||
bitcoins on your behalf similar to the way traditional banks control
|
||||
your fiat deposits on your behalf.
|
||||
</div>
|
||||
|
||||
<div id="spv_wallets" title="SPV Wallets" markdown="block">
|
||||
**Simplified Payment Verification (SPV)** wallets are lightweight
|
||||
wallets that can verify whether or not a transaction is part of a block
|
||||
without downloading the {{site.text.chain_gb}} GB block chain. However,
|
||||
they cannot verify whether or not the transaction is actually valid.
|
||||
(Only full validation nodes like Bitcoin Core can do that.)
|
||||
|
||||
Honest miners who only create blocks with valid transactions currently
|
||||
receive a {{site.text.subsidy_in_decimal_bitcoins}} bitcoin subsidy.
|
||||
Dishonest miners who create blocks with invalid transactions don't
|
||||
receive that subsidy, but they might still attempt to trick SPV
|
||||
wallets if they can steal more bitcoins than they would make honestly (or
|
||||
steal any amount of bitcoins from people they don't like).
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include references.md %}
|
Loading…
Add table
Add a link
Reference in a new issue