Delivery-date: Fri, 22 Nov 2024 12:14:12 -0800 Received: from mail-ot1-f59.google.com ([209.85.210.59]) by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tEa2e-00051V-7x for bitcoindev@gnusha.org; Fri, 22 Nov 2024 12:14:12 -0800 Received: by mail-ot1-f59.google.com with SMTP id 46e09a7af769-7181a10a0bbsf2326375a34.3 for ; Fri, 22 Nov 2024 12:14:12 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1732306446; cv=pass; d=google.com; s=arc-20240605; b=GNgci3C3N/UHDF6Ehe6GORvuCdnS1I03T8Zyu6rS1lX9uGW3+bJfkUD7mjDu5GB/k/ l335AmAyE2uZUmdclC22kQIw1f9pB0vJvjV8jcXsbp6d6uOEdpI3MmlTbmb8THHyfzvK 2aAWszB+IIsn+hHkg5aAiNDmDTCxPAXS/Jbxlpnn8xTrg7nOuHi8mcH97Lx7CdvmVUDX jrDZtzT5/elV8ky04euZO64X2UC3XrSbgAJABtrAO/TWovdtRZ+CyR4/hlPnT+CMcdqN zpNrnOPMqItfxDk6hEUL76ck5ZDmZifbiurYDnC3/LynBfM8/lko8QMINu8xWU1vGAXI wCwQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:feedback-id :message-id:subject:from:to:date:dkim-signature; bh=c4dc0iVn4oCH34eD7W72ZjSv4XvToR9OMIxb6QAwHMQ=; fh=uERKQnlIRcJW9ELTZWCyuiuFzOzDr4jJqQv3Sr+A1K4=; b=A6ZLFtvW5INUwtsGCGAUJIBAtQ5E++2x7J35qbv7nn+PjZ1MEQcrpJEGB9HIIHQ/CH 9zF+paMOiJMSpPE9fwyipj7azds4mW44MZpyuFvJ5WjQy8EeXU5HAcaRozdARm3cgq2u MxyNUGIbGFy7/k0cdatWs/3M67Vr7fAzcVPY0d4dNtNtrcGrvkapWIgJYr/dsOV84cEu WMfekiFDRKjLsWQe/KTv2mQFtxk/a17xDhnppCei4eKbo3178VwOHMHjILGZXGb2J5TY JAZlWRKIa5OB1YgVUnmhrL+8uXBKQCe76oW2i8mePsyH9xXISvBQX1X/sz26EqMeOdsh +/8A==; darn=gnusha.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail3 header.b=rx3HtVzI; spf=pass (google.com: domain of darosior@protonmail.com designates 185.70.40.137 as permitted sender) smtp.mailfrom=darosior@protonmail.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1732306446; x=1732911246; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :feedback-id:message-id:subject:from:to:date:from:to:cc:subject:date :message-id:reply-to; bh=c4dc0iVn4oCH34eD7W72ZjSv4XvToR9OMIxb6QAwHMQ=; b=NLKa4tXU3FqJ0S23L+Zy1HMnziRIr9LnwJPCR4qalixg6QQs/ZvvQxYqi7rYQx5GTT RYnPRM4CSuHoc/4FkAyOk6zC5pdB0dDnMAdI/WF7l2ExiCxnQw/vZixnePrfw8P0Pe55 gMpBNtTpfdjxN23n6Ig3lY0viDf9cj8wSHnwugp4bH1LbVFyR+Humr1FmuD+KcEKkz1l uLRd53iBgb771ngjd8T/KrZuOzPtZ73CWxj+WREPT1wQovKZO7luRTrMs5TtE57OzAHf cs85l79JD8xHQfl2FdU6MfanMS5TNSnfrz+4U+kJst5UfPp8qJnRoi3PeoGu0hrn6GNq T8ZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732306446; x=1732911246; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :feedback-id:message-id:subject:from:to:date:x-beenthere :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=c4dc0iVn4oCH34eD7W72ZjSv4XvToR9OMIxb6QAwHMQ=; b=PPEewM5ORD0LVMoD+kkts82r0fGJr5xfODNEaUSWzKIOHxcB1mOOf5Ow9Q5OIJ0R1/ D2iexGjdoH5GdXMk55t1ce7xOT3sfn/IPd7wBJbnpt3sIiH/KDq2OtlQzJ4D+HvoI+SN 1W2b6p6OAHJ5g1PX09Ag/T05+65DuYWSbJyjLBxLcM0d4Kor0TMOVNPmqkOsvlmpszIV mhfWM+F3//+uCtxr1n09CoLhzO07GQOQSf1qnB5taSFK1xj0uIDDntrZvuk8EG/PHQJW rtRk50ugQXV4hUEselJKiLvwj8XYMESig7FZSG6RE6X/R1P3f6EswVg4smbYXnVLR5wl +i2g== X-Forwarded-Encrypted: i=2; AJvYcCVv5tRL5pGVL40ctKedB8Tb2J2k4qivB1kwoqxtPCzr6XKVhZOPx6I6ZHPGTy8MOaujRUEvowhrLRcF@gnusha.org X-Gm-Message-State: AOJu0YxasYtEbc280W/nkyIt8mevzlKc86hQw5NGaF1IAXs6G7bj+z6q DAUFIZtjz0XjOE1ynPH5aJNSyLDXWflRo4kFkn6i5t+gxkekzgOc X-Google-Smtp-Source: AGHT+IH3jLbt7Bz+SAGeoF7pNmYP57GvU8Y3JMJFEgaiBKnSDiMp63U1fhPLQ5UAsS27zdEH1z4/nQ== X-Received: by 2002:a05:6830:20c2:b0:718:9a71:be37 with SMTP id 46e09a7af769-71c04b9a4f0mr4551563a34.15.1732306445928; Fri, 22 Nov 2024 12:14:05 -0800 (PST) X-BeenThere: bitcoindev@googlegroups.com Received: by 2002:a05:622a:2292:b0:465:2fcd:cb06 with SMTP id d75a77b69052e-4652fcdccf4ls28291141cf.2.-pod-prod-04-us; Fri, 22 Nov 2024 12:14:03 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCV+VC9M4rSTGr8lnknZIom6TtjJZom76PvtmLy+na2eDewvCzuyVphijn28kCQvXJpK1JcRnjZ3hUhK@googlegroups.com X-Received: by 2002:a05:620a:294a:b0:7b1:5424:e99b with SMTP id af79cd13be357-7b514512ed1mr424703885a.35.1732306443490; Fri, 22 Nov 2024 12:14:03 -0800 (PST) Received: by 2002:ae9:e10b:0:b0:7a1:c409:aa2c with SMTP id af79cd13be357-7b513c28351ms85a; Fri, 22 Nov 2024 10:54:56 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXn8ARqixcpEc6f38DtCzMlG9JBDQGw2BnimGCrOU1qoh0jeZvjzJE9m98AGZrUh9hPG70elG2VsXA8@googlegroups.com X-Received: by 2002:a5d:6c6e:0:b0:382:4a84:676 with SMTP id ffacd0b85a97d-38260b6960fmr2279773f8f.22.1732301694451; Fri, 22 Nov 2024 10:54:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1732301694; cv=none; d=google.com; s=arc-20240605; b=lP4JCXk3HkEqs3nJmQYn+9fa1e7+X0EjMsUpYU4aETqxI7o4vPkIORh8y6GIiFrGiN ofqmDq2ahD2L1zKPuj8yNlUX/bo5XxuZlnsFudI8MX/DDtzch4WwiCh+k3CHvFdCZMWi NFYceS9ZX1QDqWItDr8VyTfHjH7+fHf+XCWkrVvjikew3Q1IKdaFY8CRnfXpTUd24Cx7 C8UI7BB7xiUa7Ss+6VCxXT09VCj5ksVDy1u8dqANFq1EhF0cRmIUpHBDTFm3sY/vF+gm PQjzSdZEh9QDpA4ouTAlv5+mgW9Qyzlswqq0/IQEzY1LyLr60EEeZY6gBO89Yo1FQVxs putg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:feedback-id:message-id:subject:from:to:date :dkim-signature; bh=F2htt5n1zjYGwaLQzKy8EAr7NYGD8Dnx/BoBqsFGx1Q=; fh=bUg+1RwHwVvyuro0FQjUnmc7LBz5Qr4IsRKNQ8YXVG0=; b=lm951efJD9rLKA4lcpiq/ww+p8Lty5EAGEBdMF8WQtEoKaTzmg+QUt/uVSs0+oSL4p p7y1RV10kd7wl9uARm8Fp9EaefjhMXsLECc2NSXgvTiFqjZqR7qm2t5ZTHBFpT8u5S7A O1WUm7QPs++6RM20p2/hcuLHgTQodnrykPmWsmQX9dMNPiaBv+83mghoGMNbEBcMKMCN GeqX5fNmBYFrg3sediAjYuI0J547w+VUCoCLMJk/2KMGN4OP/nPRV1KpAYCSC86nbduX V68l4KxICALVhKgM5BfCVzNPGifp6s3sQzTnogb8JhyhQ8eJDu6a+ltKxr13IipYHofN 4bOQ==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail3 header.b=rx3HtVzI; spf=pass (google.com: domain of darosior@protonmail.com designates 185.70.40.137 as permitted sender) smtp.mailfrom=darosior@protonmail.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Received: from mail-40137.protonmail.ch (mail-40137.protonmail.ch. [185.70.40.137]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-433b0136857si1623325e9.0.2024.11.22.10.54.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Nov 2024 10:54:54 -0800 (PST) Received-SPF: pass (google.com: domain of darosior@protonmail.com designates 185.70.40.137 as permitted sender) client-ip=185.70.40.137; Date: Fri, 22 Nov 2024 18:54:50 +0000 To: "bitcoinminingdev@googlegroups.com" , Bitcoin Development Mailing List From: "'Antoine Poinsot' via Bitcoin Development Mailing List" Subject: [bitcoindev] Prevent future duplicate coinbase transactions as part of Consensus Cleanup Message-ID: Feedback-ID: 7060259:user:proton X-Pm-Message-ID: 532af80ed39942771bee75b2ea9553d1af3a0f90 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1=_hmyRTWFCpe5okwOhHIutAI6oGrHM5EMO0jRWjVRLnc" X-Original-Sender: darosior@protonmail.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail3 header.b=rx3HtVzI; spf=pass (google.com: domain of darosior@protonmail.com designates 185.70.40.137 as permitted sender) smtp.mailfrom=darosior@protonmail.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com X-Original-From: Antoine Poinsot Reply-To: Antoine Poinsot Precedence: list Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com List-ID: X-Google-Group-Id: 786775582512 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Score: -1.0 (-) --b1=_hmyRTWFCpe5okwOhHIutAI6oGrHM5EMO0jRWjVRLnc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi everyone, As part of my investigation in the Consensus Cleanup proposal [0] i suggest= ed we include a fix for potential duplicate coinbase transactions in the fu= ture. This would avoid having to re-enable BIP30 verification after block h= eight 1,983,702. There are different ways this can be fixed. I am sending this email to reac= h out to engineers and stakeholders of the mining industry, to learn if som= e ways of fixing this would make things easier for them than others. The root issue we are trying to solve is: BIP34 mandated that the block hei= ght be committed to by the coinbase transaction as the first element of the= scriptSig. However some coinbase transactions which predate BIP34 activati= on commit to some future height. This leaves a possibility for duplicating = the coinbase at these heights, which is why BIP30 validation will need to b= e resumed in Bitcoin full nodes. See this comment [1] in the Bitcoin Core s= ource code for more detail about this. See this post [2] in my Consensus Cl= eanup thread for a list of all heights inferior to 10,000,000 that were com= mitted in early coinbase transactions. An additional motivation for this is that Utreexo nodes cannot perform BIP3= 0 validation [3]. The fix is simply to mandate that each future coinbase transaction whose he= ight was committed differs in some way from the early coinbase transaction = that committed to its height. Here is some ways to achieve this: - require that future coinbase transactions commit to their height minus on= e in the nLocktime=E2=80=8B field; - require that future coinbase transactions commit to their height in the n= LockTime=E2=80=8B field and also set their nSequence=E2=80=8B to the maximu= m value (to disable the timelock); - require that future coinbase transactions have a nVersion=E2=80=8B differ= ent than 1=E2=80=8B; - require the witness commitment to always be present, even for blocks with= no segwit transaction. Is any of these preferable? Why? Would any of these make miners' life reall= y hard? For what reason? Do you have an alternative suggestion? Any input from someone in this industry would be appreciated, either here o= r on the Delving thread. Thanks, Antoine Poinsot [0] https://delvingbitcoin.org/t/great-consensus-cleanup-revival/710 [1] https://github.com/bitcoin/bitcoin/blob/2638fdb4f934be96b7c798dbac38ea5= ab8a6374a/src/validation.cpp#L2518-L2588 [2] https://delvingbitcoin.org/t/great-consensus-cleanup-revival/710/4?u=3D= antoinep [3] https://delvingbitcoin.org/t/great-consensus-cleanup-revival/710/19?u= =3Dantoinep --=20 You received this message because you are subscribed to the Google Groups "= Bitcoin Development Mailing List" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoindev+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/= cLJjA4Em1sfbLHBctwsPUvquk8uMGGnXt2zGx7mn_JNu5F-HULjtdsBQjX9VET6MVRhbzJExPRr= wNKBeLV1S30uEgCtFiBmMPVuzTFVNxkY%3D%40protonmail.com. --b1=_hmyRTWFCpe5okwOhHIutAI6oGrHM5EMO0jRWjVRLnc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi everyone,

As part of my investigation in the Consensus Cleanup = proposal [0] i suggested we include a fix for potential duplicate coinbase = transactions in the future. This would avoid having to re-enable BIP30 veri= fication after block height 1,983,702.

= There are different ways this can be fixed. I am sending this email to reac= h out to engineers and stakeholders of the mining industry, to learn if som= e ways of fixing this would make things easier for them than others.
<= div style=3D"font-family: Arial, sans-serif; font-size: 14px; color: rgb(0,= 0, 0); background-color: rgb(255, 255, 255);">
The root issue we are trying to solve is: BIP= 34 mandated that the block height be committed to by the coinbase transacti= on as the first element of the scriptSig. However some coinbase transaction= s which predate BIP34 activation commit to some future height. This leaves = a possibility for duplicating the coinbase at these heights, which is why B= IP30 validation will need to be resumed in Bitcoin full nodes. See this com= ment [1] in the Bitcoin Core source code for more detail about this. See th= is post [2] in my Consensus Cleanup thread for a list of all heights inferi= or to 10,000,000 that were committed in early coinbase transactions.
<= div style=3D"font-family: Arial, sans-serif; font-size: 14px; color: rgb(0,= 0, 0); background-color: rgb(255, 255, 255);">
An additional motivation for this is that Utr= eexo nodes cannot perform BIP30 validation [3].

The fix is simply to mandate that each future coinbase transac= tion whose height was committed differs in some way from the early coinbas= e transaction that committed to its height. Here is some ways to achieve th= is:
  • require that future coinbase transactions commit to= their height minus one in the nLocktime=E2=80=8B field;
  • require that fut= ure coinbase transactions commit to their height in the nLockTime=E2=80=8B field and also set their nSequence=E2=80=8B to th= e maximum value (to disable the timelock);
  • require that future coinbase transactions h= ave a nVersion=E2=80=8B different than 1=E2=80=8B= ;
  • require t= he witness commitment to always be present, even for blocks with no segwit = transaction.

Is any of these preferable= ? Why? Would any of these make miners' life really hard? For what reason? D= o you have an alternative suggestion?

Any input fr= om someone in this industry would be appreciated, either here or on the Del= ving thread.

Thanks,
Antoine Poinsot
<= /div>

--
You received this message because you are subscribed to the Google Groups &= quot;Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoind= ev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/= cLJjA4Em1sfbLHBctwsPUvquk8uMGGnXt2zGx7mn_JNu5F-HULjtdsBQjX9VET6MVRhbzJExPRr= wNKBeLV1S30uEgCtFiBmMPVuzTFVNxkY%3D%40protonmail.com.
--b1=_hmyRTWFCpe5okwOhHIutAI6oGrHM5EMO0jRWjVRLnc--