Re: [bitcoin-dev] Proposed BIP for OP_CAT

2023-10-25 Thread Ethan Heilman via bitcoin-dev
to " OP_NOTIF > OP_RESERVED OP_ENDIF". > > > > On 2023-10-21 07:09:13 user Ethan Heilman via bitcoin-dev > wrote: > > Hi everyone, > > We've posted a draft BIP to propose enabling OP_CAT as Tapscript opcode. > https://github.com/EthanHeilman/op_cat_dr

Re: [bitcoin-dev] Proposed BIP for OP_CAT

2023-10-21 Thread Ethan Heilman via bitcoin-dev
of 520 Bytes. > > I don't think there's a new limit related to tapscript? In the very > beginning there was no limit, but a 5k limit was put into place, then 520 > the same commit that OP_CAT was > disabled: 4bd188c4383d6e614e18f79dc337fbabe8464c82 > > On Sat, Oct 21, 2023 at 1:09

[bitcoin-dev] Proposed BIP for OP_CAT

2023-10-20 Thread Ethan Heilman via bitcoin-dev
Hi everyone, We've posted a draft BIP to propose enabling OP_CAT as Tapscript opcode. https://github.com/EthanHeilman/op_cat_draft/blob/main/cat.mediawiki OP_CAT was available in early versions of Bitcoin. It was disabled as it allowed the construction of a script whose evaluation could create

Re: [bitcoin-dev] OP_CAT Makes Bitcoin Quantum Secure [was CheckSigFromStack for Arithmetic Values]

2021-07-09 Thread Ethan Heilman via bitcoin-dev
>To implement Winternitz we need some kind of limited-repeat construct, which >is not available in SCRIPT, but may be emulatable with enough `OP_IF` and >sheer brute force. But what you gain in smaller signatures, you lose in a more complex and longer SCRIPT, and there are limits to SCRIPT size

Re: [bitcoin-dev] OP_CAT Makes Bitcoin Quantum Secure [was CheckSigFromStack for Arithmetic Values]

2021-07-09 Thread Ethan Heilman via bitcoin-dev
>Yes, quite neat indeed, too bad Lamport signatures are so huge (a couple >kilobytes)... blocksize increase *cough* Couldn't you significantly compress the signatures by using either Winternitz OTS or by using OP_CAT to build a merkle tree so that the full signature can be derived during script

Re: [bitcoin-dev] Non-equal value CoinJoins. Opinions.

2019-12-28 Thread Ethan Heilman via bitcoin-dev
I'm only going to talk about cashfusion and not the knapsack paper. The language they use to describe the cashfusion protocol is very broad and could describe many things. Because it is hard so vague I don't want to dismiss the cashfusion approach out of hand. For instance they say: "inputs of

Re: [bitcoin-dev] [Lightning-dev] OP_CAT was Re: Continuing the discussion about noinput / anyprevout

2019-10-03 Thread Ethan Heilman via bitcoin-dev
I hope you are having an great afternoon ZmnSCPxj, You make an excellent point! I had thought about doing the following to tag nodes || means OP_CAT `node = SHA256(type||SHA256(data))` so a subnode would be `subnode1 = SHA256(1||SHA256(subnode2||subnode3))` and a leaf node would be `leafnode =

[bitcoin-dev] OP_CAT was Re: Continuing the discussion about noinput / anyprevout

2019-10-03 Thread Ethan Heilman via bitcoin-dev
To avoid derailing the NO_INPUT conversation, I have changed the subject to OP_CAT. Responding to: """ * `SIGHASH` flags attached to signatures are a misdesign, sadly retained from the original BitCoin 0.1.0 Alpha for Windows design, on par with: [..] * `OP_CAT` and `OP_MULT` and `OP_ADD` and

Re: [bitcoin-dev] [Lightning-dev] Continuing the discussion about noinput / anyprevout

2019-10-01 Thread Ethan Heilman via bitcoin-dev
>I don't find too compelling the potential problem of a 'bad wallet designer', >whether lazy or dogmatic, misusing noinput. I think there are simpler ways to >cut corners and there will always be plenty of good wallet options people can >choose. I want to second this. The most expensive part

Re: [bitcoin-dev] Add a moving checkpoint to the Bitcoin protocol

2019-08-02 Thread Ethan Heilman via bitcoin-dev
Attack 1: I partition (i.e. eclipse) a bunch of nodes from the network this partition contains no mining power . I then mine 145 blocks for this partition. I don't even need 51% of the mining power because I'm not competing with any other miners. Under this rule this partition will hardfork from

Re: [bitcoin-dev] Improving SPV security with PoW fraud proofs

2019-04-19 Thread Ethan Heilman via bitcoin-dev
Good morning to you as well ZmnSCPxj, My above email contains an error. The SPV client needs to only download S+1, not S+1 and S+2. I agree with you that a weakness of this approach is a miner can make SPV clients do substantially more work. However: 1. Mining a block which will never be

Re: [bitcoin-dev] Improving SPV security with PoW fraud proofs

2019-04-19 Thread Ethan Heilman via bitcoin-dev
Hi ZmnSCPxj, Let's see if I understand what you are saying. In your scenario chain A consists of honest miners (10% of the hash rate) and chain B (90% of the hash rate) consists of dishonest miners who are inflating the coin supply. Chain A: S, S+1 Chain B: S, S+1 (invalid), S+2, S+3, S+4, S+5,

Re: [bitcoin-dev] Improving SPV security with PoW fraud proofs

2019-04-19 Thread Ethan Heilman via bitcoin-dev
I'm probably repeating a point which has been said before. >I suppose a minority miner that wants to disrupt the network could simply >create a *valid* block at block N+1 and deliberately ignore every other valid >block at N+1, N+2, N+3 etc. that it did not create itself. If this minority miner

[bitcoin-dev] ScalingBitcoin 2017: Stanford - Call For Proposals Now Open

2017-08-11 Thread Ethan Heilman via bitcoin-dev
Dear All, The Call for Proposals (CFP) for 'Scaling Bitcoin 2017: Stanford' is now open. Please see https://scalingbitcoin.org for details *Important Dates* Sept 25th - Deadline for submissions to the CFP Oct 16th - Applicant acceptance notification Hope to see you in California (Nov 4-5

Re: [bitcoin-dev] A proposal to reintroduce the disabled script opcodes

2017-05-22 Thread Ethan Heilman via bitcoin-dev
My OP_CAT usecase only needs to glue together hash outputs, so two 32 Bytes inputs generating a 64 Byte output. However increasing this would enable additional space savings. I would push for an OP_CAT which can generate an output of no greater than 512 Bytes. Is there are maximum byte vectors

Re: [bitcoin-dev] A proposal to reintroduce the disabled script opcodes

2017-05-22 Thread Ethan Heilman via bitcoin-dev
>It'd help your case if you gave us some examples of such scripts being used. I want OP_CAT so that I can securely and compactly verify many hashes and hash preimages. This would shrink offchain Tumblebit transactions significantly. For instance if I want a transaction TxA which checks that a

Re: [bitcoin-dev] SHA1 collisions make Git vulnerable to attakcs by third-parties, not just repo maintainers

2017-02-25 Thread Ethan Heilman via bitcoin-dev
I strongly encourage Bitcoin to move from 80-bit collision resistance (RIPEMD-160) to 128-bit collision resistance (SHA-256). On Sat, Feb 25, 2017 at 5:14 PM, Pieter Wuille via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > > > On Feb 25, 2017 14:09, "Steve Davis via bitcoin-dev"

Re: [bitcoin-dev] SHA1 collisions make Git vulnerable to attakcs by third-parties, not just repo maintainers

2017-02-25 Thread Ethan Heilman via bitcoin-dev
ice Wonder via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > On 02/25/2017 08:10 AM, Ethan Heilman via bitcoin-dev wrote: > >> SHA1 is insecure because the SHA1 algorithm is insecure, not because >>> >> 160bits isn't enough. >> >> I woul

Re: [bitcoin-dev] SHA1 collisions make Git vulnerable to attakcs by third-parties, not just repo maintainers

2017-02-25 Thread Ethan Heilman via bitcoin-dev
>SHA1 is insecure because the SHA1 algorithm is insecure, not because 160bits isn't enough. I would argue that 160-bits isn't enough for collision resistance. Assuming RIPEMD-160(SHA-256(msg)) has no flaws (i.e. is a random oracle), collisions can be generated in 2^80 queries (actually detecting

Re: [bitcoin-dev] Planned Obsolescence

2016-12-15 Thread Ethan Heilman via bitcoin-dev
I assume this has been well discussed in at some point in the Bitcoin community, so I apologize if I'm repeating old ideas. Problem exploitable nodes: It is plausible that people running these versions of bitcoind may not be applying patches. Thus, these nodes may be vulnerable to known exploits.

Re: [bitcoin-dev] BIP 151 use of HMAC_SHA512

2016-06-29 Thread Ethan Heilman via bitcoin-dev
om> wrote: > On Jun 29, 2016 07:05, "Ethan Heilman via bitcoin-dev" > <bitcoin-dev@lists.linuxfoundation.org> wrote: >> >> >It's also not clear to me why the HMAC, vs just >> > SHA256(key|cipher-type|mesg). But that's probably just my crypto >> &

Re: [bitcoin-dev] BIP 151 use of HMAC_SHA512

2016-06-28 Thread Ethan Heilman via bitcoin-dev
>It's also not clear to me why the HMAC, vs just SHA256(key|cipher-type|mesg). >But that's probably just my crypto ignorance... SHA256(key|cipher-type|mesg) is an extremely insecure MAC because of the length extension property of SHA256. If I have a tag y = SHA256(key|cipher-type|mesg), I can

[bitcoin-dev] New paper: On Bitcoin Security in the Presence of Broken Crypto Primitives

2016-02-22 Thread Ethan Heilman via bitcoin-dev
"*Abstract: *Digital currencies like Bitcoin rely on cryptographic primitives to operate. However, past experience shows that cryptographic primitives do not last forever: increased computational power and advanced cryptanalysis cause primitives to break frequently, and motivate the development of

Re: [bitcoin-dev] What is OpenSSL still used for?

2016-01-18 Thread Ethan Heilman via bitcoin-dev
I believe libsecp256k1 just performs Elliptic Curve operations required by Bitcoin. OpenSSL is used for all other crypto. For instance the PRNG appears to be OpenSSL: https://github.com/bitcoin/bitcoin/blob/master/src/random.h On Mon, Jan 18, 2016 at 8:39 PM, Andrew C via bitcoin-dev

Re: [bitcoin-dev] Time to worry about 80-bit collision attacks or not?

2016-01-07 Thread Ethan Heilman via bitcoin-dev
>Ethan: your algorithm will find two arbitrary values that collide. That isn't >useful as an attack in the context we're talking about here (both of those >values will be useless as coin destinations with overwhelming probability). I'm not sure exactly the properties you want here and

Re: [bitcoin-dev] Time to worry about 80-bit collision attacks or not?

2016-01-07 Thread Ethan Heilman via bitcoin-dev
Based on current GH/s count of 775,464,121 Bitcoin tests 2^80 every 19 days. log2(775464121*(1000*1000*1000*60*60*24*19)) = ~80.07 I don't fully understand the security model of segwit, so my analysis will assume that any collision is bad. >But it also requires O(2^80) storage, which is utterly