9

As with many things in Bitcoin, it is likely simply because it worked well enough, and such an attack was not immediately obvious. Several of the choices made in the early days of Bitcoin don't have a full justification behind them, and were simply made because it worked at the time without any major, obvious shortcomings. This is one such scenario, as far ...


6

Really getblocks should have been called getblockhashes , as the response contains just block hashes, not full blocks. Every block can be observed in three different ways: The full block, containing all transactions and header information. The block without the transactions, but just the 80-byte header which includes a Merkle root committing to the ...


4

Pretty much everything would stay the same. If you look at the relevant messages channel_announcement and channel_update we have the following formats: channel_announcement type: 256 (channel_announcement) data: [64:node_signature_1] [64:node_signature_2] [64:bitcoin_signature_1] [64:bitcoin_signature_2] [2:len] [len:features] [...


3

Opinion: Committee efforts which have to aim of standardizing anything to do with the bitcoin protocol should be considered attacks against Bitcoin. Bitcoin was created specifically to eliminate the need for a (trusted/centralized) "committee". The rules of the Bitcoin protocol are decided independently by each user running the software which validates ...


3

There are many explanations of Bitcoin online, but the whitepaper is a historical document, and it is important, for one, in order to understand the inventor'(s) initial design and intentions. Among others I do not understand the value of repetitive manipulation of the message, until a hard-to-find number can be added to the message, that then forces ...


3

Is there any intention by the respective author or by Bitcoin.org to edit, improve or re-write the white paper for absolute clarity? The pseudonymous author (Satoshi Nakamoto) has not been present online for many years; I suspect we will not see Satoshi return for a whitepaper update. You can learn more about the contributors of bitcoin.org on this page. ...


2

The paper you cited proves that ChaChaPoly is IND-CCA secure. This notion of security seems to perfectly cover your attack if I read the definition right (https://en.wikipedia.org/wiki/Ciphertext_indistinguishability): "A cryptosystem is considered secure in terms of indistinguishability if no adversary, given an encryption of a message randomly chosen ...


2

Range proofs for CTs demonstrate that output amounts are positive and within an allowable range, and that no inflation is occuring in a non-coinbase transaction. The range proofs (eg bulletproofs) are computationally binding. If the discrete log is broken, range proofs can be generated for values outside the correct range without any way to detect this. ...


2

The information you are looking at is incorrect and seems to be the result of interpolation of the graph, there was no difficulty changes that resemble that in the Bitcoin block chain. Difficulty changes are every 2016 blocks, which is approximately 2 weeks if there is no difficulty change within the period.


2

Bitcoin is roughly defined by the 2009 whitepaper. Long before, the idea of a trustless cryptographic money was discussed by Wei Dai; however, Wei Dai couldn't solve the double spend problem, which delayed the creation of magic crypto money until 2008 (yes, the Satoshi client was created before the whitepaper) Inspired by: WeUseCoins.com


2

Transaction confirmation is an external concept which tells you how difficult it is (in terms of probability) to remove that transaction from the block that contains it due to reorganization of the blockchain. Genesis block transaction is a special one as it is hardcoded in the source code and the entire Bitcoin blockchain is built on top of the Genesis ...


2

Byte sequences have no endianness, numbers do. Satoshi didn't say that clients must send that number, but the byte sequence. Arbitrarily, he chose to use the little-endian byte sequence, corresponding to his number. He didn't disobey RFC1700 because he didn't say that is derived by serializing his number.


1

The public key is used in the script. Technically, it is the pubKeyHash, which is RIPEMD160(SHA256(publicKey)), which means the public key isn't revealed until the transaction gets spent. The way that validators can ensure it is you who spends the money locked up with a specific public key is by digitally signing the transaction which spends it, with the ...


1

First of all why not KK? Nodes are announced via gossip and on my tcp socket I should see who connected to me being able to look up the static key of my peer. It isn't really possible to tell who is connecting to you based solely on the IP information you receive. The public IP information received over the gossip protocol only lists the listening ...


1

If your altcoin removes the maturity check, I don't see why not. The only prerequisite would be that the fee for the transaction spending the coinbase input must be decided before building the tx, which isn't very hard.


1

The bitcoin code creates a network, which follows a consensus protocol. The bitcoin code can be forked, and parameters tweaked, in order to create similar, but separate and distinct networks (such as dogecoin, litecoin, etc). Each network will maintain it's own blockchain. In cryptocurrency, the word 'token' is generally used to describe a special type of ...


1

Either the attacker controls around 50% of the computing power or he doesn't. If he doesn't, then it doesn't matter. The rest of the network will always be able to outpace him. If he does, then he's invested millions of dollars in mining hardware, all of which would become significantly less valuable if he attacks the network. Why would he attack the network ...


1

How the network deals with bad actors (either intentionally (ie- attacker) or unintentional (ie- misconfigured node or a node running outdated code, forked code, etc)): Most bitcoin software is designed to listen for information on the Internet and pass it on if it's valid. If it isn't valid enough times from the same peer, then the software will stop ...


Only top voted, non community-wiki answers of a minimum length are eligible