When are we going to get a pluggable policy architecture for Core?
Evidently there is a fundamental distinction between features which are:
"consensus": eg, block size (because it gets written to the block chain)
"policy": eg, RBF (because it "only" affects the queuing / relaying of transactions in the mempool, before they are written to the block chain)
This seems to suggest that things which are "policy"-level are optional, since they do not require "consensus". Are there other policy-level features for Bitcoin which could be implemented as plugins? One example might be HD - Hierarchical Deterministic wallets. There is BIP 32 for HD, plus Armory has a different implementation of HD. HD the magic that supports cold storage, and which also allows you to backup a wallet only once - since the "root" key contains the "seed" to generate all possible future private keys for that wallet. Since generating private keys doesn't affect how blocks are appended to the block chain, HD is apparently "policy" level, not "consensus" level, and thus could presumably also be implemented as a plug-in. It seems strange that 6 years later, HD isn't available in Core yet - not as a plugin, and not as a monolithic merge either. There are other important upgrades to Bitcoin which might also be implementable as Core plugins: for instance:
IBLT (Inverse Bloom Lookup Tables) and Thin Blocks - both of which are techniques for "compressing" the amount of data to be propagated on the network, and thus possible scaling techniques.
BIP 38 - passphrase protected private keys
probably many other BIPs out there
My overall questions are: (1) What are the priorities of the "Core" developers (whether hired by Blockstream or not)? (2) Is there any interest in providing modularization / a policy plugin architecture for Core? (3) How easy / hard is it to modularize C/C++ code? Are there any Core devs who are good at modularizing C/C++ code? If not, could some be found and given commit rights? (4) If a controversial "monolithic upgrade to Core" such as RBF were packaged as an optional "policy plugin", would this allow for a more smooth and less controversial adoption by the Bitcoin community? (5) How many weeks would it take an expert cryptographer like Adam Back to implement HD as a policy plugin? (6) Who decides what guys like Adam Back work on nowadays, and what is the decision-making process and incentives? (7) If Blockstream isn't heading in the direction of providing a pluggable policy architecture for Core, what does this say about their goals and strategies? (8) How many existing BIPs out there could be implemented as policy plugins, to allow the community to decide which ones they want to use? (9) How typical is it for an open-source project of this magnitude to lack a plugin architecture 6 years into its life cycle? (10) What is the track record for success for open-source software projects that evolve a plugin architecture, versus ones which don't?
Yesterday, I made a post after having a transaction fail to be accepted into the blockchain. This morning, I attempted the transaction again to the same address—this time with a fee. This is also still unconfirmed now for over 12 hours. Here is the address I am attempting to fund: 1HswqbS6swTMarPh6QwQme9QmBA12cwoMp Some factors I think could be affecting this:
I created this address as a paper wallet test using bitaddress.org (on a non-persistent volume with no net access, of course!)
I first sent 0.1 with no fee. This was the transaction that showed up but later disappeared from the blockchain
Shortly after sending the 0.1, I attempted to sweep the funds from the address into my primary Armory wallet. I want to make sure this works before putting a higher amount on another paper wallet I intend to cold-store.
Armory told me there were no funds to sweep. This makes sense, as the only transaction sent to that address hadn't been accepted, yet. (I don't have a lot of experience with this)
This morning, I tried to send 0.1 again. Again, it showed in the blockchain, but it still hasn't been confirmed. I included a small fee with this transaction of 0.00001. I now know that this is probably less than I should include for it to be processed. txid: f76fc3ae50f383c8aacb989338054d625443fec06fd44d3bb380693c2ad6d5ee
About an hour ago, I attempted to send 0.1 again to the same address with a fee of 0.00014. This was immediately flagged as unlikely to be accepted by Armory. I haven't seen it show up in the blockchain, and I can't even find the transaction in Armory now to search or post the txid.
A little while later, I again attempted to send 0.1 with a fee of .0002. Same result.
I see transactions on blockchain coming in with 0.0001, 0.00014, 0.0000518, etc. Why are these being accepted but mine are not? I have successfully sent some transactions in the past but never had this sort of trouble when including fees similar to what I have included recently. Can someone recommend some next steps to get back on track? I really just want to fund a paper wallet to keep some BTC in cold storage. TLDR: I keep trying to send bitcoins to an address, but my transactions are not even being accepted anymore—even when including what I think are sufficient fees. edit: make more legible
Cold Storage - What do you think of my easier option?
So I was reading this post and thinking to myself "Holy crap, that's a painful way to manage cold storage." I get that you only have to do that to move things in and out of your cold storage. A summary of that method (as I understand it): (leaving out some details he implemented to save memory.)
Create a pendrive Linux install to use Armory as an offline wallet on your main computer.
Monitor your address using an Armory watch-only address.
Create backups by some method: paper, write down a brain wallet seed.
Send BTC to that offline wallet by normal methods.
To spend from that wallet, reboot into the partition, create an output using Armory. Then paste the raw signed transaction into blockchain.info to actually initiate any transactions.
Sign the output using brain wallet.
This seems not only really painful to me, but not really that much more secure than just using a normal brainwallet.org approach. You are essentially just using the pendrive Linux install to keep track of your outputs and an encrypted copy of your addresses/keys (although since you have the brain wallet key elsewhere the keys are really stored elsewhere as well). And it seems like overkill to have to reboot just to manage an encrypted list of outputs. So what I have done instead for cold storage:
First, let me say that I don't keep everything in cold storage. For everyday use, I use traditional wallets (I've switched several times ranging from online to the standard client to advanced clients). I only keep small amounts there, but it means that I only deal with cold storage for amounts greater than 1 BTC.
Generate a handful of bulk addresses using bitaddress. Copy and paste these addresses into a 1Password secure note. (I use 1Password, but could use any application you trust, even gpg. Or, for a a true offline wallet, you could encrypt the files on a pendrive.) The point being that you are managing your "wallet" manually, just using standard encryption tools to prevent anyone from stealing the information.
Create a backup appropriate to your level of paranoia and the amount you have. Ranging from just a backup pendrive, to a backup pendrive in a safe deposit box, to a backup pendrive in a safe deposit box along with a paper copy of the wallet (in case the passphrase is lost), or if you are really into crypto split up the passphrase using ssss.
Copy and paste the addresses into a blockchain.info wallet as watch only addresses.
Send funds to those addresses using normal methods.
Spend funds from those cold storage addresses by unencrypting the list of addresses whereever they are and pasting one of the private keys into blockchain.info. That one address is now moved out of cold storage and can be spent normally. If you have extra BTC that you want to move back into cold storage, just spend it into one of your watch only addresses that you haven't unlocked yet.
Why I like this:
Uses standard encryption tools to ensure security. You can be as paranoid as you want, and you don't have to worry about any exploits in any wallet software you use. (Of course there could be an exploit in 1Password, gpg, whatever, but those tools are well tested and if there is a problem in gpg then everything we know about encryption is moot anyway.)
Backups are no more vulnerable than the main copy.
The online wallet does all of the work of tracking the outputs and managing the balances.
If the online wallet is compromised, you lose nothing. There are no private keys on the online wallet for any of your cold storage accounts. The only thing you lose is that the attacker knows which addresses you own.
If the online wallet goes out of business, you lose nothing. You have copies of both the addresses and the private keys in a secure location and could regenerate the accounts anywhere: in either a client side or online wallet. (The same is true if the online wallet is temporarily unavailable.)
I think we often forget that wallets are actually pretty simple things. They keep track of outputs (and therefore balances), addresses, private keys. A full fledged client is complicated because it is keeping track of the entire blockchain. But if we just want somewhere safe to keep BTC, all you really have to have secure is the addresses and the private keys. Known vulnerabilities (and fixes): This approach isn't truly offline and therefore the one downfall I am aware of for this approach is a keylogger. If someone can get the passphrase to your encryption software they can get at everything. If this vulnerability concerns you, you can make it truly offline by just generating the list of addresses (on an offline partition if you are truly paranoid) in a purely paper form. You can QR scan the addresses into blockchain.info's wallet and QR scan the private keys as needed. I still think that this approach may be easier than the original poster. Frankly this one vulnerability doesn't concern me as if they can break the encryption to my 1Password account they also have all of my bank account information and that is currently more valuable. My primary concerns are (that this approach resolves):
An online wallet being compromised and an attacker getting my private keys.
An online wallet being DDoS'd or going out of business and no longer having access to my addresses/keys.
A vulnerability in a client-side wallet I own giving an attacker access to my keys.
A vulnerability in any other software I run giving an attacker access to my filesystem where I keep my keys/wallet.
So this semi-cold storage where there are no services that know my keys attached to the internet, and the keys only exist on my internet attached device in encrypted files (on removable storage), works for me.
Armory is a open-source Bitcoin client with cold storage and Multi-signature support. It is the one of the most secure Bitcoin wallets and Armory Bitcoin client is available for Ubuntu repositories which can be downloaded from the Armory website and Ubuntu Software Centre. Apart from being safe and secure it also has support for many wallets. Features: Open Source. Armory is an open-source ... Interview with Andy O'Fiesh on Bitcoin cold storage. Trace Mayer: BTCK, Episode 101. This is all about wallets, Class 201. We have with us Andy O’Fiesh. He is senior developer at Armory which is the developer of the Bitcoin Armory wallet. Welcome to the show, Andy. Andy O’Fiesh: Thanks, Trace. Glad to talk to you. Trace Mayer: So in the previous episode, episode 100, we had talked about ... Digital money that’s instant, private, and free from bank fees. Download our official wallet app and start using Bitcoin today. Read news, start mining, and buy BTC or BCH. Armory is another Bitcoin-only wallet developed by an experienced team of developers and is a open-source software. It is a heavy wallet, meaning one needs to download the full blockchain and set-up a full node to use the Armory wallet. But it has many benefits too, for example, you need not trust any other listening nodes and can self-verify many things by yourself. One can also create cold ... It keeps track of all of the Bitcoin that you have sent and received and allows you to spend Bitcoin with ease. Armory’s primary focus is for absolute security. The cryptographic schemes were chosen for their robustness and resistance to attack. The ability to use airgapped storage and cold storage allow for the best security we could think ...
Bitcoin security? UGH!!! Bitcoin does so many things better than banks (trusts, escrows, programmable money, cheap transfers, instant accounts, etc.), but on... How to set up a cold storage (a.k.a. offline wallet) in Armory on Ubuntu 14.04. You will see: - How to install Armory on an offline computer. - How to set up... But the Bitcoin plan calls for the creation of only 21 million bitcoins. In this way, Bitcoin will try to avoid the pitfalls of modern fiat currencies such as inflation, deflation, market ... Bitcoin Cold Storage With Old Cell Phones - Duration: 14:12. ... How to make an offline bitcoin wallet using Armory - Duration: 14:55. TheMetaTainment 38,216 views. 14:55. Best Cryptocurrency ... Setting up cold storage in Armory on Ubuntu 14.04 - Duration: 27:01. Bitcoin Beginner 6,367 views. 27:01. Bitcoin mining with Bitmain Antminer S9 - how to get started? - Duration: 8:21. Power ...