bip174 psbt - How to create unsigned tx in a watch-only ...

By request: How to signal UASF, a guide for dummies

Request source

Forward

There are two methods of 'signaling UASF'.
  1. Add a uacomment to your bitcoin.conf file / launch arguments
  2. Run a UASF enforcing fork of bitcoin core software.
Option 1 is the equivilant to the guy that says "Yea! I love that Hillary gal. She's got bitchin tits!" and then doesn't go to vote come election day. Option 2 is the person who goes to vote on election day and casts a valid ballot for all elections valid that day. This guide assumes that you want to do option 2 because option 1 is more or less pointless.
It is worth noting, you will NOT need to re-download the blockchain when you switch from the Core client to the UASF client.
Also, I am going to assume the 'dummies' are all using Windows. If you'd like me to expand to linux as well, let me know...I just don't imagine there are many (any?) dummies on linux.

Guide

  1. Go to https://uasf.bitcoinreminder.com/ reference
  2. Download the correct version for your operating system (32-bit will work on 64-bit windows; 64-bit will NOT work on 32-bit windows. When in doubt, just get 32-bit. If you're on linux, you probably already know which 'bit' your OS is...if not...God help you.) I will assume you downloaded the file to C:\Users\\Downloads
  3. Click on the Start button
  4. type 'cmd' (no quotes)
  5. cd Downloads
  6. certUtil -hashfile bitcoin-0.14.1-bip148_segwit0.3-win32-setup-unsigned.exe SHA256
  7. Compare the output to this and this.
  8. If the hashes match, install the software. See (Hash verification explained) section below if you are unsure what/how to do that.
  9. Start your node. Congrats, so long as it is running, you are supporting UASF!
Obviously, if you go with the .zip version instead of the .exe, use the correct corresponding hash value in the file of hashes I linked to. Same if you use the 64-bit version instead of the 32bit version.

Hash verification explained

Since step 7 might be a bit confusing, here is what I got on my system:
C:\Users\Kingdud\Downloads>certUtil -hashfile bitcoin-0.14.1-bip148_segwit0.3-win32-setup-unsigned.exe SHA256 SHA256 hash of file bitcoin-0.14.1-bip148_segwit0.3-win32-setup-unsigned.exe: fc 28 b3 6f f7 51 09 f0 6e 3d 14 9f 45 2f da 21 3e c4 0c 37 83 d8 27 3a 6b ee b2 24 89 61 1c a9 CertUtil: -hashfile command completed successfully. 
Well, from the two links I know I should get:
*from luke-jr* fc28b36ff75109f06e3d149f452fda213ec40c3783d8273a6beeb22489611ca9 bitcoin-0.14.1-win32-setup-unsigned.exe *from laanwj* fc28b36ff75109f06e3d149f452fda213ec40c3783d8273a6beeb22489611ca9 bitcoin-0.14.1-win32-setup-unsigned.exe 
And, when you take out the spaces, what I actually got was:
fc28b36ff75109f06e3d149f452fda213ec40c3783d8273a6beeb22489611ca9
The bit at the end (bitcoin-0.14.1-win32-setup-unsigned.exe) is just the filename to tell you which file that hash corresponds to, so the fact that I got the same hash as both luke-jr and laanwj got means I have a 'safe' build (one that is not corrupted/tampered with/otherwise 'wrong').

Final Words

It's that simple. Cheers.
submitted by Kingdud to Bitcoin [link] [comments]

Bitcoin source programming problem. What is " std::vector(1.0) " ?

Where is "PUBKEY_ADDRESS", "PUBKEY_ADDRESS_TEST" variables moved to? Originally they were at src/base58.h
But at recent bitcoin source code, I found similar at chainparams.cpp
Now it says,
base58Prefixes[PUBKEY_ADDRESS] = std::vector(1,0);
At this, what is " std::vector(1.0) " ?
Originally this was just number based on https://en.bitcoin.it/wiki/List_of_address_prefixes
Why simple code changed to more difficult?
submitted by wsxdrfv to Bitcoin [link] [comments]

Bitcoin source programming problem. What is " std::vector(1.0) " ? /r/Bitcoin

Bitcoin source programming problem. What is (1.0) " ? /Bitcoin" title="Bitcoin source programming problem. What is " std::vector(1.0) " ? /Bitcoin" /> submitted by HiIAMCaptainObvious to BitcoinAll [link] [comments]

More fun with OP_HODL (CheckLockTimeVerify)

Last week I wrote a post with a script to create a HODL address. A HODL address is a UTXO that cannot be spent until a certain epoch time or blocktime. It can be used to secure funds in a will or trust that has a designated maturity date. Or you may have some other reason to lock the funds, the point is that the UTXO can be physically verified to be funded, and under an unbreakable timelock.
I've liked the feature but have been frustrated that there is limited HW and SW wallet support for it presently. My previous post walked through how to make a segwit HODL UTXO, this post will detail how to make a BIP16 legacy P2SH HODL UTXO.
Similar to last week, I wrote a bitcoinlib script to do it, but this week I also went through the steps to do it on the CoinBin wallet. CoinBin is a JavaScript wallet that can (and should) be run locally. CoinBin, or raw python (bitcoinlib) are the only ways I currently know of to spend a HODL address.
Here's the basic rundown to create and fund your UTXO with CoinBin
  1. Use either Electrum or Bitcoin Core to collect a Bitcoin public and private key.
  2. Run the CoinBin app either locally (best option) or through the live site
  3. Choose New -> Time Locked Address
  4. Enter the public key (from #1) and either a block height or timestamp for your lock
  5. Hit Submit and record the address and redeem script
  6. Ensure you have accurately recorded everything in step #1 and step #5
  7. Send funds to the address recorded in step 5 as you normally would.
Here's the basic rundown on how to spend your UTXO with CoinBin
  1. Use either Electrum or Bitcoin Core to collect an address to spend your UTXO to
  2. Run the CoinBin app either locally (best option) or through the live site
  3. Choose New -> Transaction
  4. Enter the Redeem Script you copied in the creation process (step #5), then Load
  5. After a few minutes it should automatically load your UTXO into the form
  6. Enter the address you want to spend your UTXO to and adjust the output amount for fees
  7. Hit the question mark next to Transaction Fee for the calculator
  8. Hit Submit when satisfied and record the unsigned transaction data
  9. Select Sign on the top nav bar to begin the signing operation
  10. Enter your private key from the creation process (step #1) and the unsigned TXN
  11. Select Submit to produce the signed TXN
  12. Broadcast the signed TXN with either Electrum or Bitcoin Core
Note, if you try to broadcast before the UTXO's timelock expires, you will get a terse not final error in either Electrum or Core.
For Extra Credit, CoinBin can also be run against Testnet, but to do so you have to unhide the settings element, manually code the TXN input script and manually code the TXN nLockTime to sync with your HODL address.
Here are a Testnet and Mainnet HODL spend TXN I created in CoinBin * Mainnet: txid ea6a1...79d53 * Testnet: txid a8110...adc93
submitted by brianddk to Bitcoin [link] [comments]

Can PSBTs with unique signed inputs be combined together? How?

I know Bitcoin Core and Electrum will allow my to joinpsbts to create a PSBT with the inputs and outputs of both. They also allow me to combinepsbt to take two PSBTs with the same inputs and outputs and combine signature data.
But is there a way for me to take two PSBTs with SINGLE|ANYONECANPAY signed inputs and combine the inputs and outputs into one PSBT? The SINGLE|ANYONECANPAY sighash would seem to make this possible, I just didn't see this workflow covered anywhere in BIP-174
If Core or Electrum don't support it, is there a python library that might?

Update #2

Was able to cobble something together off of electrum with some ugly python. Here's essentially what I have:
``` from electrum.transaction import PartialTransaction
def dont_remove_signatures(): pass
signed_psbt = "cHNid...AAAIAA" unsigned_psbt = "cHNid...AAAAAA"
pj = PartialTransaction.from_raw_psbt(signed_psbt) pj.remove_signatures = dont_remove_signatures pj.join_with_other_psbt(PartialTransaction.from_raw_psbt(unsigned_psbt)) print(pj.serialize()) ```

Update #1

Did some digging and both Core and Electrum drop sig-data on join / combine operations by design, though this is not strictly required from the spec.

Spec:

In general, the result of a Combiner combining two PSBTs from independent participants A and B should be functionally equivalent to a result obtained from processing the original PSBT by A and then B in a sequence. Or, for participants performing fA(psbt) and fB(psbt): Combine(fA(psbt), fB(psbt)) == fA(fB(psbt)) == fB(fA(psbt))
source
Or as I interpret that...
Sign(Combine(pbstA, pbstB)) == Combine(Sign(pbstA), Sign(pbstB))
But this is not the case.

Core:

joinpsbts merges multiple distinct PSBTs into a single PSBT. The multiple PSBTs must have different inputs. The resulting PSBT will contain every input and output from all of the PSBTs. Any signatures provided in any of the PSBTs will be dropped*.
source

Electrum:

def join_with_other_psbt(self, other_tx: 'PartialTransaction') -> None: """Adds inputs and outputs from other_tx into this one.""" ... self.remove_signatures()
source
submitted by brianddk to Bitcoin [link] [comments]

BCHN vs ABC in numbers : there's a clear winner.

I've breakdown the data in Four sets : pool support, companies/organisations support, infrastructure, futures price. I’ll update the data based on your comments - as I probably forgot some key players - so it is the most accurate !
.
MINERS SUPPORT :
Pools signaling BCHN : BTC.top : https://www.reddit.com/btc/comments/icgm21/its_over_btctop_saying_no_ifp_is_the_nail_in/
Bitcoin.com : https://www.reddit.com/btc/comments/ibxlok/bitcoincom_recommended_node_implementation_fo
Binance : https://www.reddit.com/btc/comments/ib7lq8/binance_pool_is_now_signalling_powered_by_bchn/
Huobi : https://www.reddit.com/btc/comments/ic4pnu/huobi_just_signaled_poweredbybchn/
P2Pool : https://www.reddit.com/btc/comments/ib9fzs/p2pool_just_mined_a_bchn_block/
Hashpipe : https://www.reddit.com/btc/comments/ianjrf/new_mining_pool_hashpipe_takes_stand_against/
Easy2mine : https://www.reddit.com/btc/comments/i7xn9w/easy2mine_is_now_signaling_for_bchn/
Viabtc* : https://www.reddit.com/btc/comments/i7xn9w/easy2mine_is_now_signaling_for_bchn/
Okex : https://www.reddit.com/btc/comments/idzs24/okex_now_signaling_for_bchn_estimated_67_of_hash/
Pools signaling ABC :
Viabtc* : https://www.reddit.com/btc/comments/i7xn9w/easy2mine_is_now_signaling_for_bchn/
Conclusion :
BCHN hash signaled : Around 64%
ABC hash signaled : Around 5%
Hash unsignaled : Around 31% (mainly Jihan Wu with Antpool & btc.com pools)
*ViaBTC said they were going to support the 2 implementations and once asked to clarify, stated that ABC would be the default implementation for the miners in their pool (I divided the hashrate by 2 regarding Viabtc to obtain the hash signaled numbers).
.
COMPANIES/ORGANISATIONS SUPPORT :
Companies/organisations signaling BCHN :
All other node implementations : BU, BCHD, Bitcoin Verde, Knuth : https://www.reddit.com/btc/comments/i47xji/this_is_a_golden_opportunity_for_bchn_bu_bchd/
Readcash : https://www.reddit.com/btc/comments/ifio6n/readcash_will_support_bchnbchd_side_of_the_split/
Membercash : https://www.reddit.com/btc/comments/ifl3fl/membercash_will_stick_with_the_bchn_compatible/
Mainnet : https://www.reddit.com/btc/comments/i4y76a/warning_mainnet_will_support_bchnside_only_if_you/
Bitcoin.com : https://www.reddit.com/btc/comments/i76ab0/to_our_customers_regarding_the_bitcoin_cash/
SLP foundation : https://read.cash/@SLP-Foundation/simple-ledger-protocols-joint-statement-regarding-bitcoin-abc-on-bchs-november-2020-upgrade-3ba8d706
Coinex** : https://twitter.com/yhaiyang/status/1297377355602653189
Lazyfox : https://www.reddit.com/btc/comments/ifp6c8/bchn_vs_abc_in_numbers_theres_a_clear_winneg2ozj9w/
Companies/organisations signaling ABC :
Coinex** : https://twitter.com/yhaiyang/status/1297377355602653189
**Haipo Yang stated that he would support both coins.
Conclusion :
BCHN : More than 10 companies/organisations
ABC : 1 company
.
INFRASTRUCTURE :
BCHN :
fulcrum (electrum server that electron and others depend on)
electrs (electrum server that electron and others depend on)
crescent wallet
bitcoincashj
all electrum servers for electron
cash accounts infrastructure
infrastructure run by im_uname
slp infrastructure
General Protocols' BCH Price Oracle, smart contract redemption services
Electrum Cash
Fullstack.cash
HonkHonk : https://twitter.com/realhonktoken/status/1298095753789943808
ABC :
Cointext
Fullstack.cash
Be.cash
.
FUTURES PRICE :
BCHN : 288$ https://coinflex.com/markets/BCH-USD-SWAP-LIN
ABC : 29$ https://coinflex.com/markets/BCHABC-USD-201225-LIN
submitted by verdun2003 to btc [link] [comments]

Taproot, CoinJoins, and Cross-Input Signature Aggregation

It is a very common misconception that the upcoming Taproot upgrade helps CoinJoin.
TLDR: The upcoming Taproot upgrade does not help equal-valued CoinJoin at all, though it potentially increases the privacy of other protocols, such as the Lightning Network, and escrow contract schemes.
If you want to learn more, read on!

Equal-valued CoinJoins

Let's start with equal-valued CoinJoins, the type JoinMarket and Wasabi use. What happens is that some number of participants agree on some common value all of them use. With JoinMarket the taker defines this value and pays the makers to agree to it, with Wasabi the server defines a value approximately 0.1 BTC.
Then, each participant provides inputs that they unilaterally control, totaling equal or greater than the common value. Typically since each input is unilaterally controlled, each input just requires a singlesig. Each participant also provides up to two addresses they control: one of these will be paid with the common value, while the other will be used for any extra value in the inputs they provided (i.e. the change output).
The participants then make a single transaction that spends all the provided inputs and pays out to the appropriate outputs. The inputs and outputs are shuffled in some secure manner. Then the unsigned transaction is distributed back to all participants.
Finally, each participant checks that the transaction spends the inputs it provided (and more importantly does not spend any other coins it might own that it did not provide for this CoinJoin!) and that the transaction pays out to the appropriate address(es) it controls. Once they have validated the transaction, they ratify it by signing for each of the inputs it provided.
Once every participant has provided signatures for all inputs it registered, the transaction is now completely signed and the CoinJoin transaction is now validly confirmable.
CoinJoin is a very simple and direct privacy boost, it requires no SCRIPTs, needs only singlesig, etc.

Privacy

Let's say we have two participants who have agreed on a common amount of 0.1 BTC. One provides a 0.105 coin as input, the other provides a 0.114 coin as input. This results in a CoinJoin with a 0.105 coin and a 0.114 coin as input, and outputs with 0.1, 0.005, 0.014, and 0.1 BTC.
Now obviously the 0.005 output came from the 0.105 input, and the 0.014 output came from the 0.114 input.
But the two 0.1 BTC outputs cannot be correlated with either input! There is no correlating information, since either output could have come from either input. That is how common CoinJoin implementations like Wasabi and JoinMarket gain privacy.

Banning CoinJoins

Unfortunately, large-scale CoinJoins like that made by Wasabi and JoinMarket are very obvious.
All you have to do is look for a transactions where, say, more than 3 outputs are the same equal value, and the number of inputs is equal or larger than the number of equal-valued outputs. Thus, it is trivial to identify equal-valued CoinJoins made by Wasabi and JoinMarket. You can even trivially differentiate them: Wasabi equal-valued CoinJoins are going to have a hundred or more inputs, with outputs that are in units of approximately 0.1 BTC, while JoinMarket CoinJoins have equal-valued outputs of less than a dozen (between 4 to 6 usually) and with the common value varying wildly from as low as 0.001 BTC to as high as a dozen BTC or more.
This has led to a number of anti-privacy exchanges to refuse to credit custodially-held accounts if the incoming deposit is within a few hops of an equal-valued CoinJoin, usually citing concerns about regulations. Crucially, the exchange continues to hold private keys for those "banned" deposits, and can still spend them, thus this is effectively a theft. If your exchange does this to you, you should report that exchange as stealing money from its customers. Not your keys not your coins.
Thus, CoinJoins represent a privacy tradeoff:

Taproot

Let's now briefly discuss that nice new shiny thing called Taproot.
Taproot includes two components:
This has some nice properties:

Taproot DOES NOT HELP CoinJoin

So let's review!
CoinJoin:
Taproot:
There is absolutely no overlap. Taproot helps things that CoinJoin does not use. CoinJoin uses things that Taproot does not improve.

B-but They Said!!

A lot of early reporting on Taproot claimed that Taproot benefits CoinJoin.
What they are confusing is that earlier drafts of Taproot included a feature called cross-input signature aggregation.
In current Bitcoin, every input, to be spent, has to be signed individually. With cross-input signature aggregation, all inputs that support this feature are signed with a single signature that covers all those inputs. So for example if you would spend two inputs, current Bitcoin requires a signature for each input, but with cross-input signature aggregation you can sign both of them with a single signature. This works even if the inputs have different public keys: two inputs with cross-input signature aggregation effectively define a 2-of-2 public key, and you can only sign for that input if you know the private keys for both inputs, or if you are cooperatively signing with somebody who knows the private key of the other input.
This helps CoinJoin costs. Since CoinJoins will have lots of inputs (each participant will provide at least one, and probably will provide more, and larger participant sets are better for more privacy in CoinJoin), if all of them enabled cross-input signature aggregation, such large CoinJoins can have only a single signature.
This complicates the signing process for CoinJoins (the signers now have to sign cooperatively) but it can be well worth it for the reduced signature size and onchain cost.
But note that the while cross-input signature aggregation improves the cost of CoinJoins, it does not improve the privacy! Equal-valued CoinJoins are still obvious and still readily bannable by privacy-hating exchanges. It does not improve the privacy of CoinJoin. Instead, see https://old.reddit.com/Bitcoin/comments/gqb3udesign_for_a_coinswap_implementation_fo

Why isn't cross-input signature aggregation in?

There's some fairly complex technical reasons why cross-input signature aggregation isn't in right now in the current Taproot proposal.
The primary reason was to reduce the technical complexity of Taproot, in the hope that it would be easier to convince users to activate (while support for Taproot is quite high, developers have become wary of being hopeful that new proposals will ever activate, given the previous difficulties with SegWit).
The main technical complexity here is that it interacts with future ways to extend Bitcoin.
The rest of this writeup assumes you already know about how Bitcoin SCRIPT works. If you don't understand how Bitcoin SCRIPT works at the low-level, then the TLDR is that cross-input signature aggregation complicates how to extend Bitcoin in the future, so it was deferred to let the develoeprs think more about it.
(this is how I understand it; perhaps pwuille or ajtowns can give a better summary.)
In detail, Taproot also introduces OP_SUCCESS opcodes. If you know about the OP_NOP opcodes already defined in current Bitcoin, well, OP_SUCCESS is basically "OP_NOP done right".
Now, OP_NOP is a do-nothing operation. It can be replaced in future versions of Bitcoin by having that operation check some condition, and then fail if the condition is not satisfied. For example, both OP_CHECKLOCKTIMEVERIFY and OP_CHECKSEQUENCEVERIFY were previously OP_NOP opcodes. Older nodes will see an OP_CHECKLOCKTIMEVERIFY and think it does nothing, but newer nodes will check if the nLockTime field has a correct specified value, and fail if the condition is not satisfied. Since most of the nodes on the network are using much newer versions of the node software, older nodes are protected from miners who try to misspend any OP_CHECKLOCKTIMEVERIFY/OP_CHECKSEQUENCEVERIFY, and those older nodes will still remain capable of synching with the rest of the network: a dedication to strict backward-compatibility necessary for a consensus system.
Softforks basically mean that a script that passes in the latest version must also be passing in all older versions. A script cannot be passing in newer versions but failing in older versions, because that would kick older nodes off the network (i.e. it would be a hardfork).
But OP_NOP is a very restricted way of adding opcodes. Opcodes that replace OP_NOP can only do one thing: check if some condition is true. They can't push new data on the stack, they can't pop items off the stack. For example, suppose instead of OP_CHECKLOCKTIMEVERIFY, we had added a OP_GETBLOCKHEIGHT opcode. This opcode would push the height of the blockchain on the stack. If this command replaced an older OP_NOP opcode, then a script like OP_GETBLOCKHEIGHT 650000 OP_EQUAL might pass in some future Bitcoin version, but older versions would see OP_NOP 650000 OP_EQUAL, which would fail because OP_EQUAL expects two items on the stack. So older versions will fail a SCRIPT that newer versions will pass, which is a hardfork and thus a backwards incompatibility.
OP_SUCCESS is different. Instead, old nodes, when parsing the SCRIPT, will see OP_SUCCESS, and, without executing the body, will consider the SCRIPT as passing. So, the OP_GETBLOCKHEIGHT 650000 OP_EQUAL example will now work: a future version of Bitcoin might pass it, and existing nodes that don't understand OP_GETBLOCKHEIGHT will se OP_SUCCESS 650000 OP_EQUAL, and will not execute the SCRIPT at all, instead passing it immediately. So a SCRIPT that might pass in newer versions will pass for older versions, which keeps the back-compatibility consensus that a softfork needs.
So how does OP_SUCCESS make things difficult for cross-input signatur aggregation? Well, one of the ways to ask for a signature to be verified is via the opcodes OP_CHECKSIGVERIFY. With cross-input signature aggregation, if a public key indicates it can be used for cross-input signature aggregation, instead of OP_CHECKSIGVERIFY actually requiring the signature on the stack, the stack will contain a dummy 0 value for the signature, and the public key is instead added to a "sum" public key (i.e. an n-of-n that is dynamically extended by one more pubkey for each OP_CHECKSIGVERIFY operation that executes) for the single signature that is verified later by the cross-input signature aggregation validation algorithm00.
The important part here is that the OP_CHECKSIGVERIFY has to execute, in order to add its public key to the set of public keys to be checked in the single signature.
But remember that an OP_SUCCESS prevents execution! As soon as the SCRIPT is parsed, if any opcode is OP_SUCCESS, that is considered as passing, without actually executing the SCRIPT, because the OP_SUCCESS could mean something completely different in newer versions and current versions should assume nothing about what it means. If the SCRIPT contains some OP_CHECKSIGVERIFY command in addition to an OP_SUCCESS, that command is not executed by current versions, and thus they cannot add any public keys given by OP_CHECKSIGVERIFY. Future versions also have to accept that: if they parsed an OP_SUCCESS command that has a new meaning in the future, and then execute an OP_CHECKSIGVERIFY in that SCRIPT, they cannot add the public key into the same "sum" public key that older nodes use, because older nodes cannot see them. This means that you might need more than one signature in the future, in the presence of an opcode that replaces some OP_SUCCESS.
Thus, because of the complexity of making cross-input signature aggregation work compatibly with future extensions to the protocol, cross-input signature aggregation was deferred.
submitted by almkglor to Bitcoin [link] [comments]

Windows / Linux Guide to using Trezor with Bitcoin Core (HWI)

This is a guide to using your Trezor with Bitcoin Core. It may seem like more trouble than it's worth but many applications use Bitcoin Core as a wallet such as LND, EPS, and JoinMarket. Learning how to integrate your Trezor into a Bitcoin Core install is rather useful in many unexpected ways. I did this all through the QT interfaces, but it's simple to script. There is a much simpler guide available from the HWI github, and the smallest Linux TLDR is here
Unfortunately, I don't have access to a Coldcard or Ledger. I'm not sure how the setpin or -stdinpass parameters are handled on that HW.

( A ) Install TrezorCTL, HWI, and build GUI

You only need to set the wallet up once, but may repeat to upgrade

( A.I ) Download extract and install HWI

  1. Download and isntall Python
  2. Download https://github.com/bitcoin-core/HWI/archive/1.1.2.zip
  3. Extract it to a working folder (assumes C:\User\Reddit\src\HWI)
  4. Change Directory (cd) to working folder cd "C:\User\Reddit\src\HWI"
  5. Setup venv python -m venv .venv
  6. Enter venv .venv\Scripts\activate.bat 1
  7. Install dependencies python -m pip install -U setuptools pip wheel
  8. Install TrezorCTL python -m pip install trezor[hidapi]
  9. Install HWI python -m pip install hwi pyside2
  10. Download github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z
  11. Extract MS64\dll\libusb-1.0.dll from the archive
  12. Copy to pywin copy libusb-1.0.dll .venv\Lib\site-packages\pywin32_system32\

( A.II ) Build the QT UI files

  1. Download and install MSYS2
  2. Launch a mingw64.exe shell
  3. CD to working folder cd "C:\User\Reddit\src\HWI"
  4. Enter venv source .venv/Scripts/activate 1
  5. Run UI build bash contrib/generate-ui.sh

( B ) Create a Trezor wallet in Bitcoin Core (testnet)

You only need to set the wallet up once, no private key data is stored, only xpub data

( B.I ) Retrieve keypool from HWI-QT

  1. Launch hwi-qt.exe --testnet (assuming testnet)
  2. Click Set passphrase (if needed) to cache your passphrase then click Refresh
  3. Select you trezor from the list then click Set Pin (if needed)
  4. Ensure your Trezor in the dropdown has a fingerprint
  5. Select Change keypool options and choose P2WPKH
  6. Copy all the text from the Keypool textbox

( B.II ) Create the wallet in Bitcoin QT

  1. Launch Bitcoin Core (testnet) (non-pruned) 2
  2. Select Console from the Window menu
  3. Create a wallet createwallet "hwi" true
  4. Ensure that hwi is selected in the console wallet dropdown
  5. Verify walletname using the getwalletinfo command
  6. Import keypool importmulti '' (note ' caging)
  7. Rescan if TXNs are missing rescanblockchain 3

( C.I ) Grab Tesnet coins

  1. Select the Receive tab in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Select Create new receiving address and copy address
  4. Google "bitcoin testnet faucet" and visit a few sites
  5. Answer captcha and input your addressed copied from C.I.3

( D ) Spending funds with HWI

This is how you can spend funds in your Trezor using Bitcoin Core (testnet)

( D.I ) Create an unsigned PSBT

  1. Select the Send tab in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Verify your balance in Watch-only balance
  4. Rescan if balance is wrong (see B.II.7) 3
  5. Craft your TXN as usual, then click Create Unsigned
  6. Copy the PSBT to your clipboard when prompted

( D.II ) Sign your PSBT

  1. In HWI-QT click Sign PSBT
  2. Paste what you copied in D.I.6 in PSBT to Sign field
  3. Click Sign PSBT
  4. Copy the text for PSBT Result

( D.III ) Broadcast your TXN

  1. Select the Console window in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Finalize PSBT: finalizepsbt
  4. Copy the signed TXN hex from the hex field returned
  5. Broadcast TXN: sendrawtransaction

Final Thoughts

I did this all through the GUI interfaces for the benefit of the Windows users. Windows console is fine, but the quote escaping in windows console is nightmarish. Powershell would be good, but that throws this on a whole another level for most Windows folks.
There is also the need to use HWI-QT due to a bug in blank passphrases on the commandline. You can work around it by toggling passphrase off or on, but again, it's more than I wanted to spell out.
Footnotes:
  • 1. - Later version of python put the activate script under 'bin' instead of 'Script'
  • 2. - You can run pruned, but you need to have a fresh wallet
  • 3. - Rescan is automatic on 'importmulti' but I was pruned so it was wierd
submitted by brianddk to Bitcoin [link] [comments]

Windows Guide to using Trezor with Bitcoin Core (HWI)

This is a guide to using your Trezor with Bitcoin Core. It may seem like more trouble than it's worth but many applications use Bitcoin Core as a wallet such as LND, EPS, and JoinMarket. Learning how to integrate your Trezor into a Bitcoin Core install is rather useful in many unexpected ways. I did this all through the QT interfaces, but it's simple to script. There is a much simpler guide available from the HWI github, and the smallest TLDR is here

( A ) Install TrezorCTL, HWI, and build GUI

You only need to set the wallet up once, but may repeat to upgrade

( A.I ) Download extract and install HWI

  1. Download and isntall Python
  2. Download https://github.com/bitcoin-core/HWI/archive/1.1.2.zip
  3. Extract it to a working folder (assumes C:\User\Reddit\src\HWI)
  4. Change Directory (cd) to working folder cd "C:\User\Reddit\src\HWI"
  5. Setup venv python -m venv .venv
  6. Enter venv .venv\Scripts\activate.bat 1
  7. Install dependencies python -m pip install -U setuptools pip wheel
  8. Install TrezorCTL python -m pip install trezor[hidapi]
  9. Install HWI python -m pip install hwi pyside2
  10. Download github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z
  11. Extract MS64\dll\libusb-1.0.dll from the archive
  12. Copy to pywin copy libusb-1.0.dll .venv\Lib\site-packages\pywin32_system32\

( A.II ) Build the QT UI files

  1. Download and install MSYS2
  2. Launch a mingw64.exe
  3. CD to working folder cd "C:\User\Reddit\src\HWI"
  4. Enter venv source .venv/Scripts/activate 1
  5. Run UI build bash contrib/generate-ui.sh

( B ) Create a Trezor wallet in Bitcoin Core (testnet)

You only need to set the wallet up once, no private key data is stored, only xpub data

( B.I ) Retrieve keypool from HWI-QT

  1. Launch hwi-qt.exe --testnet (assuming testnet)
  2. Click Set passphrase (if needed) to cache your passphrase then click Refresh
  3. Select you trezor from the list then click Set Pin (if needed)
  4. Ensure your Trezor in the dropdown has a fingerprint
  5. Select Change keypool options and choose P2WPKH
  6. Copy all the text from the Keypool textbox

( B.II ) Create the wallet in Bitcoin QT

  1. Launch Bitcoin Core (testnet) (non-pruned) 2
  2. Select Console from the Window menu
  3. Create a wallet createwallet "hwi" true
  4. Ensure that hwi is selected in the console wallet dropdown
  5. Verify walletname using the getwalletinfo command
  6. Import keypool importmulti '' (note ' caging)
  7. Rescan if TXNs are missing rescanblockchain 3

( C.I ) Grab Tesnet coins

  1. Select the Receive tab in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Select Create new receiving address and copy address
  4. Google "bitcoin testnet faucet" and visit a few sites
  5. Answer captcha and input your addressed copied from C.I.3

( D ) Spending funds with HWI

This is how you can spend funds in your Trezor using Bitcoin Core (testnet)

( D.I ) Create an unsigned PSBT

  1. Select the Send tab in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Verify your balance in Watch-only balance
  4. Rescan if balance is wrong (see B.II.7) 3
  5. Craft your TXN as usual, then click Create Unsigned
  6. Copy the PSBT to your clipboard when prompted

( D.II ) Sign your PSBT

  1. In HWI-QT click Sign PSBT
  2. Paste what you copied in D.I.6 in PSBT to Sign field
  3. Click Sign PSBT
  4. Copy the text for PSBT Result

( D.III ) Broadcast your TXN

  1. Select the Console window in Bitcoin Core (testnet)
  2. Ensure that the Wallet dropdown has hwi selected
  3. Finalize PSBT: finalizepsbt
  4. Copy the signed TXN hex from the hex field returned
  5. Broadcast TXN: sendrawtransaction

Final Thoughts

I did this all through the GUI interfaces for the benefit of the Windows users. Windows console is fine, but the quote escaping in windows console is nightmarish. Powershell would be good, but that throws this on a whole another level for most Windows folks.
There is also the need to use HWI-QT due to a bug in blank passphrases on the commandline. You can work around it by toggling passphrase off or on, but again, it's more than I wanted to spell out.
Footnotes:
  • 1. - Later version of python put the activate script under 'bin' instead of 'Script'
  • 2. - You can run pruned, but you need to have a fresh wallet
  • 3. - Rescan is automatic on 'importmulti' but I was pruned so it was wierd
submitted by brianddk to TREZOR [link] [comments]

Electrum unable to sign transaction properly

I'm new to using bitcoin and I'm trying to figure out a problem I've been having trying to broadcast a transaction with Electrum. Initially I was trying to send bitcoin using Electrum's built in "send" function, but kept receiving the error "scriptpubkey." After browsing other forums and seeing issues similar to what I was having, it seemed like people were saying that it was an issue with the server I was connected to. In some cases, people had to try 15-20 different servers before finally being able to send the transaction through.
I thought this was the probable cause of my situation as well so tried about 20 different servers but to no avail. Then I read about "pushing the raw hex transaction" (not sure if I am using the right lingo here) and decided to try that. I was able to make an offline transaction with Electrum and signed it, then obtained the hex code from the .txn file that was created.
I then tried to broadcast the hex code on blockchain.com/btc/pushtx, but I am still receiving the error " Code: -26, Error: scriptpubkey."
So after doing some more research it seems that my problem now is not that there was an issue with servers in Eluctrum, but rather my transactions are not being properly signed. So now I have a signed offline transaction that seems to be improperly signed by Electrum, and I am clueless as to how to correct this.
Is there a way to "unsign" the transaction and sign it again properly? How would I even go about doing that? I fear that I now have money locked up in this faulty transaction that I may not be able to recover. I have all my passwords and everything so I am confused why Electrum would not have signed it properly. I am very new to all this so I'm sure I could be missing something essential. Any advice on how to broadcast and complete my transaction would be much appreciated.
I am running the latest version of Electrum on a Windows 10 computer.

Thanks!
Edit: Latest version of Electrum being 4.0.2
Also, I suppose it is probably helpful to see the decoded transaction here:
{ "version": 2, "locktime": 644562, "ins": [ { "n": 50, "script": { "asm": "", "hex": "" }, "sequence": 4294967293, "txid": "9bc2e9464a58f7d8017fc332f064eb4faf2773daa3251d5194bb851f07afe8c5", "witness": [ "3044022066e5aa2f97647eb34377a1937dc6b7dcad81c652a23c2a5be20e07e2b1af39cf02207bc07ac253b4480c07c4b2d8494d6b18d98a4b17c4bf057468b81d95655f4aa101", "0319a1a5408ccbf7cba4d569bd14b779ded4bbedec040ab84fd9c88d79ab7410fe" ] }, { "n": 8, "script": { "asm": "", "hex": "" }, "sequence": 4294967293, "txid": "dc4e13e07f74b51e623669e2b6f05f7e6e7fa173c07ffcea73b9e84462e6e3c6", "witness": [ "3044022027822d6a6531fa3a4c2b3edfc189afdfad985ade643ebb208eb15174779400b102201db77e06d6158639ae320be5123a3effc00dff48eddf17c03c699334ea58d25a01", "031399274350b7f4888cc34ca1fa1fd915d8e90222026fc89c2d5d42574e0cf7eb" ] } ], "outs": [ { "script": { "addresses": [], "asm": "039135a7d4a9df8a21977f0765ea5667e931be9d1e1f7666d1e264ef539c2c2157", "hex": "21039135a7d4a9df8a21977f0765ea5667e931be9d1e1f7666d1e264ef539c2c2157" }, "value": 1208329 } ], "hash": "b2b8209b1c0e46cddb6ded0758fc8287a97e6b2bd1f88290c1d374b0bab4a6c8", "txid": "b2b8209b1c0e46cddb6ded0758fc8287a97e6b2bd1f88290c1d374b0bab4a6c8" } 

submitted by Arug_1 to Electrum [link] [comments]

Won't create PSBT with a single watch-only input?

I'm trying to do the walletcreatefundedpsbt thing in the console and/or push the Create Unsigned button on the spend tab.
This wallet was created with disable_private_keys = true and has a single imported watch-only address.
The (nonzero) address balance does show up on the bottom right of the send tab, but when I hit the "Use available balance" button it populates the send amount with zero.
When I try to do walletcreatefundedpsbt with the watch-only output as an input it says I have insufficient funds. ( I am setting includeWatching:true)
It's like it refuses to create a PSBT with the watch only funds.
Also, I noticed that the documentation describes the "change address" field as type "hex" which isn't right, right? Should be "str"?
4 options(json object, optional){ "changeAddress": "hex", (string, optional, default=pool address) The bitcoin address to receive the change
That is to say, the change address is not represented in hex here, correct?
Help?
Edit: Got it. It needed the script for the input.
importmulti the "desc" field resolved my issue.
submitted by moral_agent to BitcoinCore [link] [comments]

08-31 08:38 - '[quote] No. Tails forgets all data upon reboot. You have to have a paper/metal/brain-backup of the seed. / You import the master-PUBLIC-key into an online system, for example Electrum running on your Android phone or table...' by /u/Thanatos_1 removed from /r/Bitcoin within 667-677min

'''
does the “cold device” in these cold storage mechanisms essentially just hold your private key and your latest known balance?
No. Tails forgets all data upon reboot. You have to have a papemetal/brain-backup of the seed.
You import the master-PUBLIC-key into an online system, for example Electrum running on your Android phone or tablet. That system knows your balance, because it is online and can derive all addresses from the master-public-key. But it can't sign any transaction, because it doesn't have the seed.
If you want to spend, you create an unsigned transaction on the online-installation, transfer it to the offline system, check it, sign it, double check it, transfer the signed transaction to the online system and then broadcast it from there. Sounds more complicated than it is. Works really good with QR-codes.
Here are some old videos explaining the process. The software has changed slightly in the meantime, but the process should be made clear form watching that. The first video is now actually redundant, because Tails exists and you don't have to create your own Linux live system that has Electrum.
[link]1
[link]2
[link]3
'''
Context Link
Go1dfish undelete link
unreddit undelete link
Author: Thanatos_1
1: w*w.y*utu*e.***/watch*v=*9K3Co*QpzM 2: www**ou*u**.*om/watch*v*WK4JmfMCD*g 3: www.yo***be.com/*a*ch?v=*BVyF**6Z*c
Unknown links are censored to prevent spreading illicit content.
submitted by removalbot to removalbot [link] [comments]

08-31 07:38 - 'Did you read [this]? / You can do it by checking the public keys with another online device, (the lap top or your phone) install electrum on 2 devices (1 offline forever, and 1 online) the one online is used to watch the tran...' by /u/Saman93 removed from /r/Bitcoin within 479-489min

'''
Did you read [this]1 ?
You can do it by checking the public keys with another online device, (the lap top or your phone) install electrum on 2 devices (1 offline forever, and 1 online) the one online is used to watch the transactions and make unsigned transaction and the one offline to sign them
'''
Context Link
Go1dfish undelete link
unreddit undelete link
Author: Saman93
1: e*ec*rum.*eadthe*ocs*i*/en/lates***oldsto**ge*html
Unknown links are censored to prevent spreading illicit content.
submitted by removalbot to removalbot [link] [comments]

08-31 08:46 - 'The Tails system is eternally offline and it is never connected to anything, hostile or not. / I wouldn't bet, that plugging in a HW wallet into a hostile machine is a good idea. There are many attacks that you're still su...' by /u/Thanatos_1 removed from /r/Bitcoin within 681-691min

'''
The Tails system is eternally offline and it is never connected to anything, hostile or not.
I wouldn't bet, that plugging in a HW wallet into a hostile machine is a good idea. There are many attacks that you're still susceptible to. For example switching the recipient address in memory to the attackers. Or even more covert, changing the unsigned transaction, so that the change output gets sent to the attacker. All you see on the device is, that you're sending the right amount to the right address. But what you don't see, is that the change, which might be the bulk of your balance, goes to the attacker. Idk if current HW wallets with current firmware are still vulnerable to this, though.
'''
Context Link
Go1dfish undelete link
unreddit undelete link
Author: Thanatos_1
submitted by removalbot to removalbot [link] [comments]

Air-gapped z-addresses; Is ZecWallet an option?

I've heard of Zcash for a while, but it wasn't until recently that I tried my hand playing around with the daemon and wallets.
Obviously, there's no point in using ZEC if you're only using t-addresses, but my desire for a z-address capable wallet certainly narrows the choice of wallets available to me.
Running a full node is no problem for me; I'd like to take advantage of a GUI if possible though. For that reason, I am drawn to ZecWallet's full node version. But I'm still uneasy when it comes to key security. (Can anyone share their experience with the ZecWallet paper wallet generator?)
From what I gather there is no wallet with HD support for t-addresses, is that right? Not much of a concern for me because I am interested in the shielded pool. I just figured t-addresses would support Electrum-style seeds but apparently not?
Sapling addresses seem to be exactly what I want; in particular I am drawn to their reusability and ability to export the view key. I was hoping this would ease the process of securing and backing up my private keys.
Here's my key handling protocol I use for Monero:
1) Generate the wallet on an air-gapped machine
2) This gives you a mnemonic seed. I write that down and keep it as an analog backup. By using a passphrase in conjunction with the seed, I can effectively encrypt this paper wallet easily.
3) Export the private view key and address to an online machine and make a watch-only wallet. This lets my watching wallet see incoming transactions
4) When outputs are received, I have to export the list of outputs to the air-gapped machine. The air-gapped machine uses this data to make signed key images.
5) I export the key images back to the watching wallet. At this point, the watching wallet can see outgoing transactions.
6) Now I can create unsigned transactions with the watching wallet, sign them in the air-gapped machine, and transmit them via the watching wallet using my full node.
The major benefit of using Monero in this way is that I only have to make a human-readable backup of my wallet once and I'm set for life.
Obviously, Zcash is going to be a little bit different. Since the core client doesn't give us mnemonic seed phrases, that complicates backup a little bit. What's the best way to back up ZEC? If I keep an up-to-date backup of my wallet.dat is that all I need? Is there an option in the wallet to encrypt this backup as well, or do I need to accomplish that externally with the likes of Veracrypt? I must admit the idea of unencrypted wallet data being written to my disk makes me uneasy.
I see that there is an option in zcash-cli to import/export the view key of Sapling addresses. However, I can't see the option to do so in ZecWallet, and when I do so manually via the CLI nothing seems to be reflected in ZecWallet.
Is ZecWallet by its very nature an obligatory hot wallet, or am I missing some functionality in the wallet?
My end goal is to run a ZEC full node on Qubes and hold my coins in z-addresses. Qubes allows me to make virtually air-gapped VMs to greatly simplify key management.
So for example when I use Bitcoin, I have a networked VM that runs a Bitcoind + Electrum Personal Server + Electrum Wallet stack, where I import my master public key. When I need to sign a transaction, I spin up a networkless VM equipped with Electrum and my private keys. Qrexec let's me easily ferry unsigned/signed transactions back and forth between the two VMs. Overall this provides a decent UX with above-average security and privacy. I'd like to port this general setup to Zcash.
To do so, I need a GUI wallet that supports both z-addresses and public/private key splitting. Does such a tool exist? (Can Electrum Personal Server be ported to ZEC?) If not, how can I streamline this process with the CLI?
I'm more familiar with Monero than Bitcoin, so the Zcash/Bitcoin CLIs are still a little foreign to me, though I am not "afraid" of CLI wallets in general. My Cryptonote muscle memory makes me prone to annoying little syntax errors I'd much rather do without.
My plan is to buy ZEC from Coinbase Pro, withdraw to a t-address, and then sweep my coins to a z-address. I want to monitor the balance of both t-addresses and z-addresses (and later send transactions) without ever exposing my private keys to the Internet.
However, it seems like the Zcash CLI is my only viable option for z-address watching wallets. Should I just play around on testnet until I get more familiar, or is there a GUI wallet solution out there that fits my needs? Does anyone have a cheat sheet for doing this via the CLI that could help me along the learning curve?
TL;DR New to Zcash, need advice as it relates to wallet backup, watching wallets, and z-addresses.
Assistance is much appreciated!
Edit: I don't suppose there's a way to use a Trezor Model T with a full node and or z-addresses?
submitted by spirtdica to zec [link] [comments]

Unable to keep elements preserved in a vector after a boolean "do while" loop

I'm going to give reddit a shot since I didn't receive any response from StackOverflow.
I am in a process of making a bitcoin managing program for an intro CS class and here are my objectives (only mentioned ones that I need in this context): I have managed to complete the following objectives. My program has 4 menu options stored in class menu. The user can choose from the following:
  1. Find current Bitcoin value in USD
  2. Buy/sell Bitcoin
  3. Print current balance
  4. Print history of transactions
Let's say the user selections option 2 and inputs how much user wants to sell or buy. The program will so far do the following:
Currently I am having trouble with the following step:
So far, I've tried creating a vector and I tried using push_back.() every time the function is called.
class ledger // the log of all transactions //1) It will store the transaction strings just so we have //a record of the buy sell commands //2) It will be able to print out the transaction history if requested { public: vector bitcoin; void bitcoinHistory(string bitcoinAmnt, string date) { string btc, time; btc = bitcoinAmnt; time = date; bitcoin.push_back(btc + "BTC on " + time); for (unsigned int x = 0; x < bitcoin.size(); x++) { cout << bitcoin[x] << endl; } repeat = true; \\ boolean returns the user back to main menu 
```
A sample result from cout << bitcoin[x] I am successfully able to get: 0.035349BTC on Wed Mar 25 01:44:02 2020
However, once the program is looped, the previous transactions don't seem to save and the element seems to be replaced with the newer transaction data. Despite multiple transactions, the bitcoin.size() seems to be resetting, and I only see an output of a single transaction history only. I am not able to figure out why. If you'd like to see more part of the code, please let me know. Thank you.
submitted by I_need_2_learn_math to cpp_questions [link] [comments]

cold storage compatibility issues

Hello, I have been a fan of electrum because of its offline capability. I like that I can use Bitcoin while storing my private keys on a computer that has the wifi card removed and hot glue stuffed in the Ethernet port. However it looks like maybe the electrum developers have over-promised and under-delivered in this regard. Or, maybe they simply do not have the time, energy, resources to make this work in real life.
Let me explain. I have an old-ass computer that is running Ubuntu 12 (precise), this computer has electrum 2.5.4 installed with a cold-storage wallet that has my private key.
I want to send some bitcoin from that address to a new wallet on my desktop so I can spend the bitcoin. So I installed electrum (newest version 3.3.8) on my desktop, imported the bitcoin address, and created a transaction. Then I sent the transaction to the offline computer out of band, and verified that the out-of-band transmission worked by comparing the hash of the txn file on both the offline and online machines. Then I tried to open the txn file on the offline machine with Electrum 2.5.4. Well, guess what, it didn't work. Electrum 2.5.4 printed to the console:
Traceback (most recent call last):
File "/uslocal/lib/python2.7/dist-packages/Electrum-2.5.4-py2.7.egg/electrum_gui/qt/main_window.py", line 2261, in do_process_from_file
self.show_transaction(tx)
File "/uslocal/lib/python2.7/dist-packages/Electrum-2.5.4-py2.7.egg/electrum_gui/qt/main_window.py", line 577, in show_transaction
show_transaction(tx, self, tx_desc)
File "/uslocal/lib/python2.7/dist-packages/Electrum-2.5.4-py2.7.egg/electrum_gui/qt/transaction_dialog.py", line 37, in show_transaction
d = TxDialog(tx, parent, desc, prompt_if_unsaved)
File "/uslocal/lib/python2.7/dist-packages/Electrum-2.5.4-py2.7.egg/electrum_gui/qt/transaction_dialog.py", line 48, in __init__
self.tx.deserialize()
File "/uslocal/lib/python2.7/dist-packages/Electrum-2.5.4-py2.7.egg/electrum/transaction.py", line 523, in deserialize
d = deserialize(self.raw)
File "/uslocal/lib/python2.7/dist-packages/Electrum-2.5.4-py2.7.egg/electrum/transaction.py", line 454, in deserialize
d[inputs] = list(parse_input(vds) for i in xrange(n_vin))
OverflowError: Python int too large to convert to C long
That's pretty frustrating, the first thing I tried was to install Electrum 2.5.4 on my Desktop and try to create a new unsigned transaction with Electrum 2.5.4. However, this is a no-go because old versions of Electrum cannot connect to Electrum servers any more. So I have to try to update the Electrum on the Offline computer. But I'm not even sure if this is possible considering how ubuntu 12 it's definitely out of support at this point and the offline computer does not even have python3 installed, let alone the GTK stuff or whatever is probably required to run Electrum.
I'm starting to regret choosing a GUI-based wallet for my offline storage considering how hard it is to actually use this and how it simply melts over time... even just 5 years is is enough time to completely melt and destroy this software and make it un-usable. Time Catches All. So now I have to go out and buy a new computer that can run the updated OS, so I can install the new version of Electrum, so I can access my bitcoin.
Do you have any other ideas? Has anyone else experienced anything like this?
submitted by throwaway_23f32f to Electrum [link] [comments]

Groestlcoin 6th Anniversary Release

Introduction

Dear Groestlers, it goes without saying that 2020 has been a difficult time for millions of people worldwide. The groestlcoin team would like to take this opportunity to wish everyone our best to everyone coping with the direct and indirect effects of COVID-19. Let it bring out the best in us all and show that collectively, we can conquer anything.
The centralised banks and our national governments are facing unprecedented times with interest rates worldwide dropping to record lows in places. Rest assured that this can only strengthen the fundamentals of all decentralised cryptocurrencies and the vision that was seeded with Satoshi's Bitcoin whitepaper over 10 years ago. Despite everything that has been thrown at us this year, the show must go on and the team will still progress and advance to continue the momentum that we have developed over the past 6 years.
In addition to this, we'd like to remind you all that this is Groestlcoin's 6th Birthday release! In terms of price there have been some crazy highs and lows over the years (with highs of around $2.60 and lows of $0.000077!), but in terms of value– Groestlcoin just keeps getting more valuable! In these uncertain times, one thing remains clear – Groestlcoin will keep going and keep innovating regardless. On with what has been worked on and completed over the past few months.

UPDATED - Groestlcoin Core 2.18.2

This is a major release of Groestlcoin Core with many protocol level improvements and code optimizations, featuring the technical equivalent of Bitcoin v0.18.2 but with Groestlcoin-specific patches. On a general level, most of what is new is a new 'Groestlcoin-wallet' tool which is now distributed alongside Groestlcoin Core's other executables.
NOTE: The 'Account' API has been removed from this version which was typically used in some tip bots. Please ensure you check the release notes from 2.17.2 for details on replacing this functionality.

How to Upgrade?

Windows
If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer.
OSX
If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), run the dmg and drag Groestlcoin Core to Applications.
Ubuntu
http://groestlcoin.org/forum/index.php?topic=441.0

Other Linux

http://groestlcoin.org/forum/index.php?topic=97.0

Download

Download the Windows Installer (64 bit) here
Download the Windows Installer (32 bit) here
Download the Windows binaries (64 bit) here
Download the Windows binaries (32 bit) here
Download the OSX Installer here
Download the OSX binaries here
Download the Linux binaries (64 bit) here
Download the Linux binaries (32 bit) here
Download the ARM Linux binaries (64 bit) here
Download the ARM Linux binaries (32 bit) here

Source

ALL NEW - Groestlcoin Moonshine iOS/Android Wallet

Built with React Native, Moonshine utilizes Electrum-GRS's JSON-RPC methods to interact with the Groestlcoin network.
GRS Moonshine's intended use is as a hot wallet. Meaning, your keys are only as safe as the device you install this wallet on. As with any hot wallet, please ensure that you keep only a small, responsible amount of Groestlcoin on it at any given time.

Features

Download

iOS
Android

Source

ALL NEW! – HODL GRS Android Wallet

HODL GRS connects directly to the Groestlcoin network using SPV mode and doesn't rely on servers that can be hacked or disabled.
HODL GRS utilizes AES hardware encryption, app sandboxing, and the latest security features to protect users from malware, browser security holes, and even physical theft. Private keys are stored only in the secure enclave of the user's phone, inaccessible to anyone other than the user.
Simplicity and ease-of-use is the core design principle of HODL GRS. A simple recovery phrase (which we call a Backup Recovery Key) is all that is needed to restore the user's wallet if they ever lose or replace their device. HODL GRS is deterministic, which means the user's balance and transaction history can be recovered just from the backup recovery key.

Features

Download

Main Release (Main Net)
Testnet Release

Source

ALL NEW! – GroestlcoinSeed Savior

Groestlcoin Seed Savior is a tool for recovering BIP39 seed phrases.
This tool is meant to help users with recovering a slightly incorrect Groestlcoin mnemonic phrase (AKA backup or seed). You can enter an existing BIP39 mnemonic and get derived addresses in various formats.
To find out if one of the suggested addresses is the right one, you can click on the suggested address to check the address' transaction history on a block explorer.

Features

Live Version (Not Recommended)

https://www.groestlcoin.org/recovery/

Download

https://github.com/Groestlcoin/mnemonic-recovery/archive/master.zip

Source

ALL NEW! – Vanity Search Vanity Address Generator

NOTE: NVidia GPU or any CPU only. AMD graphics cards will not work with this address generator.
VanitySearch is a command-line Segwit-capable vanity Groestlcoin address generator. Add unique flair when you tell people to send Groestlcoin. Alternatively, VanitySearch can be used to generate random addresses offline.
If you're tired of the random, cryptic addresses generated by regular groestlcoin clients, then VanitySearch is the right choice for you to create a more personalized address.
VanitySearch is a groestlcoin address prefix finder. If you want to generate safe private keys, use the -s option to enter your passphrase which will be used for generating a base key as for BIP38 standard (VanitySearch.exe -s "My PassPhrase" FXPref). You can also use VanitySearch.exe -ps "My PassPhrase" which will add a crypto secure seed to your passphrase.
VanitySearch may not compute a good grid size for your GPU, so try different values using -g option in order to get the best performances. If you want to use GPUs and CPUs together, you may have best performances by keeping one CPU core for handling GPU(s)/CPU exchanges (use -t option to set the number of CPU threads).

Features

Usage

https://github.com/Groestlcoin/VanitySearch#usage

Download

Source

ALL NEW! – Groestlcoin EasyVanity 2020

Groestlcoin EasyVanity 2020 is a windows app built from the ground-up and makes it easier than ever before to create your very own bespoke bech32 address(es) when whilst not connected to the internet.
If you're tired of the random, cryptic bech32 addresses generated by regular Groestlcoin clients, then Groestlcoin EasyVanity2020 is the right choice for you to create a more personalised bech32 address. This 2020 version uses the new VanitySearch to generate not only legacy addresses (F prefix) but also Bech32 addresses (grs1 prefix).

Features

Download

Source

Remastered! – Groestlcoin WPF Desktop Wallet (v2.19.0.18)

Groestlcoin WPF is an alternative full node client with optional lightweight 'thin-client' mode based on WPF. Windows Presentation Foundation (WPF) is one of Microsoft's latest approaches to a GUI framework, used with the .NET framework. Its main advantages over the original Groestlcoin client include support for exporting blockchain.dat and including a lite wallet mode.
This wallet was previously deprecated but has been brought back to life with modern standards.

Features

Remastered Improvements

Download

Source

ALL NEW! – BIP39 Key Tool

Groestlcoin BIP39 Key Tool is a GUI interface for generating Groestlcoin public and private keys. It is a standalone tool which can be used offline.

Features

Download

Windows
Linux :
 pip3 install -r requirements.txt python3 bip39\_gui.py 

Source

ALL NEW! – Electrum Personal Server

Groestlcoin Electrum Personal Server aims to make using Electrum Groestlcoin wallet more secure and more private. It makes it easy to connect your Electrum-GRS wallet to your own full node.
It is an implementation of the Electrum-grs server protocol which fulfils the specific need of using the Electrum-grs wallet backed by a full node, but without the heavyweight server backend, for a single user. It allows the user to benefit from all Groestlcoin Core's resource-saving features like pruning, blocks only and disabled txindex. All Electrum-GRS's feature-richness like hardware wallet integration, multi-signature wallets, offline signing, seed recovery phrases, coin control and so on can still be used, but connected only to the user's own full node.
Full node wallets are important in Groestlcoin because they are a big part of what makes the system be trust-less. No longer do people have to trust a financial institution like a bank or PayPal, they can run software on their own computers. If Groestlcoin is digital gold, then a full node wallet is your own personal goldsmith who checks for you that received payments are genuine.
Full node wallets are also important for privacy. Using Electrum-GRS under default configuration requires it to send (hashes of) all your Groestlcoin addresses to some server. That server can then easily spy on your transactions. Full node wallets like Groestlcoin Electrum Personal Server would download the entire blockchain and scan it for the user's own addresses, and therefore don't reveal to anyone else which Groestlcoin addresses they are interested in.
Groestlcoin Electrum Personal Server can also broadcast transactions through Tor which improves privacy by resisting traffic analysis for broadcasted transactions which can link the IP address of the user to the transaction. If enabled this would happen transparently whenever the user simply clicks "Send" on a transaction in Electrum-grs wallet.
Note: Currently Groestlcoin Electrum Personal Server can only accept one connection at a time.

Features

Download

Windows
Linux / OSX (Instructions)

Source

UPDATED – Android Wallet 7.38.1 - Main Net + Test Net

The app allows you to send and receive Groestlcoin on your device using QR codes and URI links.
When using this app, please back up your wallet and email them to yourself! This will save your wallet in a password protected file. Then your coins can be retrieved even if you lose your phone.

Changes

Download

Main Net
Main Net (FDroid)
Test Net

Source

UPDATED – Groestlcoin Sentinel 3.5.06 (Android)

Groestlcoin Sentinel is a great solution for anyone who wants the convenience and utility of a hot wallet for receiving payments directly into their cold storage (or hardware wallets).
Sentinel accepts XPUB's, YPUB'S, ZPUB's and individual Groestlcoin address. Once added you will be able to view balances, view transactions, and (in the case of XPUB's, YPUB's and ZPUB's) deterministically generate addresses for that wallet.
Groestlcoin Sentinel is a fork of Groestlcoin Samourai Wallet with all spending and transaction building code removed.

Changes

Download

Source

UPDATED – P2Pool Test Net

Changes

Download

Pre-Hosted Testnet P2Pool is available via http://testp2pool.groestlcoin.org:21330/static/

Source

submitted by Yokomoko_Saleen to groestlcoin [link] [comments]

Concern about Ledger Nano X Bluetooth exposes massive blockchain signature/hardware wallet misunderstanding

I've been seeing lots of comments about people's concerns related to the bluetooth functionality, so I've took it upon myself to review how digital signatures work, and how hardware wallets sign digital transactions securely. I happen to believe the outcry exceeds the actual risk involved.
One of a cryptocurrency wallet's main job is to sign digital messages (or transactions). What does that mean? It means when I want to send BTC to some address, I create an unsigned transaction. This transaction, in its most simplistic terms, just says how much and to whom I wish to send BTC to.
The wallet runs a signature algorithm on that unsigned transaction to create a signed transaction. If you've ever used MyEtherWallet, you can see the unsigned vs. signed transaction when you try to send tokens. Whether it's a hardware or software wallet, the wallet takes your private key/seed, runs the signing algorithm on your unsigned transaction with your private key, then outputs your signed transaction. This signed transaction is just a long string of data that doesn't actually have your private key but has been altered by it.
The beauty is as long as someone has your public key (that corresponds to your private key) along with the signed transaction, they can easily verify that the person who holds that private key approved that transaction. This is all without ever exposing the private key.
So to sum up, I create an unsigned transaction that says who I want to sending something to, I use my wallet to run a signing algorithm on it with my private key, the wallet outputs the signed transaction without ever exposing the key. This signed transaction is broadcasted to the miners/stakers to verify and execute the transaction. See more info on bitcoin signatures here. Neither the unsigned nor the signed transactions contain your private key.

Now how does this apply to a hardware wallet? Your software wallet, or MEW, or Ledger Live generates the unsigned message, sends it to your hardware wallet, which in turn signs the transaction on a secure chip that holds the private key, then sends back the signed message to your computer for broadcasting to the network.
Bluetooth will allow the unsigned and signed transactions to flow wirelessly. And as we discussed above, the private key is never exposed in the unsigned or signed transactions. As long as the screen is showing what you're signing, you can never accidentally sign a transaction that sends your precious assets to some other address.
Next, the communications between your ledger nano x and computephone/tablet are encrypted. So even if someone was even somehow able to decrypt that wireless data, it would only be unsigned/signed transactions which would be worthless to them anyway! But an individual seeing that data is as likely as them trying to see data between you and your bank (HINT: very unlikely, look up HTTPS).
We are operating under the assumption that the hardware wallet has not been compromised, but that's true right now anyway.
You guys don't have any reason to be afraid as long as you trust ledger to perform the appropriate security measures and code vetting. So far, they've done pretty well.

EDIT: To visualize how a hardware wallet works, here's a diagram i quickly made in paint.
EDIT2: I'll remove mean words.
submitted by MarshallBlathers to CryptoCurrency [link] [comments]

Developers: Java Schnorr Signature Implementation Review

I believe the Secp256k1 Schnorr Signature verification implementation I wrote is the first-ever Java implementation. This is cool, but forces me to extra (extra) careful, since I can't bounce the signatures off a reference implementation. To my knowledge, even bitcoinj does not have Schnorr implemented (though they can achieve this with the JNI version of their libsecp25k1, if they recompile it with the flag enabled, I believe). Bouncy Castle also does not implement an Secp256k1 Schnorr verification--especially with the particular choices made by Pieter Wuille's implementation.
From what I can tell, Bitcoin ABC only has one signature verification check test--it's possible they have more, but I'm not terrifically familiar with their codebase, so it's possible I am just looking in the wrong place. Thanks rinexc for pointing out the additional Schnorr tests.
My (Bitcoin Verde's) implementation passes their test, but that's not to say it's 100% good to go (for instance, I had bug despite passing the original test: the r, s, and e variables weren't being parsed as unsigned integers up until a few minutes ago... which would have caused some valid signatures to fail had I not caught it).
Therefore, I'd love to have any cypherpunks review my implementation (at least those that are familiar with Pieter Wuille's BIP (and/or the 2019-05 HF), and are familiar with Java). That can be found here.
My (aka ABC's) single test is located here.
If you wish to pull down the full repo, the Schnorr implementation is currently found in the feature/schnorr-signatures/master branch.
Thanks!
submitted by FerriestaPatronum to btc [link] [comments]

Creating a public key from a private key using secp256k1 library in C++

Hello,
I'm trying to generate a public key from a private one using the bitcoin library secp256k1 https://github.com/bitcoin-core/secp256k1 in C++:

 // private key std::string privateKey = "baca891f5f0285e043496843d82341d15533f016c223d114e1e4dfd39e60ecb0"; const char* cPrivateKey = privateKey.c_str(); // creating public key from it secp256k1_context *signingContext = secp256k1_context_create(SECP256K1_CONTEXT_SIGN); secp256k1_pubkey pkey; unsigned char *seckey = (unsigned char*) malloc(privateKey.size() * sizeof(unsigned char)); std::copy(cPrivateKey, cPrivateKey + privateKey.size(), seckey); if (secp256k1_ec_pubkey_create(signingContext, &pkey, seckey) == 0) throw "Creation error"; // print the result in hex std::stringstream ss; for (int i = 0; i < 64; ++i) { ss << std::setw(2) << std::hex << (0xff & (unsigned int)pkey.data[i]); } std::cout << ss.str() << std::endl; // parsing the result std::string pkey_data = ss.str(); secp256k1_context *noneContext = secp256k1_context_create(SECP256K1_CONTEXT_NONE); secp256k1_pubkey pubkey; if (secp256k1_ec_pubkey_parse(noneContext, &pubkey, pkey.data, 64) == 0) std::cout << "Couldnt parse using pkey.data" << std::endl; if (secp256k1_ec_pubkey_parse(noneContext, &pubkey, pkay_data, pkey_data.size()) == 0) std::cout << "Couldnt parse using hex public key " << std::endl; 
The output:
1b9e55408c5141414e8337adef57ead18f62444fdf5f8c897d0dc812696a6141a919254d3e750075a2a9ba32dc4ed30c84e65f27e431b59b94a2aafe3e80a974 Couldnt parse using pkey.data Couldnt parse using hex public key 
The idea is to parse the public key from the generated one to see if it is really correct. Also, i tried using openssl with the same private key and i get a different public key from the private one using ecdsa secp256k1.. Any help or example on how to use the library in C++ is more than welcome.
Thank you
submitted by chizisch to Bitcoin [link] [comments]

NYT article/The Weekly Episode on Epstein Hotlist

Just finished watching The Weekly (it’s kind of a Vice rip-off by the NYT) on Hulu where they went into detail about their story published this week about a « hacker » named Patrick Kessler who claimed to have tens of thousands of hours of Epstein’s private videos.
Turns out, Patrick did not released the videos and there is a lot of questions with his credibility, nonetheless, he clearly exposed two lawyers (Bois and Pottinger) for attempting to profit by offering to reach large settlements in which they would take 40%.
The article is here: Jeffrey Epstein, Blackmail, and a Lucrative Hotlist
Even though it sounds like this guy Kessler is full of shit, I REALLY wish that he wasn’t and at some point these troves of photos and videos get released and a bunch of rich and powerful people get what they deserve for abusing these women.
For those who need access to NYT- it is a long article, but here’s the full text:
By Jessica Silver-Greenberg, Emily Steel, Jacob Bernstein and David Enrich Nov. 30, 2019 Soon after the sex criminal Jeffrey Epstein died in August, a mysterious man met with two prominent lawyers.
Towering, barrel-chested and wild-bearded, he was a prodigious drinker and often wore flip-flops. He went by a pseudonym, Patrick Kessler — a necessity, he said, given the shadowy, dangerous world that he inhabited.
He told the lawyers he had something incendiary: a vast archive of Mr. Epstein’s data, stored on encrypted servers overseas. He said he had years of the financier’s communications and financial records — as well as thousands of hours of footage from hidden cameras in the bedrooms of Mr. Epstein’s properties. The videos, Kessler said, captured some of the world’s richest, most powerful men in compromising sexual situations — even in the act of rape.
Kessler said he wanted to expose these men. If he was telling the truth, his trove could answer one of the Epstein saga’s most baffling questions: How did a college dropout and high school math teacher amass a purported nine-figure fortune? One persistent but unproven theory was that he ran a sprawling blackmail operation. That would explain why moguls, scientists, political leaders and a royal stayed loyal to him, in some cases even after he first went to jail.
Kessler’s tale was enough to hook the two lawyers, the famed litigator David Boies and his friend John Stanley Pottinger. If Kessler was authentic, his videos would arm them with immense leverage over some very important people.
Mr. Boies and Mr. Pottinger discussed a plan. They could use the supposed footage in litigation or to try to reach deals with men who appeared in it, with money flowing into a charitable foundation. In encrypted chats with Kessler, Mr. Pottinger referred to a roster of potential targets as the “hot list.” He described hypothetical plans in which the lawyers would pocket up to 40 percent of the settlements and could extract money from wealthy men by flipping from representing victims to representing their alleged abusers.
The possibilities were tantalizing — and extended beyond vindicating victims. Mr. Pottinger saw a chance to supercharge his law practice. For Mr. Boies, there was a shot at redemption, after years of criticism for his work on behalf of Theranos and Harvey Weinstein.
In the end, there would be no damning videos, no funds pouring into a new foundation. Mr. Boies and Mr. Pottinger would go from toasting Kessler as their “whistle-blower” and “informant” to torching him as a “fraudster” and a “spy.”
Kessler was a liar, and he wouldn’t expose any sexual abuse. But he would reveal something else: The extraordinary, at times deceitful measures elite lawyers deployed in an effort to get evidence that could be used to win lucrative settlements — and keep misconduct hidden, allowing perpetrators to abuse again.
Mr. Boies has publicly decried such secret deals as “rich man’s justice,” a way that powerful men buy their way out of legal and reputational jeopardy. This is how it works.
7 men and a headless parrot
The man who called himself Kessler first contacted a Florida lawyer, Bradley J. Edwards, who was in the news for representing women with claims against Mr. Epstein. It was late August, about two weeks after the financier killed himself in a jail cell while awaiting trial on federal sex-trafficking charges.
Mr. Edwards, who did not respond to interview requests, had a law firm called Edwards Pottinger, and he soon referred Kessler to his New York partner. Silver-haired and 79, Mr. Pottinger had been a senior civil-rights official in the Nixon and Ford administrations, but he also dabbled in investment banking and wrote best-selling medical thrillers. He was perhaps best known for having dated Gloria Steinem and Kathie Lee Gifford.
Mr. Pottinger recalled that Mr. Edwards warned him about Kessler, saying that he was “endearing,” “spooky” and “loves to drink like a fish.”
After an initial discussion with Kessler in Washington, Mr. Pottinger briefed Mr. Boies — whose firm was also active in representing accusers in the Epstein case — about the sensational claims. He then invited Kessler to his Manhattan apartment. Kessler admired a wall-mounted frame containing a headless stuffed parrot; on TV, the Philadelphia Eagles were mounting a comeback against the Washington Redskins. Mr. Pottinger poured Kessler a glass of WhistlePig whiskey, and the informant began to talk.
In his conversations with Mr. Pottinger and, later, Mr. Boies, Kessler said his videos featured numerous powerful men who were already linked to Mr. Epstein: Ehud Barak, the former Israeli prime minister; Alan Dershowitz, a constitutional lawyer; Prince Andrew; three billionaires; and a prominent chief executive.
All seven men, or their representatives, told The New York Times they never engaged in sexual activity on Mr. Epstein’s properties. The Times has no reason to believe Kessler’s supposed video footage is real.
In his apartment, Mr. Pottinger presented Kessler with a signed copy of “The Boss,” his 2005 novel. “One minute you’re bending the rules,” blares the cover of the paperback version. “The next minute you’re breaking the law.” On the title page, Mr. Pottinger wrote: “Here’s to the great work you are to do. Happy to be part of it.”
Mr. Pottinger also gave Kessler a draft contract to bring him on as a client, allowing him to use a fake name. “For reasons revealed to you, I prefer to proceed with this engagement under the name Patrick Kessler,” the agreement said.
Despite the enormities of the Epstein scandal, few of his accusers have gotten a sense of justice or resolution. Mr. Pottinger thought Kessler’s files could change everything. This strange man was theatrical and liked his alcohol, but if there was even a chance his claims were true, they were worth pursuing.
“Our clients are said to be liars and prostitutes,” Mr. Pottinger later said in an interview with The Times, “and we now have someone who says, ‘I can give you secret photographic proof of abuse that will completely change the entire fabric of your practice and get justice for these girls.’ And you think that we wouldn’t try to get that?”
A victim becomes a hacker
Mr. Pottinger and Mr. Boies have known each other for years, a friendship forged on bike trips in France and Italy. In legal circles, Mr. Boies was royalty: He was the one who fought for presidential candidate Al Gore before the Supreme Court, took on Microsoft in a landmark antitrust case, and helped obtain the right for gays and lesbians to get married in California.
But then Mr. Boies got involved with the blood-testing start-up Theranos. As the company was being revealed as a fraud, he tried to bully whistle-blowers into not speaking to a Wall Street Journal reporter, and he was criticized for possible conflicts of interest when he joined the company’s board in 2015.
Two years later, Mr. Boies helped his longtime client Harvey Weinstein hire private investigators who intimidated sources and trailed reporters for The Times and The New Yorker — even though Mr. Boies’s firm had worked for The Times on other matters. (The Times fired his firm.)
By 2019, Mr. Boies, 78, was representing a number of Mr. Epstein’s alleged victims. They got his services pro bono, and he got the chance to burnish his legacy. When Mr. Pottinger contacted him about Kessler, he was intrigued.
On Sept. 9, Mr. Boies greeted Kessler at the offices of his law firm, Boies Schiller Flexner, in a gleaming new skyscraper at Hudson Yards on Manhattan’s West Side. Kessler unfurled a fantastic story, one he would embroider and alter in later weeks, that began with him growing up somewhere within a three-hour radius of Washington. Kessler said he had been molested as a boy by a Bible school teacher and sought solace on the internet, where he fell in with a group of victims turned hackers, who used their skills to combat pedophilia.
Kessler claimed that a technology executive had introduced him to Mr. Epstein, who in 2012 hired Kessler to set up encrypted servers to preserve his extensive digital archives. With Mr. Epstein dead, Kessler boasted to the lawyers, he had unfettered access to the material. He said the volume of videos was overwhelming: more than a decade of round-the-clock footage from dozens of cameras.
Kessler displayed some pixelated video stills on his phone. In one, a bearded man with his mouth open appears to be having sex with a naked woman. Kessler said the man was Mr. Barak. In another, a man with black-framed glasses is seen shirtless with a woman on his lap, her breasts exposed. Kessler said it was Mr. Dershowitz. He also said that some of the supposed videos appeared to have been edited and cataloged for the purpose of blackmail.
“This was explosive information if true, for lots and lots of people,” Mr. Boies said in an interview.
Mr. Boies and Mr. Pottinger had decades of legal experience and considered themselves experts at assessing witnesses’ credibility. While they couldn’t be sure, they thought Kessler was probably legit.
A chance to sway the Israeli election
Within hours of the Hudson Yards meeting, Mr. Pottinger sent Kessler a series of texts over the encrypted messaging app Signal.
According to excerpts viewed by The Times, Mr. Pottinger and Kessler discussed a plan to disseminate some of the informant’s materials — starting with the supposed footage of Mr. Barak. The Israeli election was barely a week away, and Mr. Barak was challenging Prime Minister Benjamin Netanyahu. The purported images of Mr. Barak might be able to sway the election — and fetch a high price. (“Total lie with no basis in reality,” Mr. Barak said when asked about the existence of such videos.)
“Can you review your visual evidence to be sure some or all is indisputably him? If so, we can make it work,” Mr. Pottinger wrote.
Kessler said he would do so. Mr. Pottinger sent a yellow smiley-face emoji with its tongue sticking out.
“Can you share your contact that would be purchasing,” Kessler asked.
“Sheldon Adelson,” Mr. Pottinger answered.
Mr. Adelson, a billionaire casino magnate in Las Vegas, had founded one of Israel’s largest newspapers, and it was an enthusiastic booster of Mr. Netanyahu. Mr. Pottinger wrote that he and Mr. Boies hoped to fly to Nevada to meet with Mr. Adelson to discuss the images.
“Do you believe that adelson has the pull to insure this will hurt his bid for election?” Kessler asked the next morning.
Mr. Pottinger reassured him. “There is no question that Adelson has the capacity to air the truth about EB if he wants to,” he said, using Mr. Barak’s initials. He said he planned to discuss the matter with Mr. Boies that evening.
Mr. Boies confirmed that they discussed sharing the photo with Mr. Adelson but said the plan was never executed. Boaz Bismuth, the editor in chief of the newspaper, Israel Hayom, said its journalists were approached by an Israeli source who pitched them supposed images of Mr. Barak, but that “we were not interested.”
‘These are wealthy wrongdoers’
The men whom Kessler claimed to have on tape were together worth many billions. Some of their public relations teams had spent months trying to tamp down media coverage of their connections to Mr. Epstein. Imagine how much they might pay to make incriminating videos vanish.
You might think that lawyers representing abuse victims would want to publicly expose such information to bolster their clients’ claims. But that is not how the legal industry always works. Often, keeping things quiet is good business.
One of the revelations of the #MeToo era has been that victims’ lawyers often brokered secret deals in which alleged abusers paid to keep their accusers quiet and the allegations out of the public sphere. Lawyers can pocket at least a third of such settlements, profiting off a system that masks misconduct and allows men to abuse again.
Mr. Boies and Mr. Pottinger said in interviews that they were looking into creating a charity to help victims of sexual abuse. It would be bankrolled by private legal settlements with the men on the videos.
Mr. Boies acknowledged that Kessler might get paid. “If we were able to use this to help our victims recover money, we would treat him generously,” he said in September. He said that his firm would not get a cut of any settlements.
Such agreements would have made it less likely that videos involving the men became public. “Generally what settlements are about is getting peace,” Mr. Boies said.
Mr. Pottinger told Kessler that the charity he was setting up would be called the Astria Foundation — a name he later said his girlfriend came up with, in a nod to Astraea, the Greek goddess of innocence and justice. “We need to get it funded by abusers,” Mr. Pottinger texted, noting in another message that “these are wealthy wrongdoers.”
Mr. Pottinger asked Kessler to start compiling incriminating materials on a specific group of men.
“I’m way ahead of you,” Kessler responded. He said he had asked his team of fellow hackers to search the files for the three billionaires, the C.E.O. and Prince Andrew.
“Yes, that’s exactly how to do this,” Mr. Pottinger said. “Videos for sure, but email traffic, too.”
“I call it our hot list,” he added.
Image The Grand Sichuan restaurant in Manhattan. The Grand Sichuan restaurant in Manhattan.Credit...Stephanie Diani for The New York Times A quiet table at the back of Grand Sichuan
In mid-September, Mr. Boies and Mr. Pottinger invited reporters from The Times to the Boies Schiller offices to meet Kessler. The threat of a major news organization writing about the videos — and confirming the existence of an extensive surveillance apparatus — could greatly enhance the lawyers’ leverage over the wealthy men.
Before the session, Mr. Pottinger encouraged Kessler to focus on certain men, like Mr. Barak, while avoiding others. Referring to the reporters, he added, “Let them drink from a fountain instead of a water hose. They and the readers will follow that better.”
The meeting took place on a cloudy Saturday morning. After agreeing to leave their phones and laptops outside, the reporters entered a 20th-floor conference room. Kessler was huge: more than 6 feet tall, pushing 300 pounds, balding, his temples speckled with gray. He told his story and presented images that he said were of Mr. Epstein, Mr. Barak and Mr. Dershowitz having sex with women.
Barely an hour after the session ended, the Times reporters received an email from Kessler: “Are you free?” He said he wanted to meet — alone. “Tell no one else.” That afternoon, they met at Grand Sichuan, an iconic Chinese restaurant in Manhattan’s Chelsea neighborhood. The lunch rush was over, and the trio sat at a quiet table in the back. A small group of women huddled nearby, speaking Mandarin and snipping the ends off string beans.
Kessler complained that Mr. Boies and Mr. Pottinger were more interested in making money than in exposing wrongdoers. He pulled out his phone, warned the reporters not to touch it, and showed more of what he had. There was a color photo of a bare-chested, gray-haired man with a slight smile. Kessler said it was a billionaire. He also showed blurry, black-and-white images of a dark-haired man receiving oral sex. He said it was a prominent C.E.O.
Soup dumplings and Gui Zhou chicken arrived, and Kessler kept talking. He said he had found financial ledgers on Mr. Epstein’s servers that showed he had vast amounts of Bitcoin and cash in the Middle East and Bangkok, and hundreds of millions of dollars’ worth of gold, silver and diamonds. He presented no proof. But it is common for whistle-blowers to be erratic and slow to produce their evidence, and The Times thought it was worth investigating Kessler’s claims.
The conversation continued in a conference room at a Washington hotel five days later, after a text exchange in which Kessler noted his enthusiasm for Japanese whiskey. Both parties brought bottles to the hotel, and Kessler spent nearly eight hours downing glass after glass. He veered from telling tales about the dark web to professing love for “Little House on the Prairie.” He asserted that he had evidence Mr. Epstein had derived his wealth through illicit means. At one point, he showed what he said were classified C.I.A. documents.
Kessler said he had no idea who the women in the videos were or how the lawyers might go about identifying them to act on their behalf. From his perspective, he said, it seemed like Mr. Boies and Mr. Pottinger were plotting to use his footage to demand huge sums from billionaires. He said it looked like blackmail — and that he could prove it.
‘We keep it. We keep everything’
Was Kessler’s story plausible? Did America’s best-connected sexual predator accumulate incriminating videos of powerful men?
Two women who spent time in Mr. Epstein’s homes said the answer was yes. In an unpublished memoir, Virginia Giuffre, who accused Mr. Epstein of making her a “sex slave,” wrote that she discovered a room in his New York mansion where monitors displayed real-time surveillance footage. And Maria Farmer, an artist who accused Mr. Epstein of sexually assaulting her when she worked for him in the 1990s, said that Mr. Epstein once walked her through the mansion, pointing out pin-sized cameras that he said were in every room.
“I said, ‘Are you recording all this?’” Ms. Farmer said in an interview. “He said, ‘Yes. We keep it. We keep everything.’”
During a 2005 search of Mr. Epstein’s Palm Beach, Fla., estate, the police found two cameras hidden in clocks — one in the garage and the other next to his desk, according to police reports. But no other cameras were found.
Kessler claimed to have been an early investor in a North Carolina coffee company, whose sticker was affixed to his laptop. But its founder said no one matching Kessler’s description had ever been affiliated with the company. Kessler insisted that he invested in 2009, but the company wasn’t founded until 2011.
The contents of Kessler’s supposed C.I.A. documents turned out to be easily findable using Google. At one point, Kessler said that one of his associates had been missing and was found dead; later, Kessler said the man was alive and in the southern United States. He said that his mother had died when he was young — and that he had recently given her a hug. A photo he sent from what he said was a Washington-area hospital featured a distinctive blanket, but when The Times called local hospitals, they didn’t recognize the pattern.
After months of effort, The Times could not learn Kessler’s identity or confirm any element of his back story.
“I am very often being purposefully inconsistent,” Kessler said, when pressed.
A Weinstein cameo
On the last Friday in September, Mr. Boies and Mr. Pottinger sat on a blue leather couch in the corner of a members-only dining room at the Harvard Club in Midtown Manhattan. Antlered animal heads and oil paintings hung from the dark wooden walls.
The lawyers were there to make a deal with The Times. Tired of waiting for Kessler’s motherlode, Mr. Pottinger said they planned to send a team overseas to download the material from his servers. He said he had alerted the F.B.I. and a prosecutor in the United States attorney’s office in Manhattan.
Mr. Boies told an editor for The Times that they would be willing to share everything, on one condition: They would have discretion over which men could be written about, and when. He explained that if compromising videos about particular men became public, that could torpedo litigation or attempts to negotiate settlements. The Times editor didn’t commit.
Mr. Boies and Mr. Pottinger later said those plans had hinged on verifying the videos’ authenticity and on having clients with legitimate legal claims against the men. Otherwise, legal experts said, it might have crossed the line into extortion.
The meeting was briefly interrupted when Bob Weinstein, the brother of Harvey Weinstein, bounded up to the table and plopped onto the couch next to Mr. Boies. The two men spent several minutes talking, laughing and slapping each other on the back.
While Mr. Boies and Mr. Weinstein chatted, Mr. Pottinger furtively displayed the black-and-white shot of a man in glasses having sex. Both lawyers said it looked like Mr. Dershowitz.
‘You don’t keep your glasses on when you’re doing that’
One day in late September, Mr. Dershowitz’s secretary relayed a message: Someone named Patrick Kessler wanted to speak to him about Mr. Boies.
“The problem is that they don’t want to move forward with any of these people legally,” Kessler said. “They’re just interested in trying to settle and take a cut.”
“Who are these people that you have on videotape?” Mr. Dershowitz asked.
“There’s a lot of people,” Kessler said, naming a few powerful men. He added, “There’s a long list of people that they want me to have that I don’t have.”
“Who?” Mr. Dershowitz asked. “Did they ask about me?”
“Of course they asked about you. You know that, sir.”
“And you don’t have anything on me, right?”
“I do not, no,” Kessler said.
“Because I never, I never had sex with anybody,” Mr. Dershowitz said. Later in the call, he added, “I am completely clean. I was at Jeffrey’s house. I stayed there. But I didn’t have any sex with anybody.”
What was the purpose of Kessler’s phone call? Why did he tell Mr. Dershowitz that he wasn’t on the supposed surveillance tapes, contradicting what he had said and showed to Mr. Boies, Mr. Pottinger and The Times? Did the call sound a little rehearsed?
Mr. Dershowitz said that he didn’t know why Kessler contacted him, and that the phone call was the only time the two men ever spoke. When The Times showed him one of Kessler’s photos, in which a bespectacled man resembling Mr. Dershowitz appears to be having sex, Mr. Dershowitz laughed and said the man wasn’t him. His wife, Carolyn Cohen, peeked at the photo, too.
“You don’t keep your glasses on when you’re doing that,” she said.
Data set (supposedly) to self-destruct
In early October, Kessler said he was ready to produce the Epstein files. He told The Times that he had created duplicate versions of Mr. Epstein’s servers. He laid out detailed logistical plans for them to be shipped by boat to the United States and for one of his associates — a very short Icelandic man named Steven — to deliver them to The Times headquarters at 11 a.m. on Oct. 3.
Kessler warned that he was erecting a maze of security systems. First, a Times employee would need to use a special thumb drive to access a proprietary communications system. Then Kessler’s colleague would transmit a code to decrypt the files. If his instructions weren’t followed precisely, Kessler said, the information would self-destruct.
Specialists at The Times set up a number of “air-gapped” laptops — disconnected from the internet — in a windowless, padlocked meeting room. Reporters cleared their schedules to sift through thousands of hours of surveillance footage.
On the morning of the scheduled delivery, Kessler sent a series of frantic texts. Disaster had struck. A fire was burning. The duplicate servers were destroyed. One of his team members was missing. He was fleeing to Kyiv.
Two hours later, Kessler was in touch with Mr. Pottinger and didn’t mention any emergency. Kessler said he hoped that the footage would help pry $1 billion in settlements out of their targets, and asked him to detail how the lawyers could extract the money. “Could you put together a hypothetical situation,” Kessler wrote, not something “set in stone but close to what your thinking.”
In one, which he called a “standard model” for legal settlements, Mr. Pottinger said the money would be split among his clients, the Astria Foundation, Kessler and the lawyers, who would get up to 40 percent.
In the second hypothetical, Mr. Pottinger wrote, the lawyers would approach the videotaped men. The men would then hire the lawyers, ensuring that they would not get sued, and “make a contribution to a nonprofit as part of the retainer.”
“No client is actually involved in this structure,” Mr. Pottinger said, noting that the arrangement would have to be “consistent with and subject to rules of ethics.”
“Thank you very much,” Kessler responded.
Mr. Pottinger later said that the scenario would have involved him representing a victim, settling a case and then representing the victim’s alleged abuser. He said it was within legal boundaries. (He also said he had meant to type “No client lawsuit is actually involved.”)
Such legal arrangements are not unheard-of. Lawyers representing a former Fox News producer who had accused Bill O’Reilly of sexual harassment reached a settlement in which her lawyers agreed to work for Mr. O’Reilly after the dispute. But legal experts generally consider such setups to be unethical because they can create conflicts between the interests of the lawyers and their original clients.
‘I just pulled it out of my behind’
The lawyers held out hope of getting Kessler’s materials. But weeks passed, and nothing arrived. At one point, Mr. Pottinger volunteered to meet Kessler anywhere — including Ljubljana, the capital of Slovenia.
“I still believe he is what he purported to be,” Mr. Boies wrote in an email on Nov. 7. “I have to evaluate people for my day job, and he seemed too genuine to be a fake, and I very much want him to be real.” He added, “I am not unconscious of the danger of wanting to believe something too much.”
Ten days later, Mr. Boies arrived at The Times for an on-camera interview. It was a bright, chilly Sunday, and Mr. Boies had just flown in from Ecuador, where he said he was doing work for the finance ministry. Reporters wanted to ask him plainly if his and Mr. Pottinger’s conduct with Kessler crossed ethical lines.
Would they have brokered secret settlements that buried evidence of wrongdoing? Did the notion of extracting huge sums from men in exchange for keeping sex tapes hidden meet the definition of extortion?
Mr. Boies said the answer to both questions was no. He said he and Mr. Pottinger operated well within the law. They only intended to pursue legal action on behalf of their clients — in other words, that they were a long way from extortion. In any case, he said, he and Mr. Pottinger had never authenticated any of the imagery or identified any of the supposed victims, much less contacted any of the men on the “hot list.”
Then The Times showed Mr. Boies some of the text exchanges between Mr. Pottinger and Kessler. Mr. Boies showed a flash of anger and said it was the first time he was seeing them.
By the end of the nearly four-hour interview, Mr. Boies had concluded that Kessler was probably a con man: “I think that he was a fraudster who was just trying to set things up.” And he argued that Kessler had baited Mr. Pottinger into writing things that looked more nefarious than they really were. He acknowledged that Mr. Pottinger had used “loose language” in some of his messages that risked creating the impression that the lawyers were plotting to monetize evidence of abuse.
Several days later, Mr. Boies returned for another interview and was more critical of Mr. Pottinger, especially the hypothetical plans that he had described to Kessler. “Having looked at all that stuff in context, I would not have said that,” he said. How did Mr. Boies feel about Mr. Pottinger invoking his name in messages to Kessler? “I don’t like it,” he said.
But Mr. Boies stopped short of blaming Mr. Pottinger for the whole mess. “I’m being cautious not to throw him under the bus more than I believe is accurate,” he said. His longtime P.R. adviser, Dawn Schneider, who had been pushing for a more forceful denunciation, dropped her pen, threw up her arms and buried her head in her hands.
In a separate interview, The Times asked Mr. Pottinger about his correspondence with Kessler. The lawyer said that his messages shouldn’t be taken at face value because, in reality, he had been deceiving Kessler all along — “misleading him deliberately in order to get the servers.”
The draft retention agreement that Mr. Pottinger had given to Kessler in September was unsigned and never meant to be honored, Mr. Pottinger said. And he never intended to sell photos of Mr. Barak to Mr. Adelson. “I just pulled it out of my behind,” he said, describing it as an act to impress Kessler.
As for the two hypotheticals about how to get money out of the men on the list, Mr. Pottinger said, he never planned to do what he carefully articulated. “I didn’t owe Patrick honesty about this,” he said.
Mr. Pottinger said that he had only one regret — that “we did not get the information that this liar said he had.”
He added, “I’m building legal cases here. I’m trying not to engage too much in shenanigans. I wish I didn’t, but this guy was very unusual.”
submitted by FollyGoLightly to Epstein [link] [comments]

domaz - YouTube Why I won't be getting the Apple Credit Card... - YouTube 05A.1 Beispiele Zweierkomplement, Überlauf, signed und unsigned UTXOs and a Bitcoin-like chain -- Substrate Seminar 21 April 2020 Multiplication of Unsigned binary Numbers in computer architecture(Multiplication Algorithm)

Bitcoin does not use an accounts system nor does it use addresses on a protocol level. Spending Bitcoin means that you are spending from a transaction output. If there is no available transaction output for you to spend from, then you cannot create a transaction. So with addresses with 0 balance, no such valid transaction can be created. Next, the "sending address" that you specified requires ... Bitcoin Core integration/staging tree. Contribute to bitcoin/bitcoin development by creating an account on GitHub. Contribute to bitcoin/bitcoin development by creating an account on GitHub. … ones Instead of re-naming the tarballs used for the code signing step to the generically named tarball that is used, keep the versioned naming. 并且编译的 bitcoin 源码只编译 x86 的 debug 平台!! vs 2015 提供的是c++11 标准. 一、下载 v0.1 版本的源码. 我v0.1版本的源码是从这个链接来的(需要翻墙) Who has the source code of the first version of Bitcoin (0.1), as released in February 2009? 里面提供了v0.1版本的链接 Bitcoin Core integration/staging tree. Contribute to bitcoin/bitcoin development by creating an account on GitHub. Version 1 was introduced in the genesis block (January 2009). Version 2 was introduced in Bitcoin Core 0.7.0 (September 2012) as a soft fork. As described in BIP34, valid version 2 blocks require a block height parameter in the coinbase.

[index] [6387] [10918] [9157] [40207] [38242] [7504] [39774] [9326] [30067] [6621]

domaz - YouTube

Lets talk about the new 2019 Apple Credit Card…and why I won’t be getting one. Enjoy. Add me on Instagram: GPStephan The YouTube Creator Academy: Learn EXACT... This week Nicole Zhu and Joshy Orndorff discuss the architecture of a Bitcoin-like node built with Substrate. The node like Bitcoin in the following ways. This video is unavailable. Watch Queue Queue. Watch Queue Queue in this video lecture we will learn about computer arithmetic and Multiplication of Unsigned Binary Number with Example in Hindi. Hello Friends,, Myself Dr. Lalit Kumar Saraswat presently working ... But how does bitcoin actually work? - Duration: 26:21. 3Blue1Brown Recommended for you. 26:21. Computer Number Systems(Binary,Octal,Hexa,Decimal) Basics & Conversion Techniques + 7 Golden Rules ...

#