Hash Definition - Investopedia

One of the TOP 12 featured articles at Publish0x: Update : Bitcoin Hash ribbons on the weekly show a BUY signal as well and this is big news ! However a dump first is definitely possible !

One of the TOP 12 featured articles at Publish0x: Update : Bitcoin Hash ribbons on the weekly show a BUY signal as well and this is big news ! However a dump first is definitely possible ! submitted by smoljanovic to Publish0x [link] [comments]

One of the TOP 12 featured articles at Publish0x: Update : Bitcoin Hash ribbons on the weekly show a BUY signal as well and this is big news ! However a dump first is definitely possible !

One of the TOP 12 featured articles at Publish0x: Update : Bitcoin Hash ribbons on the weekly show a BUY signal as well and this is big news ! However a dump first is definitely possible ! submitted by smoljanovic to Publish0xSmo [link] [comments]

"Lets be very clear...the ONLY attack happening now is the Bitmain attack on the Bitcoin protocol. Trying to change the Bitcoin protocol when the majority of dedicated hash is against it is the definition of an attack. Miners will defend and defeat this attack."

submitted by satoshi_vision to bitcoincashSV [link] [comments]

Calvin Ayre: "Heading to London to prepare for CoinGeek week tonight. this is the definitive place for everyone in the industry to meet to discuss the worlds first hash war and how to make Bitcoin (which is only SV) sound money for the world."

Calvin Ayre: submitted by satoshi_vision to bitcoincashSV [link] [comments]

10-25 15:44 - '[quote] I'm pretty sure that it comes from Satoshi's definition of Bitcoin, coherent with the fact that hash power votes on rules, thus the chain with the most votes prevails. Anything but arbitrary.' by /u/Sparticule removed from /r/Bitcoin within 88-98min

'''
They are arbitrarily choosing the "accumulated difficulty" indicator
I'm pretty sure that it comes from Satoshi's definition of Bitcoin, coherent with the fact that hash power votes on rules, thus the chain with the most votes prevails. Anything but arbitrary.
'''
Context Link
Go1dfish undelete link
unreddit undelete link
Author: Sparticule
submitted by removalbot to removalbot [link] [comments]

Technical: Taproot: Why Activate?

This is a follow-up on https://old.reddit.com/Bitcoin/comments/hqzp14/technical_the_path_to_taproot_activation/
Taproot! Everybody wants it!! But... you might ask yourself: sure, everybody else wants it, but why would I, sovereign Bitcoin HODLer, want it? Surely I can be better than everybody else because I swapped XXX fiat for Bitcoin unlike all those nocoiners?
And it is important for you to know the reasons why you, o sovereign Bitcoiner, would want Taproot activated. After all, your nodes (or the nodes your wallets use, which if you are SPV, you hopefully can pester to your wallet vendoimplementor about) need to be upgraded in order for Taproot activation to actually succeed instead of becoming a hot sticky mess.
First, let's consider some principles of Bitcoin.
I'm sure most of us here would agree that the above are very important principles of Bitcoin and that these are principles we would not be willing to remove. If anything, we would want those principles strengthened (especially the last one, financial privacy, which current Bitcoin is only sporadically strong with: you can get privacy, it just requires effort to do so).
So, how does Taproot affect those principles?

Taproot and Your /Coins

Most HODLers probably HODL their coins in singlesig addresses. Sadly, switching to Taproot would do very little for you (it gives a mild discount at spend time, at the cost of a mild increase in fee at receive time (paid by whoever sends to you, so if it's a self-send from a P2PKH or bech32 address, you pay for this); mostly a wash).
(technical details: a Taproot output is 1 version byte + 32 byte public key, while a P2WPKH (bech32 singlesig) output is 1 version byte + 20 byte public key hash, so the Taproot output spends 12 bytes more; spending from a P2WPKH requires revealing a 32-byte public key later, which is not needed with Taproot, and Taproot signatures are about 9 bytes smaller than P2WPKH signatures, but the 32 bytes plus 9 bytes is divided by 4 because of the witness discount, so it saves about 11 bytes; mostly a wash, it increases blockweight by about 1 virtual byte, 4 weight for each Taproot-output-input, compared to P2WPKH-output-input).
However, as your HODLings grow in value, you might start wondering if multisignature k-of-n setups might be better for the security of your savings. And it is in multisignature that Taproot starts to give benefits!
Taproot switches to using Schnorr signing scheme. Schnorr makes key aggregation -- constructing a single public key from multiple public keys -- almost as trivial as adding numbers together. "Almost" because it involves some fairly advanced math instead of simple boring number adding, but hey when was the last time you added up your grocery list prices by hand huh?
With current P2SH and P2WSH multisignature schemes, if you have a 2-of-3 setup, then to spend, you need to provide two different signatures from two different public keys. With Taproot, you can create, using special moon math, a single public key that represents your 2-of-3 setup. Then you just put two of your devices together, have them communicate to each other (this can be done airgapped, in theory, by sending QR codes: the software to do this is not even being built yet, but that's because Taproot hasn't activated yet!), and they will make a single signature to authorize any spend from your 2-of-3 address. That's 73 witness bytes -- 18.25 virtual bytes -- of signatures you save!
And if you decide that your current setup with 1-of-1 P2PKH / P2WPKH addresses is just fine as-is: well, that's the whole point of a softfork: backwards-compatibility; you can receive from Taproot users just fine, and once your wallet is updated for Taproot-sending support, you can send to Taproot users just fine as well!
(P2WPKH and P2WSH -- SegWit v0 -- addresses start with bc1q; Taproot -- SegWit v1 --- addresses start with bc1p, in case you wanted to know the difference; in bech32 q is 0, p is 1)
Now how about HODLers who keep all, or some, of their coins on custodial services? Well, any custodial service worth its salt would be doing at least 2-of-3, or probably something even bigger, like 11-of-15. So your custodial service, if it switched to using Taproot internally, could save a lot more (imagine an 11-of-15 getting reduced from 11 signatures to just 1!), which --- we can only hope! --- should translate to lower fees and better customer service from your custodial service!
So I think we can say, very accurately, that the Bitcoin principle --- that YOU are in control of your money --- can only be helped by Taproot (if you are doing multisignature), and, because P2PKH and P2WPKH remain validly-usable addresses in a Taproot future, will not be harmed by Taproot. Its benefit to this principle might be small (it mostly only benefits multisignature users) but since it has no drawbacks with this (i.e. singlesig users can continue to use P2WPKH and P2PKH still) this is still a nice, tidy win!
(even singlesig users get a minor benefit, in that multisig users will now reduce their blockchain space footprint, so that fees can be kept low for everybody; so for example even if you have your single set of private keys engraved on titanium plates sealed in an airtight box stored in a safe buried in a desert protected by angry nomads riding giant sandworms because you're the frickin' Kwisatz Haderach, you still gain some benefit from Taproot)
And here's the important part: if P2PKH/P2WPKH is working perfectly fine with you and you decide to never use Taproot yourself, Taproot will not affect you detrimentally. First do no harm!

Taproot and Your Contracts

No one is an island, no one lives alone. Give and you shall receive. You know: by trading with other people, you can gain expertise in some obscure little necessity of the world (and greatly increase your productivity in that little field), and then trade the products of your expertise for necessities other people have created, all of you thereby gaining gains from trade.
So, contracts, which are basically enforceable agreements that facilitate trading with people who you do not personally know and therefore might not trust.
Let's start with a simple example. You want to buy some gewgaws from somebody. But you don't know them personally. The seller wants the money, you want their gewgaws, but because of the lack of trust (you don't know them!! what if they're scammers??) neither of you can benefit from gains from trade.
However, suppose both of you know of some entity that both of you trust. That entity can act as a trusted escrow. The entity provides you security: this enables the trade, allowing both of you to get gains from trade.
In Bitcoin-land, this can be implemented as a 2-of-3 multisignature. The three signatories in the multisgnature would be you, the gewgaw seller, and the escrow. You put the payment for the gewgaws into this 2-of-3 multisignature address.
Now, suppose it turns out neither of you are scammers (whaaaat!). You receive the gewgaws just fine and you're willing to pay up for them. Then you and the gewgaw seller just sign a transaction --- you and the gewgaw seller are 2, sufficient to trigger the 2-of-3 --- that spends from the 2-of-3 address to a singlesig the gewgaw seller wants (or whatever address the gewgaw seller wants).
But suppose some problem arises. The seller gave you gawgews instead of gewgaws. Or you decided to keep the gewgaws but not sign the transaction to release the funds to the seller. In either case, the escrow is notified, and if it can sign with you to refund the funds back to you (if the seller was a scammer) or it can sign with the seller to forward the funds to the seller (if you were a scammer).
Taproot helps with this: like mentioned above, it allows multisignature setups to produce only one signature, reducing blockchain space usage, and thus making contracts --- which require multiple people, by definition, you don't make contracts with yourself --- is made cheaper (which we hope enables more of these setups to happen for more gains from trade for everyone, also, moon and lambos).
(technology-wise, it's easier to make an n-of-n than a k-of-n, making a k-of-n would require a complex setup involving a long ritual with many communication rounds between the n participants, but an n-of-n can be done trivially with some moon math. You can, however, make what is effectively a 2-of-3 by using a three-branch SCRIPT: either 2-of-2 of you and seller, OR 2-of-2 of you and escrow, OR 2-of-2 of escrow and seller. Fortunately, Taproot adds a facility to embed a SCRIPT inside a public key, so you can have a 2-of-2 Taprooted address (between you and seller) with a SCRIPT branch that can instead be spent with 2-of-2 (you + escrow) OR 2-of-2 (seller + escrow), which implements the three-branched SCRIPT above. If neither of you are scammers (hopefully the common case) then you both sign using your keys and never have to contact the escrow, since you are just using the escrow public key without coordinating with them (because n-of-n is trivial but k-of-n requires setup with communication rounds), so in the "best case" where both of you are honest traders, you also get a privacy boost, in that the escrow never learns you have been trading on gewgaws, I mean ewww, gawgews are much better than gewgaws and therefore I now judge you for being a gewgaw enthusiast, you filthy gewgawer).

Taproot and Your Contracts, Part 2: Cryptographic Boogaloo

Now suppose you want to buy some data instead of things. For example, maybe you have some closed-source software in trial mode installed, and want to pay the developer for the full version. You want to pay for an activation code.
This can be done, today, by using an HTLC. The developer tells you the hash of the activation code. You pay to an HTLC, paying out to the developer if it reveals the preimage (the activation code), or refunding the money back to you after a pre-agreed timeout. If the developer claims the funds, it has to reveal the preimage, which is the activation code, and you can now activate your software. If the developer does not claim the funds by the timeout, you get refunded.
And you can do that, with HTLCs, today.
Of course, HTLCs do have problems:
Fortunately, with Schnorr (which is enabled by Taproot), we can now use the Scriptless Script constuction by Andrew Poelstra. This Scriptless Script allows a new construction, the PTLC or Pointlocked Timelocked Contract. Instead of hashes and preimages, just replace "hash" with "point" and "preimage" with "scalar".
Or as you might know them: "point" is really "public key" and "scalar" is really a "private key". What a PTLC does is that, given a particular public key, the pointlocked branch can be spent only if the spender reveals the private key of the given public key to you.
Another nice thing with PTLCs is that they are deniable. What appears onchain is just a single 2-of-2 signature between you and the developemanufacturer. It's like a magic trick. This signature has no special watermarks, it's a perfectly normal signature (the pledge). However, from this signature, plus some datta given to you by the developemanufacturer (known as the adaptor signature) you can derive the private key of a particular public key you both agree on (the turn). Anyone scraping the blockchain will just see signatures that look just like every other signature, and as long as nobody manages to hack you and get a copy of the adaptor signature or the private key, they cannot get the private key behind the public key (point) that the pointlocked branch needs (the prestige).
(Just to be clear, the public key you are getting the private key from, is distinct from the public key that the developemanufacturer will use for its funds. The activation key is different from the developer's onchain Bitcoin key, and it is the activation key whose private key you will be learning, not the developer's/manufacturer's onchain Bitcoin key).
So:
Taproot lets PTLCs exist onchain because they enable Schnorr, which is a requirement of PTLCs / Scriptless Script.
(technology-wise, take note that Scriptless Script works only for the "pointlocked" branch of the contract; you need normal Script, or a pre-signed nLockTimed transaction, for the "timelocked" branch. Since Taproot can embed a script, you can have the Taproot pubkey be a 2-of-2 to implement the Scriptless Script "pointlocked" branch, then have a hidden script that lets you recover the funds with an OP_CHECKLOCKTIMEVERIFY after the timeout if the seller does not claim the funds.)

Quantum Quibbles!

Now if you were really paying attention, you might have noticed this parenthetical:
(technical details: a Taproot output is 1 version byte + 32 byte public key, while a P2WPKH (bech32 singlesig) output is 1 version byte + 20 byte public key hash...)
So wait, Taproot uses raw 32-byte public keys, and not public key hashes? Isn't that more quantum-vulnerable??
Well, in theory yes. In practice, they probably are not.
It's not that hashes can be broken by quantum computes --- they're still not. Instead, you have to look at how you spend from a P2WPKH/P2PKH pay-to-public-key-hash.
When you spend from a P2PKH / P2WPKH, you have to reveal the public key. Then Bitcoin hashes it and checks if this matches with the public-key-hash, and only then actually validates the signature for that public key.
So an unconfirmed transaction, floating in the mempools of nodes globally, will show, in plain sight for everyone to see, your public key.
(public keys should be public, that's why they're called public keys, LOL)
And if quantum computers are fast enough to be of concern, then they are probably fast enough that, in the several minutes to several hours from broadcast to confirmation, they have already cracked the public key that is openly broadcast with your transaction. The owner of the quantum computer can now replace your unconfirmed transaction with one that pays the funds to itself. Even if you did not opt-in RBF, miners are still incentivized to support RBF on RBF-disabled transactions.
So the extra hash is not as significant a protection against quantum computers as you might think. Instead, the extra hash-and-compare needed is just extra validation effort.
Further, if you have ever, in the past, spent from the address, then there exists already a transaction indelibly stored on the blockchain, openly displaying the public key from which quantum computers can derive the private key. So those are still vulnerable to quantum computers.
For the most part, the cryptographers behind Taproot (and Bitcoin Core) are of the opinion that quantum computers capable of cracking Bitcoin pubkeys are unlikely to appear within a decade or two.
So:
For now, the homomorphic and linear properties of elliptic curve cryptography provide a lot of benefits --- particularly the linearity property is what enables Scriptless Script and simple multisignature (i.e. multisignatures that are just 1 signature onchain). So it might be a good idea to take advantage of them now while we are still fairly safe against quantum computers. It seems likely that quantum-safe signature schemes are nonlinear (thus losing these advantages).

Summary

I Wanna Be The Taprooter!

So, do you want to help activate Taproot? Here's what you, mister sovereign Bitcoin HODLer, can do!

But I Hate Taproot!!

That's fine!

Discussions About Taproot Activation

submitted by almkglor to Bitcoin [link] [comments]

[OWL WATCH] Waiting for "IOTA TIME" 14;

Disclaimer: This is my editing, so there could be some errors, misunderstandings or exaggerations.
Waiting for "IOTA TIME " (an era where IOTA defines nearly everything in terms of the block-chain world)

niels12어제 오후 4:51
IOTA funds are public: https://thetangle.org/address/IDNAFP9FWWKYGNDMKGJWZD9GATGRPTJYTYHLKFNDEQSISPSETLZQOSPGOHC99LMPXDEHSH9XYHNVOLUBBQPCEGHYK9 But they have probably other sources of income, like funding by government etc. And maybe also other IOTA funds on other addresses. I don't know.
Balance: 59.68 Ti


David Sønstebø어제 오후 9:41
I wonder how many times an out of context 2 year old private DM has to be addressed. At the time IOTA was approaching stagnation due to the actions of primarily CFB**, thus since we both started Jinn together which lead to IOTA,** I tried repeatedly to talk sense into him. I.E. "If you are going to torpedo all progress, let's just sell it all and start from scratch, fuck it" It's a figure of speech, while trying to talk sense into someone who insists that 1 + 1 = 3.59 My tax records show when I last sold iotas. February of 2018. Now stop reading into private DMs, especially ones taken out of context and especially those leaked by someone who's proclaimed he is going to ruin IOTA and my life. You need to go back to school if you think there is anything to 'speculate' on there.


dom어제 오후 4:15
u/unsy we will release the condensed version of them once we want to. Just because you so desperately desire them for whatever reason doesn't make us do it faster. Being in this space for so fucking long, last thing I want is to attempt to act in good faith again and then be screwed over by those trying to misconstrue reality and spread lies. We've been at that for too long. Once they are fully ready, and we have them in a format we like, we will publish them.


dom어제 오후 4:16
Our objective of the finance / legal department is to become one of the most trustworthy / transparent organizations in this space. Which is why we're setting up new and stricter policies in general


dom어제 오후 4:18
quite frankly, with everything that has happened up until now, I would certainly say that we are one of the most transparent organization (if we wanted it or not) u/unsy


dom어제 오후 4:21
u/unsy I am not worried about it. If we have problems, we always solve them - I think we've proven that by now. And as it stands right now with our current funding + our strategy, we are in good hands


David Sønstebø오늘 오전 6:41
Don't worry, a shitty FUD piece in a cryptoblog is nada
[오전 6:41]
We were once numero uno target by Jeffrey Epstein funded Joi Ito's MIT DCI
[오전 6:41]
This is nothing


------------------------------------------------------------------------------------

Antonio Nardella [IF]어제 오후 11:13
IMO the community has matured a lot, we have community and certified developers working with the IF in the X-Teams, there are new people coming in with direct interest in the tech (yeah, also spec is still popular) and from the chats that I've had, there are devs waiting for the breaking changes of Chrysalis P2, before starting to develop again.. But that's my assessment..


Jelle Millenaar [IF]어제 오후 9:15
Well, I can say the DID developments are going smooth. Starting publishing the first DIDs to the Tangle ;D


Jelle Millenaar [IF]어제 오후 9:15
And since I am totally not biased towards Identity, but its gonna be revolutionary ;D


Jelle Millenaar [IF]어제 오후 10:06
This is the perfect time to loose faith in the IOTA Foundations capability to deliver, especially after the network just received a major update with many improvements. Its just crypto being crypto,


dom오늘 오전 2:12
Yeh we'll go through it. This is the usual game...


Dominik Schiener
There is more tech maturity, more adoption and more progress than ever. We are one of the only projects which gets funding from government grants and corporations. Stop the attention grabbing headlines and get your sources right.


Long field
You can track their iota address, and I can tell they didn't sell any iota tokens in last two months


HusQy
IOTA is like a large decentralized network cable that connects any number of nodes with each other and that enables data and values ​​to be exchanged with one another, whereby the data is protected against manipulation and the value transactions against double spends. Thereon ...

... you can run any decentralized application (we call this layer) - e.g. a blockchain that stores certain data for as long as you want and limits the amount of data to be saved via fees like Bitcoin. Each of these uses inherit ...

... your security from the basic protocol and can specifically only save the data that is relevant for you (also decentralized). To say that IOTA is not a DLT is in principle not that wrong - it is a platform for DLTs and therefore much more powerful than all ...

... existing DLTs because it is much more flexible. For example, you can run Hashgraph in IOTA, or Bitcoin or whatever. And IOTA is the token that connects the entire ecosystem. This is of course "not yet" the case, but Chrysalis Part 2 is the first step.​


HusQy
@blocktrainerperhaps this explanation will enable you to understand where the journey is going. If a decentralized data storage is required, then you can build it with IOTA and it then has exactly the same properties in terms of permanent storage as Bitcoin.


Block trainer
We can also get a little more technical. The way you describe it, it sounds like an interoperability layer ... something like that here, which then equates to a polkadot etc.
📷

HusQy
In principle yes, only that it doesn't connect Bitcoin and ETH but "IOTA Smart Contracts" with "IOTA Storage" etc. It is not there to connect other projects but to offer the same as other projects, only faster and cheaper.

-------------------------------------------------------------------------------

Bitcoin Coach
And in 5 years there will be a completely new project, which then claims to be better than IOTA. And then should all the infrastructure be thrown overboard and the partners simply change the DLT?


HusQy
This is how technology works. It makes no sense to run the Internet on the basis of 64k modems just because many people have one at home. The change does not take place overnight but creeping and if you look at the BTC Dominance you can see that too.

Ultimately, everything will switch to the best technology and we'll see which that is :)


Block trainer
The "best" must also be defined. What are the classes to master?


HusQy
All classes. If there is a technology that can represent even one aspect better, then it is not yet good enough. Blockchain, for example, is a "degenerate" DAG with only one reference. The goal is that IOTA can also use blockchains if the use case requires it.


HusQy
The future is not "either DAG or blockchain" but both seamlessly linked within the same ecosystem. IOTA smart contracts use a blockchain, for example, but a separate chain for each smart contract and the blockchain is within the tangle.

Block trainer
According to the new definition, they are no longer saved ... A doublespent could change the reference retrospectively.


HusQy
That's not quite true. The tangle itself contains all information for all eternity and you cannot remove any information. Once the data has reached a certain age, it is no longer stored by every node in the network. But you can still ...

... still prove what happened in the part of the tangle that was "forgotten" by the nodes after a certain time. Now there are two ways to keep this evidence: 1. You save the evidence personally and can present it at any time. 2. Man ...​​

... writes a plug-in for the node, which monitors the Tangle for information of a certain type and keeps a copy of all car purchase-related data forever (or for at least 30 years, for example). All dealerships could then install this plugin and ...

... jointly store this data decentrally in order to query the information if necessary. However, you would only selectively save the data that interests you. The evidence they produce can still be verified by any node on the network.​​

If the server of a car dealership fails, it can download the data again from one of the other dealerships. Quasi like an application-related private blockchain which is secured by the Tangle. It is also conceivable that there are service providers for this ...

----------------------------------------------------------------------------------


HusQy
Data is only kept immutable. How do you intend to execute a token transaction over pure data? I'm simply sending the following two data transactions at the same time: 1. I'm sending $ 100 from address A to address B. 2. I'm sending $ 100 from address A to address C.


HusQy
In order to determine which transaction is successful / came first, you need consensus. Data transactions do not allow token transfer.


Block trainer
Why doesn't that allow token transfer? I can simply use it to sign my values. The question is about the meaning of the token. I can also sign that I have transferred € 10 for the petrol station. Or I transmit the proof via curled BTC ...


HusQy
Did I just describe you can publish two conflicting data transactions and no one knows which is the correct one: P


Block trainer
Unless you agree on a consensus. Time stamp + BTC (locked) in hash = value transmitted ... What else is the IOTA token for?


HusQy
Whether information is correct can only be seen in the context. Take a look at the difference between "data" and "information". For example, you can claim that you locked Bitcoin even though it didn't.


Block trainer
I may need a proof of this. See how, for example, BTC is unlocked in liquid or in the LN. The IOTA data layer is extremely similar to the principle of Lightning. Accordingly, the sending of tokens would be possible here, which means that I see the use case of the IOTA coin at risk


HusQy
Such a proof is impossible. The reason why this works with LN nodes is because LN nodes are Bitcoin nodes that know what is happening in the Bitcoin network and have "information" and not just "data": P What you are describing is technically impossible.


Block trainer
Data = information What can the LN not, what IOTA can sometimes?


HusQy
That's not rubbish. There is a huge difference between data and information, and inter-chain transactions are not possible because of that very difference. LN won't work - there are too many game theory problems: P​

--------------------------------------------------------------------------------------------

Dominik Schiener
There is more tech maturity, more adoption and more progress than ever. We are one of the only projects which gets funding from government grants and corporations. Stop the attention grabbing headlines and get your sources right.


Dominik Schiener
As an innovation leader in Europe, I certainly say we deserve to get grants. There is a below 7% success chance usually. And yes, everything is fully audited (by externals ofc), showing clearly how and that the money was used in achieving the milestones of the grant.

----------------------------------------------------------------------------------------------------------------------------------
submitted by btlkhs to Iota [link] [comments]

Power of the Command Line (bitcoin-cli, hwi, electrum, trezorctl)

I think some of the console tools available with HW wallets today are greatly under utilized. Here's a quick write-up on how to create and sign a TXN very similar to 43d27...1fc06 found on the SLIP-14 wallet. I'll be using TrezorCTL, Electrum, and HWI for the signing. I won't go much into the setup or install, but feel free to ask if you have questions about it. Note, you don't have to use all three of these. Any one will produce a valid signed TXN for broadcast. I just showed how to do it three ways. Whats more some of the Electrum and HWI steps are interchangeable.
ColdCard also has a utility called ckcc that will do the sign operation instead of HWI, but in many ways they are interchangeable. KeepKey and Ledger both have libraries for scripted signing but no one-shot, one-line console apps that I know of. But HWI and Electrum of course work on all four.

TrezorCTL

This is the what most would think of to use to craft and sign TXNs, and is definitely very simple. The signing uses a script called build_tx.py to create a JSON file that is then used by the btc sign-tx command. The whole process is basically:
  1. tools/build_tx.py | trezorctl btc sign-tx -
This just means, take the output of build_tx and sign it. To copy 43d27...1fc06, I wrote a small script to feed build_tx, so my process looks like:
  1. ~/input.sh | tools/build_tx.py | trezorctl btc sign-tx -
But it's all very simple. Note... I used TrezorCTL v0.12.2 but build_tx.py version 0.13.0 1.

input.sh

```

!/bin/bash

secho() { sleep 1; echo $*}
secho "Testnet" # coin name secho "tbtc1.trezor.io" # blockbook server and outpoint (below) secho "e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00:0" secho "m/84'/1'/0'/0/0" # prev_out derivation to signing key secho "4294967293" # Sequence for RBF; hex(-3) secho "segwit" # Signature type on prev_out to use secho "" # NACK to progress to outs secho "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3" # out[0].addr secho "10000000" # out[1].amt secho "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu" # out[1].addr secho "20000000" # out[1].amt secho "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x" # out[2].addr secho "99999694" # out[2].amt secho "" # NACK to progress to change secho "" # NACK to skip change secho "2" # txn.version secho "0" # txn.locktime ```

Electrum

Electrum is one of the better GUI wallets available, but it also has a pretty good console interface. Like before you need your Trezor with the SLIP-14 wallet loaded and paired to Electrum. I'll assume Electrum is up and running with the Trezor wallet loaded to make things simple.
Like with TrezorCTL, Electrum feeds on a JSON file, but unlike TrezorCTL it needs that JSON squished into the command line. This is a simple sed command, but I won't bore you with the details, but just assume that's done. So the process in Electrum (v4.0.3) looks like:
  1. electrum serialize (create psbt to sign)
  2. electrum --wallet signtransaction (sign said psbt)
Still pretty simple right! Below is the JSON I smushed for #1

txn.json

{ "inputs": [{ "prevout_hash":"e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00", "prevout_n": 0, "value_sats": 129999867 }], "outputs": [{ "address": "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3", "value_sats": 10000000 },{ "address": "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu", "value_sats": 20000000 },{ "address": "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x", "value_sats": 99999694 }]}

HWI

HWI is an unsung hero in my book. It's a very small clean and simple interface between HW wallets and Bitcoin Core. It currently supports a good range of HW wallets. It keeps itself narrowly focused on TXN signing and offloads most everything else to Bitcoin Core. Again, I'll assume you've imported your Trezor keypool into Core and done the requisite IBD and rescan. And if you don't have the RPC enabled, you can always clone these commands into the QT-console.
To sign our TXN in HWI (v1.1.2), we will first need to craft (and finalize) it in Bitcoin Core (0.21.1). Like in Electrum, we will have to use simple sed to smush some JSON into command arguments, but I'll assume you have that covered. It will take an inputs.json and an outputs.json named separately.
  1. bitcoin-cli createpsbt (create psbt)
  2. bitcoin-cli -rpcwallet= walletprocesspsbt (process psbt)
  3. hwi -f signtx (sign psbt)
  4. bitcoin-cli -rpcwallet= finalizepsbt (get a signed TXN from psbt)
A little more involved, but still nothing too bad. Plus this gives you the full power of Bitcoin Core including integrations with LND (lightning).

inputs.json

[{ "txid": "e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00", "vout": 0 }]

outputs.json

[{ "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3": 0.10000000 },{ "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu": 0.20000000 },{ "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x": 0.99999694 }]

Conclusion

This may all seem like very low level coding, but is surprisingly simple once you get a knack for it. Whats more, all these platforms support testnet which allows you to practice with valueless coins until you get the hang of it. And, like many things in bitcoin, this is all (mostly) python, which is one of the easier languages to learn.
Enjoy
Footnotes
1 - https://github.com/trezotrezor-firmware/issues/1296
submitted by brianddk to Bitcoin [link] [comments]

[OWL WATCH] Waiting for "IOTA TIME" 27;

Disclaimer: This is my editing, so there could be always some misunderstandings and exaggerations, plus many convos are from 'spec channel', so take it with a grain of salt, pls.
+ I added some recent convos afterward.
--------------------------------------------------​
📷
Luigi Vigneri [IF]어제 오후 8:26
Giving the opportunity to everybody to set up/run nodes is one of IOTA's priority. A minimum amount of resources is obviously required to prevent easy attacks, but we are making sure that being active part of the IOTA network can be possible without crazy investments.
we are building our solution in such a way that the protocol is fair and lightweight.

📷
Hans Moog [IF]어제 오후 11:24
IOTA is not "free to use" but it's - fee-less
you have tokens? you can send them around for free
📷
Hans Moog [IF]어제 오후 11:25
you have no tokens? you have to pay to use the network
📷
lekanovic어제 오후 11:25
I think it is a smart way to avoid the spamming network problem
📷
Hans Moog [IF]어제 오후 11:26
owning tokens is essentially like owning a share of the actual network
and the throughput it can process
📷
Hans Moog [IF]어제 오후 11:26****​
if you don't need all of that yourself, you can rent it out to people and earn money
📷
Hans Moog [IF]어제 오후 11:27
mana = tokens * time since you own them
simplified
📷
Hans Moog [IF]어제 오후 11:27
the longer you hold your tokens and the more you have, the more mana you have
but every now and then you have to move them to "realize" that mana
📷
lekanovic어제 오후 11:28
Is there any other project that is using a Mana solution to the network fee problem ?
📷
Hans Moog [IF]어제 오후 11:28
nah
the problem with current protocol is that they are leader based
📷
Hans Moog [IF]어제 오후 11:29
you need absolute consensus on who the current leaders are and what their influence in the network is
that's how blockchains works
📷
Hans Moog [IF]어제 오후 11:29
if two block producers produce 2 blocks at the same time, then you have to choose which one wins
and where everybody attaches their next block to
IOTA works differently and doesn't need to choose a single leader
we therefore have a much bigger flexibility of designing our sybil protection mechanisms
in a way, mana is also supposed to solve the problem of "rewarding" the infrastructure instead of the validators
in blockchain only the miners get all the money
running a node and even if it's one that is used by a lot of people will only cost
you won't get anything back
no fees, nothing
the miners get it all
📷
Hans Moog [IF]어제 오후 11:31
in IOTA, the node operators receive the mana
which gives them a share of the network throughput
📷
Hans Moog [IF]어제 오후 11:32
because in blockchain you need to decide whose txs become part of the blocks
and it's not really based on networking protocols like AIMD
📷
lekanovic어제 오후 11:33
And the more Mana your node have, the more trust your node has and you have more to say in the FPC, is that correct?
📷
Hans Moog [IF]어제 오후 11:33
yeah
a node that has processed a lot of txs of its users will have more mana than other nodes
and therefore a bigger say in deciding conflicts
its a direct measure of "trust" by its users
📷
lekanovic어제 오후 11:34
And choosing committee for dRNG would be done on L1 protocol level?
Everything regarding Mana will be L1 level, right?
📷
Hans Moog [IF]어제 오후 11:35
Yeah
Mana is layer1, but will also be used as weight in L2 solutions like smart contracts
📷
lekanovic어제 오후 11:35
And you are not dependant on using SC to implement this
📷
Hans Moog [IF]어제 오후 11:35
No, you don't need smart contracts
That's all the base layer
📷
Hans Moog [IF]어제 오후 11:37
'Time' actually takes into account things like decay
So it doesn't just increase forever
It's close to "Demurrage" in monetary theory
📷
lekanovic어제 오후 11:36
For projects to be able to connect to Polkadot or Cosmos, you need to get the state of the ledger.
Will it be possible to get the Tangle state?
If this would be possible, then I think it would be SUPER good for IOTA
📷
Hans Moog [IF]어제 오후 11:38
Yeah but polkadot is not connecting other dlts
Just inhouse stuff
📷
Hyperware어제 오후 11:39
Is there still a cap on mana so that the rich don't get richer?
📷
Hans Moog [IF]어제 오후 11:39
Yes mana is capped
📷
TangleAccountant어제 오후 11:39
u/Hans Moog [IF] My first thought is that the evolution of this renting system will lead to several big mana renting companies that pool together tons of token holders mana. That way businesses looking to rent mana just need to deal with a reliable mana renting company for years instead of a new individual every couple of months (because life happens and you don't know if that individual will need to sell their IOTAs due to personal reasons). Any thoughts on this?
📷
Hans Moog [IF]어제 오후 11:41
u/TangleAccountant yes that is likely - but also not a bad thing - token holders will have a place to get their monthly payout and the companies that want to use the tangle without having tokens have a place to pay
📷
TangleAccountant어제 오후 11:42
Oh I completely agree. That's really cool. I'll take a stab at creating one of those companies in the US.
📷
Hans Moog [IF]어제 오후 11:42
And everybody who wants to run a node themselves or has tokens and wants use the tangle for free can do so
But "leachers" that would want to use the network for free won't be able to do so
I mean ultimately there will always be "fees", as there is no "free lunch".
You have a certain amount of resources that a network can process and you have a certain demand.
And that will naturally result in fees based on supply / demand
what you can do however is to build a system where the actual users of that system that legitimately want to use it can do so for free,
just because they already "invest" enough by having tokens
or running infrastructure
they are already contributing to the well-being of the network through these two aspects alone
it would be stupid to ask those guys for additional fees
and mana essentially tries to be such a measure of honesty among the users
📷
Hyperware어제 오후 11:47
It's interesting from an investment perspective that having tokens/mana is like owning a portion of the network.
📷
Hans Moog [IF]어제 오후 11:48
Yeah, you are owning a certain % of the throughput and whatever the price will ultimately be to execute on this network - you will earn proportionally
but you have to keep in mind that we are trying to build the most efficient DLT that you could possibly ever build
📷
semibaron어제 오후 11:48
The whole mana (tokens) = share of network throuput sounds very much like EOS tbh
Just that EOS uses DPoS
📷
Hans Moog [IF]어제 오후 11:50
yeah i mean there is really not too many new things under the sun - you can just tweak a few things here and there, when it comes to distributing resources
DPoS is simply not very nice from a centralization aspect
📷
Hans Moog [IF]어제 오후 11:50
at least not the way EOS does it
delegating weights is 1 thing
but assuming that the weight will always be in a way that 21 "identities" run the whole network is bad
in the current world you see a centralization of power
but ultimately we want to build a future where the wealth is more evenly distributed
and the same goes for voting power
📷
Hans Moog [IF]어제 오후 11:52
blockchain needs leader selection
it only works with such a centralizing component
IOTA doesn't need that
it's delusional to say that IOTA wouldn't have any such centralization
but maybe we get better than just a handselected nodes 📷
📷
Phantom3D어제 오후 11:52
How would this affect a regular hodler without a node. Should i keep my tokens elsewere to generate mana and put the tokens to use?
📷
Hans Moog [IF]어제 오후 11:53
you can do whatever you want with your mana
just make an account at a node you regularly use and use it to build up a reputation with that node
to be able to use your funds for free
or run a node yourself
or rent it out to companies if you just hodl
📷
semibaron어제 오후 11:54
Will there be a build-in function into the node software / wallet to delegate ("sell") my mana?
📷
Hans Moog [IF]어제 오후 11:55
u/semibaron not from the start - that would happen on a 2nd layer
------------------------------------------------------------------------------------------------------------
📷
dom어제 오후 9:49
suddenly be incentive to hold iota?
to generate Mana
📷
Hyperware오늘 오전 4:21
The only thing I can really do, is believe that the IF have smart answers and are still building the best solutions they can for the sake of the vision
📷
dom오늘 오전 4:43
100% - which is why we're spending so much effort to communicate it more clearly now
we'll do an AMA on this topic very soon
📷
M [s2]오늘 오전 4:54
u/dom​ please accept my question for the AMA: will IOTA remain a permissionless system and if so, how?
📷
dom오늘 오전 4:57
of course it remains permissionless
📷
dom오늘 오전 5:20
what is permissioned about it?
is ETH or Bitcoin permissioned because you have to pay a transaction fee in their native token?
📷
Gerrit오늘 오전 5:24
How did your industry partners think about the mana solution and the fact they need to hold the token to ensure network throughput?
📷
dom오늘 오전 5:26
u/Gerrit considering how the infrastructure, legal and regulatory frameworks are improving around the adoption and usage of crypto-currencies within large companies, I really think that we are introducing this concept exactly at the right time. It should make enterprise partners comfortable in using the permissionless network without much of a hurdle. They can always launch their own network if they want to ...
📷
Gerrit오늘 오전 5:27
Launching their own network can’t be what you want
📷
dom오늘 오전 5:27
exactly
but that is what's happening with Ethereum and all the other networks
they don't hold Ether tokens either.
📷
Gerrit오늘 오전 5:32
Will be very exciting to see if ongoing regulation will „allow“ companies to invest and hold the tokens. With upcoming custody solutions that would be a fantastic play.
📷
Hans Moog [IF]오늘 오전 5:34
It's still possible to send transactions even without mana - mana is only used in times of congestion to give the people that have more mana more priority
there will still be sharding to keep the network free most of the time
📷
Hans Moog [IF]오늘 오전 5:35
but without a protection mechanism, somebody could just spam a lot of bullshit and you could break the network(수정됨)
you need some form of protection from this
📷
M [s2]오늘 오전 5:36
u/Hans Moog [IF] so when I have 0 Mana, I can still send transactions? This is actually the point where it got strange...
📷
Hans Moog [IF]오늘 오전 5:37
yes you can
unless the network is close to its processing capabilities / being attacked by spammers
then the nodes will favor the mana holders
📷
Hans Moog [IF]오늘 오전 5:37
but having mana is not a requirement for many years to come
currently even people having fpgas can't spam that many tps
and we will also have sharding implemented by then
📷
M [s2]오늘 오전 5:39
Thank you u/Hans Moog [IF] ! This is the actually important piece of info!
📷
Basha오늘 오전 5:38
ok, i thought it was communicated that you need at least 1 mana to process a transaction.
from the blogpost: "... a node with 0 mana can issue no transactions."
maybe they meant during the congestion**, but if that's the case maybe you should add that**
📷
Hans Moog [IF]오늘 오전 5:42
its under the point "Congestion control:"
yeah this only applies to spam attacks
network not overloaded = no mana needed
📷
Hans Moog [IF]오늘 오전 5:43
if congested => favor txs from people who have the most skin in the game
but sharding will try to keep the network non-congested most of the time - but there might be short periods of time where an attacker might bring the network close to its limits
and of course its going to take a while to add this, so we need a protection mechanism till sharding is supported(수정됨)
📷
Hans Moog [IF]오늘 오전 6:36
I don't have a particular problem with EOS or their amount of validators - the reason why I think blockchain is inferior has really nothing to do with the way you do sybil protection
and with validators I mean "voting nodes"
I mean even bitcoin has less mining pools
and you could compare mining pools to dpos in some sense
where people assign their weight (in that case hashing power) to the corresponding mining pools
so EOS is definitely not less decentralized than any other tech
but having more identities having weight in the decision process definitely makes it harder to corrupt a reasonable fraction of the system and makes it easier to shard
so its desirable to have this property(수정됨)

-------------------------------------------------

📷
Antonio Nardella [IF]오늘 오전 3:36
https://twitter.com/cmcanalytics/status/1310866311929647104?s=19
u/C3PO [92% Cooless] They could also add more git repos instead of the wallet one, and we would probably be #1 there too..
----------------------------------------------------------------------------------
Disclaimer:
I'm sorry, maybe I'm fueling some confusion through posting this mana-thing too soon,
but, instead of erasing this posting, I'm adding recent convos.
Certain things about mana seem to be not clear, yet.
It would be better to wait for some official clarification.
But, I hope the community gives its full support to IF, 'cause
there could be always some bumps along the untouched, unchartered way.
--------------------------------------------------------------------------------------
Recent Addition;

Billy Sanders [IF]오늘 오후 1:36

It's still possible to send transactions even without mana - mana is only used in times of congestion to give the people that have more mana more priority
u/Hans Moog [IF] Im sorry Hans, but this is false in the current congestion control algorithm. No mana = no transactions. To be honest, we havent really tried to make it work so that you can sent transactions with no mana during ties with no congestion, but I dont see how you can enable this and still maintain the sybil protection required. u/Luigi Vigneri [IF] What do you think?📷

Dave [EF]오늘 오후 2:19

Suggestion: Sidebar, then get back to us with the verdict.(수정됨)📷2📷

dom오늘 오후 2:27

No Mana no tx will definitely not be the case(수정됨)📷5📷7***[오후 2:28]***Billy probably means the previous rate control paper as it was written by Luigi. I'll clarify with them📷

Hans Moog [IF]오늘 오후 2:29

When was this decided u/Billy Sanders [IF] and by whom? Was this discussed at last resum when I wasnt there? The last info that I had was that the congestion control should only kick in when there is congestion?!?***[오후 2:29]***📷 📷 📷📷

Navin Ramachandran [IF]오늘 오후 2:30

Let's sidebar this discussion and return when we have agreement. Dave has the right idea

submitted by btlkhs to Iota [link] [comments]

Technical: The Path to Taproot Activation

Taproot! Everybody wants to have it, somebody wants to make it, nobody knows how to get it!
(If you are asking why everybody wants it, see: Technical: Taproot: Why Activate?)
(Pedants: I mostly elide over lockin times)
Briefly, Taproot is that neat new thing that gets us:
So yes, let's activate taproot!

The SegWit Wars

The biggest problem with activating Taproot is PTSD from the previous softfork, SegWit. Pieter Wuille, one of the authors of the current Taproot proposal, has consistently held the position that he will not discuss activation, and will accept whatever activation process is imposed on Taproot. Other developers have expressed similar opinions.
So what happened with SegWit activation that was so traumatic? SegWit used the BIP9 activation method. Let's dive into BIP9!

BIP9 Miner-Activated Soft Fork

Basically, BIP9 has a bunch of parameters:
Now there are other parameters (name, starttime) but they are not anywhere near as important as the above two.
A number that is not a parameter, is 95%. Basically, activation of a BIP9 softfork is considered as actually succeeding if at least 95% of blocks in the last 2 weeks had the specified bit in the nVersion set. If less than 95% had this bit set before the timeout, then the upgrade fails and never goes into the network. This is not a parameter: it is a constant defined by BIP9, and developers using BIP9 activation cannot change this.
So, first some simple questions and their answers:

The Great Battles of the SegWit Wars

SegWit not only fixed transaction malleability, it also created a practical softforkable blocksize increase that also rebalanced weights so that the cost of spending a UTXO is about the same as the cost of creating UTXOs (and spending UTXOs is "better" since it limits the size of the UTXO set that every fullnode has to maintain).
So SegWit was written, the activation was decided to be BIP9, and then.... miner signalling stalled at below 75%.
Thus were the Great SegWit Wars started.

BIP9 Feature Hostage

If you are a miner with at least 5% global hashpower, you can hold a BIP9-activated softfork hostage.
You might even secretly want the softfork to actually push through. But you might want to extract concession from the users and the developers. Like removing the halvening. Or raising or even removing the block size caps (which helps larger miners more than smaller miners, making it easier to become a bigger fish that eats all the smaller fishes). Or whatever.
With BIP9, you can hold the softfork hostage. You just hold out and refuse to signal. You tell everyone you will signal, if and only if certain concessions are given to you.
This ability by miners to hold a feature hostage was enabled because of the miner-exit allowed by the timeout on BIP9. Prior to that, miners were considered little more than expendable security guards, paid for the risk they take to secure the network, but not special in the grand scheme of Bitcoin.

Covert ASICBoost

ASICBoost was a novel way of optimizing SHA256 mining, by taking advantage of the structure of the 80-byte header that is hashed in order to perform proof-of-work. The details of ASICBoost are out-of-scope here but you can read about it elsewhere
Here is a short summary of the two types of ASICBoost, relevant to the activation discussion.
Now, "overt" means "obvious", while "covert" means hidden. Overt ASICBoost is obvious because nVersion bits that are not currently in use for BIP9 activations are usually 0 by default, so setting those bits to 1 makes it obvious that you are doing something weird (namely, Overt ASICBoost). Covert ASICBoost is non-obvious because the order of transactions in a block are up to the miner anyway, so the miner rearranging the transactions in order to get lower power consumption is not going to be detected.
Unfortunately, while Overt ASICBoost was compatible with SegWit, Covert ASICBoost was not. This is because, pre-SegWit, only the block header Merkle tree committed to the transaction ordering. However, with SegWit, another Merkle tree exists, which commits to transaction ordering as well. Covert ASICBoost would require more computation to manipulate two Merkle trees, obviating the power benefits of Covert ASICBoost anyway.
Now, miners want to use ASICBoost (indeed, about 60->70% of current miners probably use the Overt ASICBoost nowadays; if you have a Bitcoin fullnode running you will see the logs with lots of "60 of last 100 blocks had unexpected versions" which is exactly what you would see with the nVersion manipulation that Overt ASICBoost does). But remember: ASICBoost was, at around the time, a novel improvement. Not all miners had ASICBoost hardware. Those who did, did not want it known that they had ASICBoost hardware, and wanted to do Covert ASICBoost!
But Covert ASICBoost is incompatible with SegWit, because SegWit actually has two Merkle trees of transaction data, and Covert ASICBoost works by fudging around with transaction ordering in a block, and recomputing two Merkle Trees is more expensive than recomputing just one (and loses the ASICBoost advantage).
Of course, those miners that wanted Covert ASICBoost did not want to openly admit that they had ASICBoost hardware, they wanted to keep their advantage secret because miners are strongly competitive in a very tight market. And doing ASICBoost Covertly was just the ticket, but they could not work post-SegWit.
Fortunately, due to the BIP9 activation process, they could hold SegWit hostage while covertly taking advantage of Covert ASICBoost!

UASF: BIP148 and BIP8

When the incompatibility between Covert ASICBoost and SegWit was realized, still, activation of SegWit stalled, and miners were still not openly claiming that ASICBoost was related to non-activation of SegWit.
Eventually, a new proposal was created: BIP148. With this rule, 3 months before the end of the SegWit timeout, nodes would reject blocks that did not signal SegWit. Thus, 3 months before SegWit timeout, BIP148 would force activation of SegWit.
This proposal was not accepted by Bitcoin Core, due to the shortening of the timeout (it effectively times out 3 months before the initial SegWit timeout). Instead, a fork of Bitcoin Core was created which added the patch to comply with BIP148. This was claimed as a User Activated Soft Fork, UASF, since users could freely download the alternate fork rather than sticking with the developers of Bitcoin Core.
Now, BIP148 effectively is just a BIP9 activation, except at its (earlier) timeout, the new rules would be activated anyway (instead of the BIP9-mandated behavior that the upgrade is cancelled at the end of the timeout).
BIP148 was actually inspired by the BIP8 proposal (the link here is a historical version; BIP8 has been updated recently, precisely in preparation for Taproot activation). BIP8 is basically BIP9, but at the end of timeout, the softfork is activated anyway rather than cancelled.
This removed the ability of miners to hold the softfork hostage. At best, they can delay the activation, but not stop it entirely by holding out as in BIP9.
Of course, this implies risk that not all miners have upgraded before activation, leading to possible losses for SPV users, as well as again re-pressuring miners to signal activation, possibly without the miners actually upgrading their software to properly impose the new softfork rules.

BIP91, SegWit2X, and The Aftermath

BIP148 inspired countermeasures, possibly from the Covert ASiCBoost miners, possibly from concerned users who wanted to offer concessions to miners. To this day, the common name for BIP148 - UASF - remains an emotionally-charged rallying cry for parts of the Bitcoin community.
One of these was SegWit2X. This was brokered in a deal between some Bitcoin personalities at a conference in New York, and thus part of the so-called "New York Agreement" or NYA, another emotionally-charged acronym.
The text of the NYA was basically:
  1. Set up a new activation threshold at 80% signalled at bit 4 (vs bit 1 for SegWit).
    • When this 80% signalling was reached, miners would require that bit 1 for SegWit be signalled to achive the 95% activation needed for SegWit.
  2. If the bit 4 signalling reached 80%, increase the block weight limit from the SegWit 4000000 to the SegWit2X 8000000, 6 months after bit 1 activation.
The first item above was coded in BIP91.
Unfortunately, if you read the BIP91, independently of NYA, you might come to the conclusion that BIP91 was only about lowering the threshold to 80%. In particular, BIP91 never mentions anything about the second point above, it never mentions that bit 4 80% threshold would also signal for a later hardfork increase in weight limit.
Because of this, even though there are claims that NYA (SegWit2X) reached 80% dominance, a close reading of BIP91 shows that the 80% dominance was only for SegWit activation, without necessarily a later 2x capacity hardfork (SegWit2X).
This ambiguity of bit 4 (NYA says it includes a 2x capacity hardfork, BIP91 says it does not) has continued to be a thorn in blocksize debates later. Economically speaking, Bitcoin futures between SegWit and SegWit2X showed strong economic dominance in favor of SegWit (SegWit2X futures were traded at a fraction in value of SegWit futures: I personally made a tidy but small amount of money betting against SegWit2X in the futures market), so suggesting that NYA achieved 80% dominance even in mining is laughable, but the NYA text that ties bit 4 to SegWit2X still exists.
Historically, BIP91 triggered which caused SegWit to activate before the BIP148 shorter timeout. BIP148 proponents continue to hold this day that it was the BIP148 shorter timeout and no-compromises-activate-on-August-1 that made miners flock to BIP91 as a face-saving tactic that actually removed the second clause of NYA. NYA supporters keep pointing to the bit 4 text in the NYA and the historical activation of BIP91 as a failed promise by Bitcoin developers.

Taproot Activation Proposals

There are two primary proposals I can see for Taproot activation:
  1. BIP8.
  2. Modern Softfork Activation.
We have discussed BIP8: roughly, it has bit and timeout, if 95% of miners signal bit it activates, at the end of timeout it activates. (EDIT: BIP8 has had recent updates: at the end of timeout it can now activate or fail. For the most part, in the below text "BIP8", means BIP8-and-activate-at-timeout, and "BIP9" means BIP8-and-fail-at-timeout)
So let's take a look at Modern Softfork Activation!

Modern Softfork Activation

This is a more complex activation method, composed of BIP9 and BIP8 as supcomponents.
  1. First have a 12-month BIP9 (fail at timeout).
  2. If the above fails to activate, have a 6-month discussion period during which users and developers and miners discuss whether to continue to step 3.
  3. Have a 24-month BIP8 (activate at timeout).
The total above is 42 months, if you are counting: 3.5 years worst-case activation.
The logic here is that if there are no problems, BIP9 will work just fine anyway. And if there are problems, the 6-month period should weed it out. Finally, miners cannot hold the feature hostage since the 24-month BIP8 period will exist anyway.

PSA: Being Resilient to Upgrades

Software is very birttle.
Anyone who has been using software for a long time has experienced something like this:
  1. You hear a new version of your favorite software has a nice new feature.
  2. Excited, you install the new version.
  3. You find that the new version has subtle incompatibilities with your current workflow.
  4. You are sad and downgrade to the older version.
  5. You find out that the new version has changed your files in incompatible ways that the old version cannot work with anymore.
  6. You tearfully reinstall the newer version and figure out how to get your lost productivity now that you have to adapt to a new workflow
If you are a technically-competent user, you might codify your workflow into a bunch of programs. And then you upgrade one of the external pieces of software you are using, and find that it has a subtle incompatibility with your current workflow which is based on a bunch of simple programs you wrote yourself. And if those simple programs are used as the basis of some important production system, you hve just screwed up because you upgraded software on an important production system.
And well, one of the issues with new softfork activation is that if not enough people (users and miners) upgrade to the newest Bitcoin software, the security of the new softfork rules are at risk.
Upgrading software of any kind is always a risk, and the more software you build on top of the software-being-upgraded, the greater you risk your tower of software collapsing while you change its foundations.
So if you have some complex Bitcoin-manipulating system with Bitcoin somewhere at the foundations, consider running two Bitcoin nodes:
  1. One is a "stable-version" Bitcoin node. Once it has synced, set it up to connect=x.x.x.x to the second node below (so that your ISP bandwidth is only spent on the second node). Use this node to run all your software: it's a stable version that you don't change for long periods of time. Enable txiindex, disable pruning, whatever your software needs.
  2. The other is an "always-up-to-date" Bitcoin Node. Keep its stoarge down with pruning (initially sync it off the "stable-version" node). You can't use blocksonly if your "stable-version" node needs to send transactions, but otherwise this "always-up-to-date" Bitcoin node can be kept as a low-resource node, so you can run both nodes in the same machine.
When a new Bitcoin version comes up, you just upgrade the "always-up-to-date" Bitcoin node. This protects you if a future softfork activates, you will only receive valid Bitcoin blocks and transactions. Since this node has nothing running on top of it, it is just a special peer of the "stable-version" node, any software incompatibilities with your system software do not exist.
Your "stable-version" Bitcoin node remains the same version until you are ready to actually upgrade this node and are prepared to rewrite most of the software you have running on top of it due to version compatibility problems.
When upgrading the "always-up-to-date", you can bring it down safely and then start it later. Your "stable-version" wil keep running, disconnected from the network, but otherwise still available for whatever queries. You do need some system to stop the "always-up-to-date" node if for any reason the "stable-version" goes down (otherwisee if the "always-up-to-date" advances its pruning window past what your "stable-version" has, the "stable-version" cannot sync afterwards), but if you are technically competent enough that you need to do this, you are technically competent enough to write such a trivial monitor program (EDIT: gmax notes you can adjust the pruning window by RPC commands to help with this as well).
This recommendation is from gmaxwell on IRC, by the way.
submitted by almkglor to Bitcoin [link] [comments]

[ Bitcoin ] Technical: Taproot: Why Activate?

Topic originally posted in Bitcoin by almkglor [link]
This is a follow-up on https://old.reddit.com/Bitcoin/comments/hqzp14/technical_the_path_to_taproot_activation/
Taproot! Everybody wants it!! But... you might ask yourself: sure, everybody else wants it, but why would I, sovereign Bitcoin HODLer, want it? Surely I can be better than everybody else because I swapped XXX fiat for Bitcoin unlike all those nocoiners?
And it is important for you to know the reasons why you, o sovereign Bitcoiner, would want Taproot activated. After all, your nodes (or the nodes your wallets use, which if you are SPV, you hopefully can pester to your wallet vendoimplementor about) need to be upgraded in order for Taproot activation to actually succeed instead of becoming a hot sticky mess.
First, let's consider some principles of Bitcoin.
I'm sure most of us here would agree that the above are very important principles of Bitcoin and that these are principles we would not be willing to remove. If anything, we would want those principles strengthened (especially the last one, financial privacy, which current Bitcoin is only sporadically strong with: you can get privacy, it just requires effort to do so).
So, how does Taproot affect those principles?

Taproot and Your /Coins

Most HODLers probably HODL their coins in singlesig addresses. Sadly, switching to Taproot would do very little for you (it gives a mild discount at spend time, at the cost of a mild increase in fee at receive time (paid by whoever sends to you, so if it's a self-send from a P2PKH or bech32 address, you pay for this); mostly a wash).
(technical details: a Taproot output is 1 version byte + 32 byte public key, while a P2WPKH (bech32 singlesig) output is 1 version byte + 20 byte public key hash, so the Taproot output spends 12 bytes more; spending from a P2WPKH requires revealing a 32-byte public key later, which is not needed with Taproot, and Taproot signatures are about 9 bytes smaller than P2WPKH signatures, but the 32 bytes plus 9 bytes is divided by 4 because of the witness discount, so it saves about 11 bytes; mostly a wash, it increases blockweight by about 1 virtual byte, 4 weight for each Taproot-output-input, compared to P2WPKH-output-input).
However, as your HODLings grow in value, you might start wondering if multisignature k-of-n setups might be better for the security of your savings. And it is in multisignature that Taproot starts to give benefits!
Taproot switches to using Schnorr signing scheme. Schnorr makes key aggregation -- constructing a single public key from multiple public keys -- almost as trivial as adding numbers together. "Almost" because it involves some fairly advanced math instead of simple boring number adding, but hey when was the last time you added up your grocery list prices by hand huh?
With current P2SH and P2WSH multisignature schemes, if you have a 2-of-3 setup, then to spend, you need to provide two different signatures from two different public keys. With Taproot, you can create, using special moon math, a single public key that represents your 2-of-3 setup. Then you just put two of your devices together, have them communicate to each other (this can be done airgapped, in theory, by sending QR codes: the software to do this is not even being built yet, but that's because Taproot hasn't activated yet!), and they will make a single signature to authorize any spend from your 2-of-3 address. That's 73 witness bytes -- 18.25 virtual bytes -- of signatures you save!
And if you decide that your current setup with 1-of-1 P2PKH / P2WPKH addresses is just fine as-is: well, that's the whole point of a softfork: backwards-compatibility; you can receive from Taproot users just fine, and once your wallet is updated for Taproot-sending support, you can send to Taproot users just fine as well!
(P2WPKH and P2WSH -- SegWit v0 -- addresses start with bc1q; Taproot -- SegWit v1 --- addresses start with bc1p, in case you wanted to know the difference; in bech32 q is 0, p is 1)
Now how about HODLers who keep all, or some, of their coins on custodial services? Well, any custodial service worth its salt would be doing at least 2-of-3, or probably something even bigger, like 11-of-15. So your custodial service, if it switched to using Taproot internally, could save a lot more (imagine an 11-of-15 getting reduced from 11 signatures to just 1!), which --- we can only hope! --- should translate to lower fees and better customer service from your custodial service!
So I think we can say, very accurately, that the Bitcoin principle --- that YOU are in control of your money --- can only be helped by Taproot (if you are doing multisignature), and, because P2PKH and P2WPKH remain validly-usable addresses in a Taproot future, will not be harmed by Taproot. Its benefit to this principle might be small (it mostly only benefits multisignature users) but since it has no drawbacks with this (i.e. singlesig users can continue to use P2WPKH and P2PKH still) this is still a nice, tidy win!
(even singlesig users get a minor benefit, in that multisig users will now reduce their blockchain space footprint, so that fees can be kept low for everybody; so for example even if you have your single set of private keys engraved on titanium plates sealed in an airtight box stored in a safe buried in a desert protected by angry nomads riding giant sandworms because you're the frickin' Kwisatz Haderach, you still gain some benefit from Taproot)
And here's the important part: if P2PKH/P2WPKH is working perfectly fine with you and you decide to never use Taproot yourself, Taproot will not affect you detrimentally. First do no harm!

Taproot and Your Contracts

No one is an island, no one lives alone. Give and you shall receive. You know: by trading with other people, you can gain expertise in some obscure little necessity of the world (and greatly increase your productivity in that little field), and then trade the products of your expertise for necessities other people have created, all of you thereby gaining gains from trade.
So, contracts, which are basically enforceable agreements that facilitate trading with people who you do not personally know and therefore might not trust.
Let's start with a simple example. You want to buy some gewgaws from somebody. But you don't know them personally. The seller wants the money, you want their gewgaws, but because of the lack of trust (you don't know them!! what if they're scammers??) neither of you can benefit from gains from trade.
However, suppose both of you know of some entity that both of you trust. That entity can act as a trusted escrow. The entity provides you security: this enables the trade, allowing both of you to get gains from trade.
In Bitcoin-land, this can be implemented as a 2-of-3 multisignature. The three signatories in the multisgnature would be you, the gewgaw seller, and the escrow. You put the payment for the gewgaws into this 2-of-3 multisignature address.
Now, suppose it turns out neither of you are scammers (whaaaat!). You receive the gewgaws just fine and you're willing to pay up for them. Then you and the gewgaw seller just sign a transaction --- you and the gewgaw seller are 2, sufficient to trigger the 2-of-3 --- that spends from the 2-of-3 address to a singlesig the gewgaw seller wants (or whatever address the gewgaw seller wants).
But suppose some problem arises. The seller gave you gawgews instead of gewgaws. Or you decided to keep the gewgaws but not sign the transaction to release the funds to the seller. In either case, the escrow is notified, and if it can sign with you to refund the funds back to you (if the seller was a scammer) or it can sign with the seller to forward the funds to the seller (if you were a scammer).
Taproot helps with this: like mentioned above, it allows multisignature setups to produce only one signature, reducing blockchain space usage, and thus making contracts --- which require multiple people, by definition, you don't make contracts with yourself --- is made cheaper (which we hope enables more of these setups to happen for more gains from trade for everyone, also, moon and lambos).
(technology-wise, it's easier to make an n-of-n than a k-of-n, making a k-of-n would require a complex setup involving a long ritual with many communication rounds between the n participants, but an n-of-n can be done trivially with some moon math. You can, however, make what is effectively a 2-of-3 by using a three-branch SCRIPT: either 2-of-2 of you and seller, OR 2-of-2 of you and escrow, OR 2-of-2 of escrow and seller. Fortunately, Taproot adds a facility to embed a SCRIPT inside a public key, so you can have a 2-of-2 Taprooted address (between you and seller) with a SCRIPT branch that can instead be spent with 2-of-2 (you + escrow) OR 2-of-2 (seller + escrow), which implements the three-branched SCRIPT above. If neither of you are scammers (hopefully the common case) then you both sign using your keys and never have to contact the escrow, since you are just using the escrow public key without coordinating with them (because n-of-n is trivial but k-of-n requires setup with communication rounds), so in the "best case" where both of you are honest traders, you also get a privacy boost, in that the escrow never learns you have been trading on gewgaws, I mean ewww, gawgews are much better than gewgaws and therefore I now judge you for being a gewgaw enthusiast, you filthy gewgawer).

Taproot and Your Contracts, Part 2: Cryptographic Boogaloo

Now suppose you want to buy some data instead of things. For example, maybe you have some closed-source software in trial mode installed, and want to pay the developer for the full version. You want to pay for an activation code.
This can be done, today, by using an HTLC. The developer tells you the hash of the activation code. You pay to an HTLC, paying out to the developer if it reveals the preimage (the activation code), or refunding the money back to you after a pre-agreed timeout. If the developer claims the funds, it has to reveal the preimage, which is the activation code, and you can now activate your software. If the developer does not claim the funds by the timeout, you get refunded.
And you can do that, with HTLCs, today.
Of course, HTLCs do have problems:
Fortunately, with Schnorr (which is enabled by Taproot), we can now use the Scriptless Script constuction by Andrew Poelstra. This Scriptless Script allows a new construction, the PTLC or Pointlocked Timelocked Contract. Instead of hashes and preimages, just replace "hash" with "point" and "preimage" with "scalar".
Or as you might know them: "point" is really "public key" and "scalar" is really a "private key". What a PTLC does is that, given a particular public key, the pointlocked branch can be spent only if the spender reveals the private key of the given private key to you.
Another nice thing with PTLCs is that they are deniable. What appears onchain is just a single 2-of-2 signature between you and the developemanufacturer. It's like a magic trick. This signature has no special watermarks, it's a perfectly normal signature (the pledge). However, from this signature, plus some datta given to you by the developemanufacturer (known as the adaptor signature) you can derive the private key of a particular public key you both agree on (the turn). Anyone scraping the blockchain will just see signatures that look just like every other signature, and as long as nobody manages to hack you and get a copy of the adaptor signature or the private key, they cannot get the private key behind the public key (point) that the pointlocked branch needs (the prestige).
(Just to be clear, the public key you are getting the private key from, is distinct from the public key that the developemanufacturer will use for its funds. The activation key is different from the developer's onchain Bitcoin key, and it is the activation key whose private key you will be learning, not the developer's/manufacturer's onchain Bitcoin key).
So:
Taproot lets PTLCs exist onchain because they enable Schnorr, which is a requirement of PTLCs / Scriptless Script.
(technology-wise, take note that Scriptless Script works only for the "pointlocked" branch of the contract; you need normal Script, or a pre-signed nLockTimed transaction, for the "timelocked" branch. Since Taproot can embed a script, you can have the Taproot pubkey be a 2-of-2 to implement the Scriptless Script "pointlocked" branch, then have a hidden script that lets you recover the funds with an OP_CHECKLOCKTIMEVERIFY after the timeout if the seller does not claim the funds.)

Quantum Quibbles!

Now if you were really paying attention, you might have noticed this parenthetical:
(technical details: a Taproot output is 1 version byte + 32 byte public key, while a P2WPKH (bech32 singlesig) output is 1 version byte + 20 byte public key hash...)
So wait, Taproot uses raw 32-byte public keys, and not public key hashes? Isn't that more quantum-vulnerable??
Well, in theory yes. In practice, they probably are not.
It's not that hashes can be broken by quantum computes --- they're still not. Instead, you have to look at how you spend from a P2WPKH/P2PKH pay-to-public-key-hash.
When you spend from a P2PKH / P2WPKH, you have to reveal the public key. Then Bitcoin hashes it and checks if this matches with the public-key-hash, and only then actually validates the signature for that public key.
So an unconfirmed transaction, floating in the mempools of nodes globally, will show, in plain sight for everyone to see, your public key.
(public keys should be public, that's why they're called public keys, LOL)
And if quantum computers are fast enough to be of concern, then they are probably fast enough that, in the several minutes to several hours from broadcast to confirmation, they have already cracked the public key that is openly broadcast with your transaction. The owner of the quantum computer can now replace your unconfirmed transaction with one that pays the funds to itself. Even if you did not opt-in RBF, miners are still incentivized to support RBF on RBF-disabled transactions.
So the extra hash is not as significant a protection against quantum computers as you might think. Instead, the extra hash-and-compare needed is just extra validation effort.
Further, if you have ever, in the past, spent from the address, then there exists already a transaction indelibly stored on the blockchain, openly displaying the public key from which quantum computers can derive the private key. So those are still vulnerable to quantum computers.
For the most part, the cryptographers behind Taproot (and Bitcoin Core) are of the opinion that quantum computers capable of cracking Bitcoin pubkeys are unlikely to appear within a decade or two.
So:
For now, the homomorphic and linear properties of elliptic curve cryptography provide a lot of benefits --- particularly the linearity property is what enables Scriptless Script and simple multisignature (i.e. multisignatures that are just 1 signature onchain). So it might be a good idea to take advantage of them now while we are still fairly safe against quantum computers. It seems likely that quantum-safe signature schemes are nonlinear (thus losing these advantages).

Summary

I Wanna Be The Taprooter!

So, do you want to help activate Taproot? Here's what you, mister sovereign Bitcoin HODLer, can do!

But I Hate Taproot!!

That's fine!

Discussions About Taproot Activation

almkglor your post has been copied because one or more comments in this topic have been removed. This copy will preserve unmoderated topic. If you would like to opt-out, please send a message using [this link].
[deleted comment]
[deleted comment]
[deleted comment]
submitted by anticensor_bot to u/anticensor_bot [link] [comments]

This is Why We Have RandomX

https://www.coindesk.com/bitmain-delays-bitcoin-miner-shipments-by-three-months-as-co-founders-battle-on
I doubt very much the official Bitmain story here. I bet this isn't so much about an internal power struggle, as it is about hash wars. They want to delay shipments to anyone who might be a competitor.
This is the state of Bitcoin and crypto mining. You beg a Chinese manufacturer with 75% of the ASIC marketshare to sell you some units, and pray that they actually gets sent in a reasonable timeframe to be profitable.
I guess there's a couple other ASIC manufacturers, but I'm assuming it's not exactly easy to get on the top of their list either.
A large number of Bitcoin's failings trace directly back to the mining ecosystem. Satoshi's invention was the minimum viable, but definitely not ideal.
submitted by bawdyanarchist to Monero [link] [comments]

How my dorm became a drug superhighway.

The year was 2012, and we were all supposed to die in December. It was my freshman year of college. I was settling in quite well. I made friends with a bunch of people in our residence hall, we hit it off immediately. We started going out on the weekends, starting with thirsty Thursday, which turns out is actually a thing. I had more than one room mate. We lived in a four person suite with two bedrooms. I had a full ride to my University, so I had a lot of extra money to spend on my living arrangements and meal plan. Oh yeah, I was also a huge pothead.
I made friends with the dealer on my floor and started buying him extra meals in exchange for weed. That's when one of my room mates came to me with a proposition. He asked me if I knew what bitcoins were. I did not. He explained the virtual currency and how it worked. Then he really laid it all out. He told me that he had quite a lot of bitcoins and that he wants to get into selling weed. It all sounded great, but I wasn't sure what he needed me for. He then told me that he doesn't really talk to anyone and that he always sees me with people and going to parties every weekend. Okay, this makes sense. He told me how the operation would work, and it sounded swell. For the record, I was eighteen and very stupid. Anyway, he would purchase the drugs from the Silk Road, a dark website where you can buy literally fucking anything. Our friend Noah would then get the goods delivered to his apartment, which had a mailroom with hundreds of mailboxes. This was good because it would be just a little bit less suspicious, also his apartment was not on our campus. Then we'd package everything there and move it to our dorm, which had it's own security. We lived in North Philadelphia, so the security and police were always looking out for the students. After we safely had the products, I would find the buyers.
Our first shipment went well. We ordered a half pound of weed, a gram of hash, ten hits of LSD, a small bag of opium (for us), and 1000mg of Alprazolam extract for my room mate's personal anxiety treatment. We got into this business to become weed salesmen. That weed took forever to sell. Everyone who sold weed already had good connections from their hometowns. The LSD though, that sold in five fucking minutes to one buyer who was interested in buying much more than ten hits. He asked us if we could sell him a couple hundred tabs. He said he'd pay $350 for each sheet of 100. We looked at the price per sheet on the Silk Road. It would cost us only $80 each. Yes sir, we can absolutely sell you a couple sheets. We told him we'd call him when it arrived. Later that night we brewed some opium tea and celebrated entering the LSD business. We bought the sheets for him, and we also bought two extras in case anyone else wanted some.
The next shipment came with no problems. Our friend came over and bought the sheets we had promised him. We made nearly $800 on that deal. We thought that was a lot, so we celebrated. Later that same day, while smoking a blunt in our courtyard, I made friends with some art students. They invited me to their dorm on the third floor. I agreed, went with them, and we listened to music and painted the walls of the dorm room which was super against the rules. They started talking about how they had taken magic mushrooms two weeks before and how it was life changing. I told them I had two-hundred hits of acid in my room. I've never seen people get so excited in my entire life. They bought all of it. They paid $400 for each sheet. Seemingly out of nowhere we made $600. Again, we thought this was a lot.
My room mate was really happy with my networking abilities. Dude, I was just getting high with some hipster art students. I didn't really possess the "networking skills" that everyone thought I had. We went online and purchased another five sheets. We started getting a bit more confident in our ability to sell this magic money making paper. That week I was in one of my classes and had to do a group project with a kid named Eddy. We went to his apartment to work on the project after class. Eddy had an apartment off campus because he was an upperclassman. On the way he asked if I smoked weed. Of course. He said he had something to show me. When we got there he showed me a small weed plant he was growing. It was an adorable little plant in a flower pot by the window. I asked if he needed any weed and he said that he did not. We smoked a bit and then her offered me a Xanax. I had never taken Xanax, so I googled the pill he offered me. Alprazolam. Huh, that's funny. I told him I had 1000mg of alprazolam in my room. This excited him.
I asked my room mate if he was willing to sell some of his private stash. Eddy only wanted to buy around 100 milligrams. He agreed and I brought Eddy to my dorm. We gave it to him for the cool price of $150, a slick markdown from what he was paying. After all we hadn't even planned on selling that stuff. He asked how we got it so cheap and if we could get anything else. We told him that we sell LSD. He said he loves hallucinogens and would love to purchase a sheet, so he did. Four sheets left. If we sell them, we can get a new and faster computer.
The weekend came and I was hanging out with two of my friends from our residence hall. Joe, who was really chill and loved smoking weed as much as I did. And Bianca, who was so cool that it frightened me. She was really intimidating. I had a huge crush on her, but she was "talking" to a kid that lived in Johnson and Hardwick hall. Bianca was the type of person you see in movies about cool kids doing cool things. A character who has a lot of depth, but it takes nearly the whole movie to slowly peel back the layers, and by that time you're in love. I told her if we sold the rest of our acid I'd buy her a new tattoo. She was covered in them. That night Joe was going to take us to his friend Jamie's house. We were going to try cocaine for the first time. I was terrified. Not only was I terrified about trying cocaine, but I was scared of doing it with Bianca. I just didn't know how I would act, and I didn't want to do something stupid.
We arrived at Jamie's house. Jamie was also intimidating. His house was what your typical trap house looked like at the time, with a bunch of really expensive music equipment. Everybody wanted to be a rapper or a D.J. that year. He introduced all his friends and offered us lines of coke. Here we go. Joe went first, he'd already done some before. Bianca went next without hesitation. Now it was my turn. I remember my hand shaking with the rolled up bill between my fingers. I chose the smallest line and sniffed. It did not taste anything like I expected. Five minutes went by. Oh, this is what cocaine is like. It was so underwhelming. It was also some thoroughly stepped on shit. I know that now because since then I've done some foreign blow that literally almost made my heart stop. Anyway, Jamie and I got to talking, mostly about his "music career". Jamie told me if I ever wanted to buy cocaine in bulk to hit him up. I laughed and told him if he ever wanted to buy LSD in bulk to hit me up. I was half joking. He looked at me with the straightest face and asked if I was serious. Honestly, this Jamie guy really scared the shit out of me. He was a good ten inches taller than me and the whole scene was really starting to freak me out. I told him I was serious though. He told me to come with him.
He brought me into his room and closed the door. In the room it was quiet. The walls were sound proofed. I looked around and the room was full of money, cocaine, and guns. Okay, he's probably not going to kill me. I hope. He then asked about my LSD connection. I told him I could get sheets for $350. He said he wanted books. Books? This guy wants books? I didn't know this at the time, but a book is a thousand hits of LSD. I told him I had to talk to some people and I would let him know the price, but that I could definitely make it happen. We went back into the party and he gave me line after line of cocaine. Joe offered him money for the lines, but Jamie told him not to pay. He said your friend here bought you guys as much coke as you want for the night. Honestly, that made me feel really cool. After the party I talked to my room mate and told him what happened. We looked up the price of a book on the Silk Road. $300. Not only could we have saved a lot of money if we had just bought a book from the start, but we were going to make a lot more money selling by the book. The days of getting excited over $800 were about to come to an abrupt end.
I talked to Jamie and asked how much he would be willing to pay for each book. He said he would pay no more than $3000 for each book. We decided we would sell him the books for $2,800 each. He agreed and asked how many we had. I said we can start with five books. He agreed. This was perfect. Not only were we about to make more money than we had ever expected, but acid was incredibly easy to ship. They were basically sheets of paper. Our supplier used to send it to us in between the pages of large children's coloring books. The books, or prints, as our supplier called them, blended with the kid's books very well. Our prints consisted of a large picture of Bart Simpson, The Grateful Dead bears, and a double rainbow portrait. If you didn't know what acid was, you wouldn't know these were drugs. We made nearly $14,000 from that first deal.
Over the course of a few months we would sell close to thirty-thousand hits of LSD. We had $75,000 in cash sitting in an empty bedroom at Noah's apartment. I stopped going to class. My room mate had filled his entire room with computer parts and instruments. Noah, well we didn't really see him much, but he was always present when we needed a shipment. We broke our cardinal rule of not getting high on our own supply. We took a lot of acid that semester. It was an extremely enlightening period for us. Things in my world began to take on entirely new meaning. I had a newfound appreciation for things I had never noticed. The connections with my friends became very strong and we talked about a lot of stuff that was just too deep for my other peers to even scratch the surface of. It was nice.
By my birthday in February we had over $200,000 in cash. We didn't die in December, not that I thought we would, but some people were legitimately surprised. They were mostly art students. Things started getting a little crazy. My room mate and I were taking a lot of Xanax by this time and a lot of nights celebrating were never logged as memories. We always told ourselves we would only sell LSD. We had sparked a huge psychedelic scene in and around Philadelphia. There were literally parties where everyone was tripping acid. Many groups of people began taking acid and doing really creative stuff that I admired so much. So much good music and art was around during that period. I felt like I was living in San Fransisco in the middle 60's. It felt like we were part of this incredible scene that nobody outside of the city knew about. Of course every wave has to break and roll back.
It was getting close to the summer. I hadn't been to class in months. We hadn't seen Noah since the previous shipment about a month prior. It was a regular weekday, but I wasn't going to class, so I took two hits of acid. I spent most of that evening and night writing and yapping into my tape recorder. I was on the subject of togetherness and how there are so many things that are so incredible that we never notice even though they're right in front of us. Acid talk. I was looking at a glass of water, thinking about its importance, and how so many of us take it for granted. That's when my room mate came home. This was my room mate though. Remember, we had a two bedroom, four person suite. My room mate, who was never involved in our operation. He was obliterated, and not from alcohol. This was something else. He limped into the room and collapsed on the bed. I immediately got the rest of my room mates together. That's when Christian told me what transpired earlier while I was locked in the bedroom tripping acid. He told me that my room mate had broken up with his girlfriend, took an entire bottle of lorazepam, and tried to cut his leg open with my biology scalpel. What the fuck.
I examined his leg and he did not try to cut it open, he succeeded. He had a gigantic cut all the way down his lower leg that was fixed up by his father who is a surgeon. His father then brought him back to the dorm. The condition he was in was terrifying. He was breathing, but not well. His heart rate was also very low and we had to monitor him for the remainder of the night, taking shifts to make sure he didn't stop breathing. I couldn't believe his father had brought him back in the condition he was in. The next morning I was exhausted. My room mate and I, the one with the bitcoins, left and went to Noah's apartment to relax for an hour. While we were gone Bianca was to watch over him with her room mate. When we got to Noah's we had a new problem. Noah hadn't gotten out of bed for what looked like weeks. He had ran out of his antidepressants and was in bad shape. At this point I checked out. I walked into the living room and opened a bottle of champagne. I poured a glass, popped a Xanax, and sat on the sofa. I was still a little foggy from my acid trip and I hadn't slept all night. That's when my phone rang. It was Bianca.
I answered the phone and her first words were: "Your room is full of police.". Well, it's been a good run. On my desk were a couple thousand hits of LSD and a handgun. In the other bedroom were numerous unopened box's of expensive computer parts, scales and drug paraphernalia galore, and a large pile of white powdered alprazolam. That room also smelled heavily of weed because there was a half pound out in the open. We had gotten very sloppy. I asked her if my room mate was okay. She said that's why the police are there. She said his mom was trying to reach him and he wasn't answering her, so she called the police for a wellness check. Bianca then started talking to someone and hung up the phone.
We pondered whether or not to flee the country and become outlaws. We did after all have all the cash here at Noah's. Close to a million dollars. Maybe more. Because we were getting sloppy, we had also started selling hash, Xanax, LSD, 25i-NBOMe, 2c-b, 2c-i, 2c-E, Mescaline, cocaine, MDMA, MDA, LSA, clonazepam, ativan, and other various designer drugs. We were going down for a long time. I started thinking about my life. It literally was flashing before my eyes. I thought about my high school crush, and how I should have been more upfront with her about how much I liked her. I loved her. I thought about the time we slept in the same bed and I couldn't fall asleep because I couldn't believe she was really laying next to me. I remembered how I never wanted to wake up next to anyone else. I thought about my trivial crush on Bianca and how shallow it really was. I thought about my parents and how they'd raised me better. How they did so much for me so that I could go away to college and have a better life than they had. I thought about sitting on the beach last summer without a care in the world. The "problems" in my life that seemed hilarious now. Will I go to prom? Is my car cool enough? My k/d ratio in Call of Duty. How could so much happen in less than a year? That's when Bianca called me again.
I was terrified to pick up that phone. We looked outside to see if police were surrounding the apartment complex. They were not. I answered the phone. She said the police were gone. She had put my gun and LSD in my desk drawer. The police never entered the other bedroom. It was just a wellness check. An ambulance came and took my room mate. He was going to be okay. I hugged my partner in crime and we cried. I wish I could tell you we cleaned up our lives after that. My room mate with the bitcoins developed a really dangerous drug habit after that. He spent most of his money on drugs over the next few years. I went back to class after that summer, but stopped going again because I wanted to party instead and start a career as a writer. I failed out of college. Throughout the years I went on numerous adventures all around the world. I have hundreds of stories, I just have to write them. Oh and I have to learn how to write properly. I don't use a lot of drugs today, and I don't encourage people to use drugs. I have unfortunately lost many friends during the opiate epidemic. Weed is cool though, I like weed. I wouldn't tell people to smoke it, but I'll never shame someone for enjoying some cannabis. Actually, I don't really shame people for anything, it's just not my place to judge anyone. Feel free to judge me though, about how my dorm became a drug superhighway.

\*Thanks for reading, more stories available on my blog. There's a link on my profile.*

Edit: This story is based around actual events that I have experienced.
submitted by XleepyJoeBenzo to Drugs [link] [comments]

Tron v11.1.3 (2020-08-20) // Minor updates; Remove PCHunter due to A/V false positives

Background

Tron is a script that "fights for the User."
It aims to automate ~87% of the tedious work in getting a badly-running Windows system back on its feet (clicking "next" in a/v scan windows, etc); with much left to the discretion of the tech.
It is built with heavy reliance on community input and updated regularly.
It is NOT a system optimization or "baseline" script.
Read the instructions.

Sequence of operation

Prep > Tempclean > De-bloat > Disinfect > Repair > Patch > Optimize > Wrap-up | Manual tools
Saves a log to C:\logs\tron\tron.log (configurable).
screenshots of Tron in action

Changelog

(significant changes in bold; full changelog on Github)
v11.1.3 (2020-08-20)
- Removed PCHunter utility (extra utility, Tron never ran PCHunter) due to false positives with many A/V engines
. Minor definition updates

Download

  1. Primary method: Download the .torrent.
  2. Secondary: Download a self-extracting .exe pack from one of the mirrors:
    Mirror HTTPS HTTP Location Host
    Official link link US-DC u/SGC-Hosting
    #1 link link US-NY u/danodemano
    #3 link link DE u/bodrino
    #4 link link US/EU u/mxmod
    #5 link --- US-MI u/ajcutshall
    #6 link --- AU u/agent-squirrel
    #7 link --- GB-LND u/FreezerMoosh
    #8 link --- US-MO u/OlderGeeks
    #9 link --- Amazon CDN u/helpdesktv
    #10 link --- Global CDN Softpedia
  3. Tertiary: Connect to the Syncthing repo (instructions) to get fixes/updates immediately. This method has some risks and you should only use it if you understand them.
  4. Quaternary: Source code
    Source code is available on Github (Note: this doesn't include many of the utilities Tron relies on to function). If you want to view the code without downloading a ~600MB package, Github is a good place to do it.

Command-Line Support

Tron has full command-line support. Switches are optional, can be used simultaneously, and override their respective default when used. See here for a list of command-line switches.

Pack Integrity

SHA-256 hashes are in \tron\integrity_verification\checksums.txt and are signed with my PGP key; included. Use this to verify pack integrity.

Donations

Tron will always be free and open-source. If you'd like to buy me a beer or more importantly ... scotch ... you can do so here:
  • Patreon
  • Bitcoin: 1Biw8gx2kD7mZf66ZdNgB9tG1pE9YA3kEd
  • Bitcoin Cash: 18sXTTrAViPZVQtm63zBK6aCK3XfJpEThk
  • Monero (preferred): 4GG9KsJhwcW3zapDw62UaS71ZfFBjH9uwhc8FeyocPhUHHsuxj5zfvpZpZcZFHWpxoXD99MVt6PnR9QfftXDV8s6HbYdDuZEDZ947uiEje
These addresses go directly to u/vocatus. If you wish to support another volunteer (e.g. the incredibly generous u/SGC-Hosting) please contact them directly.

Problems and Support

Please look here first for a list of common issues (Tron appearing to be stalled, etc). If it doesn't answer your issue, make a top-level post to TronScript and myself or one of the community members will look at the issue. Additionally, you can reach me 24/7 on Keybase.
\integrity verification contains checksums.txt and is signed with my PGP key (0x07d1490f82a211a2, pubkey included). Use this to verify the pack.
"Do not withhold good from those to whom it is due, when it is in your power to act." -p3:27
submitted by vocatus to TronScript [link] [comments]

Power of the Command Line (bitcoin-cli, hwi, electrum, trezorctl)

I think some of the console tools available with HW wallets today are greatly under utilized. Here's a quick write-up on how to create and sign a TXN very similar to 43d27...1fc06 found on the SLIP-14 wallet. I'll be using TrezorCTL, Electrum, and HWI for the signing. I won't go much into the setup or install, but feel free to ask if you have questions about it. Note, you don't have to use all three of these. Any one will produce a valid signed TXN for broadcast. I just showed how to do it three ways. Whats more some of the Electrum and HWI steps are interchangeable.

TrezorCTL

This is the what most would think of to use to craft and sign TXNs, and is definitely very simple. The signing uses a script called build_tx.py to create a JSON file that is then used by the btc sign-tx command. The whole process is basically:
  1. tools/build_tx.py | trezorctl btc sign-tx -
This just means, take the output of build_tx and sign it. To copy 43d27...1fc06, I wrote a small script to feed build_tx, so my process looks like:
  1. ~/input.sh | tools/build_tx.py | trezorctl btc sign-tx -
But it's all very simple. Note... I used TrezorCTL v0.12.2 but build_tx.py version 0.13.0 1.

input.sh

```

!/bin/bash

secho() { sleep 1; echo $*}
secho "Testnet" # coin name secho "tbtc1.trezor.io" # blockbook server and outpoint (below) secho "e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00:0" secho "m/84'/1'/0'/0/0" # prev_out derivation to signing key secho "4294967293" # Sequence for RBF; hex(-3) secho "segwit" # Signature type on prev_out to use secho "" # NACK to progress to outs secho "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3" # out[0].addr secho "10000000" # out[1].amt secho "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu" # out[1].addr secho "20000000" # out[1].amt secho "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x" # out[2].addr secho "99999694" # out[2].amt secho "" # NACK to progress to change secho "" # NACK to skip change secho "2" # txn.version secho "0" # txn.locktime ```

Electrum

Electrum is one of the better GUI wallets available, but it also has a pretty good console interface. Like before you need your Trezor with the SLIP-14 wallet loaded and paired to Electrum. I'll assume Electrum is up and running with the Trezor wallet loaded to make things simple.
Like with TrezorCTL, Electrum feeds on a JSON file, but unlike TrezorCTL it needs that JSON squished into the command line. This is a simple sed command, but I won't bore you with the details, but just assume that's done. So the process in Electrum (v4.0.3) looks like:
  1. electrum serialize (create psbt to sign)
  2. electrum --wallet signtransaction (sign said psbt)
Still pretty simple right! Below is the JSON I smushed for #1

txn.json

{ "inputs": [{ "prevout_hash":"e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00", "prevout_n": 0, "value_sats": 129999867 }], "outputs": [{ "address": "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3", "value_sats": 10000000 },{ "address": "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu", "value_sats": 20000000 },{ "address": "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x", "value_sats": 99999694 }]}

HWI

HWI is an unsung hero in my book. It's a very small clean and simple interface between HW wallets and Bitcoin Core. It currently supports a good range of HW wallets. It keeps itself narrowly focused on TXN signing and offloads most everything else to Bitcoin Core. Again, I'll assume you've imported your Trezor keypool into Core and done the requisite IBD and rescan. And if you don't have the RPC enabled, you can always clone these commands into the QT-console.
To sign our TXN in HWI (v1.1.2), we will first need to craft (and finalize) it in Bitcoin Core (0.21.1). Like in Electrum, we will have to use simple sed to smush some JSON into command arguments, but I'll assume you have that covered. It will take an inputs.json and an outputs.json named separately.
  1. bitcoin-cli createpsbt (create psbt)
  2. bitcoin-cli -rpcwallet= walletprocesspsbt (process psbt)
  3. hwi -f signtx (sign psbt)
  4. bitcoin-cli -rpcwallet= finalizepsbt (get a signed TXN from psbt)
A little more involved, but still nothing too bad. Plus this gives you the full power of Bitcoin Core including integrations with LND (lightning).

inputs.json

[{ "txid": "e294c4c172c3d87991b0369e45d6af8584be92914d01e3060fad1ed31d12ff00", "vout": 0 }]

outputs.json

[{ "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3": 0.10000000 },{ "tb1q9l0rk0gkgn73d0gc57qn3t3cwvucaj3h8wtrlu": 0.20000000 },{ "tb1qejqxwzfld7zr6mf7ygqy5s5se5xq7vmt96jk9x": 0.99999694 }]

Conclusion

This may all seem like very low level coding, but is surprisingly simple once you get a knack for it. Whats more, all these platforms support testnet which allows you to practice with valueless coins until you get the hang of it. And, like many things in bitcoin, this is all (mostly) python, which is one of the easier languages to learn.
Enjoy
Footnotes
1 - https://github.com/trezotrezor-firmware/issues/1296
submitted by brianddk to TREZOR [link] [comments]

Probability in Bitcoin Mining: The Hashing Function Blockchain Basics Explained - Hashes with Mining and ... BITCOIN  The Best HYIP  How to COMPOUND BITCOIN What is a Bitcoin hash and SHA-256 - YouTube What is Bitcoin? Bitcoin Explained Simply for Dummies ...

Hash Rate. The hash rate is the measuring unit of the processing power of the Bitcoin network. The Bitcoin network must make intensive mathematical operations for security purposes. When the network reached a hash rate of 10 Th/s, it meant it could make 10 trillion calculations per second. A hash algorithm takes data of any arbitrary size (numbers, alphabets, media files) and transforms it into a fixed alphanumeric string. The fixed bit size can vary (like 64-bit or 128-bit or 256-bit) depending on what hash function is being used.. And this fixed size output is what is called a hash.In other words, a hash is the cryptographic byproduct of a hash algorithm. BitCoin uses the SHA-256 hash algorithm to generate verifiably "random" numbers in a way that requires a predictable amount of CPU effort. Generating a SHA-256 hash with a value less than the current target solves a block and wins you some coins. Also see http://en.wikipedia.org/wiki/Cryptographic_hash Hash, otherwise known as hash power as well, is an algorithm that turns large amounts of information into smaller data batches. Bitcoin uses the SHA-256 hash algorithm to verify data using the CPU equipment. Hash functions in bitcoin. In the bitcoin protocol, hash functions are part of the block hashing algorithm which is used to write new transactions into the blockchain through the mining process.

[index] [8879] [10572] [5470] [6893] [7549] [5645] [9038] [15958] [5670] [5495]

Probability in Bitcoin Mining: The Hashing Function

BITCOIN BREAKTHROUGH Series Join us Wecoa.org Start trading Bitcoin and cryptocurrency here: http://bit.ly/2Vptr2X Bitcoin is the first decentralized digital currency. All Bitcoin transactions are docume... This video explains the concept of hashing and SHA-256 for newbies. For more information visit http://99bitcoins.com/what-is-bitcoin-hash/ What is Hashing on the Blockchain? https://blockgeeks.com/guides/what-is-hashing/ Cryptographic hashing is a key feature in the security and efficiency of bl... Learn what a hash function does and how it is used in bitcoin and blockchains in general. Leave questions in the comments and we'll do our best to answer! On...

#