Bitcoin Forum
November 16, 2024, 02:38:54 PM
Welcome,
Guest
. Please
login
or
register
.
News
:
Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
Home
Help
Search
Login
Register
More
Bitcoin Forum
>
Bitcoin
>
Bitcoin Technical Support
>
Question about doublespend
Pages: [
1
]
« previous topic
next topic »
Print
Author
Topic: Question about doublespend (Read 191 times)
kzv
(OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Question about doublespend
November 28, 2018, 10:18:16 AM
#1
Hi
I have look at this code
https://github.com/bitcoin/bitcoin/blob/master/src/consensus/tx_verify.cpp#L183
So my question: if bad miner will include into his block a transaction with duplicate inputs then bitcoin nodes will not check this and the block will valid?
OpenTrade
-
Open Source
Cryptocurrency Exchange
HeRetiK
Legendary
Offline
Activity: 3122
Merit: 2177
Playgram - The Telegram Casino
Re: Question about doublespend
November 28, 2018, 10:37:16 AM
Merited
by
mocacinno
(1),
LoyceV
(1)
#2
Quote from: kzv on November 28, 2018, 10:18:16 AM
Hi
I have look at this code
https://github.com/bitcoin/bitcoin/blob/master/src/consensus/tx_verify.cpp#L183
So my question: if bad miner will include into his block a transaction with duplicate inputs then bitcoin nodes will not check this and the block will valid?
No. A block that includes a double-spend is invalid and as such will be discarded by the other nodes. (both mining and non-mining nodes)
Edit: If I recall correctly a misusage of this function is what caused vulnerability CVE-2018–17144, which would have potentially allowed for double-spend attacks the way you described.
▄▄███████▄▄
███████
▄██
███
█████
███
██▄▄▄▄▄
▄█
██
██
█████████
██
██
██▀░
▄█
██
███
█████████
███
██
█▄░
▄█
██
██
██
██
▀▀███████
██
██
█▄
██
██
██
██
██████
▀▀███
██
██
██
██
██
██
████
████████
█
██
██
██
██
██
██
██
██████
▄▄███
██
██
██
▀█
██
██
██
██
▄▄███████
██
██
█▀
▀█
██
██
███████████
██
██
█▀░
▀█
██
██
█████████
██
██
██▄░
▀██
███
█████
███
██▀▀▀▀▀
▀▀███████▀▀
███████
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Playgram
.io
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▄▄▄░░
▀▄
█
█
█
█
█
█
█
▄▀
▀▀▀░░
│
▄▄▄███████▄▄▄
▄▄███████████████▄▄
▄███████████████████▄
▄██████████████▀▀
██
███▄
▄██████████▀▀
███
▄
██
▐████▄
██████▀▀
████
▄▄▀▀
███
██████
████▄▄
███
▄██▀
█████
▐██████
████████
█
█▀
███████
███████
▀███████▌▐
██
▄
████
▐██████▀
▀███████▄▄███▄
██
██████▀
▀███████████████████▀
▀▀███████████████▀▀
▀▀▀███████▀▀▀
...
▼▼
JOIN
▼▼
...
COMMUNITY
│
██████
▄▄███████▄▄
█████
███
███
▄████
███████
████▄░░
▀█▀
██
███
██████░██████
███░░
█
░██
███▀██▄▄░▄▄██▀███
██░
█
██
███▄░▄███▄███▄░▄███
██
█
██
███████████████████
██
█
███████████████████████
█
██░
▄▄▄
░██░
▄▄▄
░██░
▄▄▄
░██
█
██░░░
█
░██░░░
█
░██░░░
█
░██
██
██░░
█
░░██░░
█
░░██░░
█
░░██
██
██▄▄▄▄▄██▄▄▄▄▄██▄▄▄▄▄██
██
███████████████████████
███████████████████████
GET
100 SPINS
ON YOUR FIRST DEPOSIT
│
►
PLAY NOW
on Telegram
[/
kzv
(OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Re: Question about doublespend
November 28, 2018, 10:52:00 AM
#3
Quote from: HeRetiK on November 28, 2018, 10:37:16 AM
Quote from: kzv on November 28, 2018, 10:18:16 AM
Hi
I have look at this code
https://github.com/bitcoin/bitcoin/blob/master/src/consensus/tx_verify.cpp#L183
So my question: if bad miner will include into his block a transaction with duplicate inputs then bitcoin nodes will not check this and the block will valid?
No. A block that includes a double-spend is invalid and as such will be discarded by the other nodes. (both mining and non-mining nodes)
Edit: If I recall correctly a misusage of this function is what caused vulnerability CVE-2018–17144, which would have potentially allowed for double-spend attacks the way you described.
Thank you.
OpenTrade
-
Open Source
Cryptocurrency Exchange
HeRetiK
Legendary
Offline
Activity: 3122
Merit: 2177
Playgram - The Telegram Casino
Re: Question about doublespend
November 28, 2018, 10:57:09 AM
Merited
by
LoyceV
(1)
#4
Quote from: kzv on November 28, 2018, 10:52:00 AM
Quote from: HeRetiK on November 28, 2018, 10:37:16 AM
Quote from: kzv on November 28, 2018, 10:18:16 AM
Hi
I have look at this code
https://github.com/bitcoin/bitcoin/blob/master/src/consensus/tx_verify.cpp#L183
So my question: if bad miner will include into his block a transaction with duplicate inputs then bitcoin nodes will not check this and the block will valid?
No. A block that includes a double-spend is invalid and as such will be discarded by the other nodes. (both mining and non-mining nodes)
Edit: If I recall correctly a misusage of this function is what caused vulnerability CVE-2018–17144, which would have potentially allowed for double-spend attacks the way you described.
Thank you.
You're welcome. I did a little digging and if I'm not mistaken this was the commit that fixed it:
https://github.com/bitcoin/bitcoin/commit/4b8a3f5d235f40be8102506ab26caad005cc40d6
I'm not sure why they didn't remove the comment about skipping this check in CheckBlock() though.
▄▄███████▄▄
███████
▄██
███
█████
███
██▄▄▄▄▄
▄█
██
██
█████████
██
██
██▀░
▄█
██
███
█████████
███
██
█▄░
▄█
██
██
██
██
▀▀███████
██
██
█▄
██
██
██
██
██████
▀▀███
██
██
██
██
██
██
████
████████
█
██
██
██
██
██
██
██
██████
▄▄███
██
██
██
▀█
██
██
██
██
▄▄███████
██
██
█▀
▀█
██
██
███████████
██
██
█▀░
▀█
██
██
█████████
██
██
██▄░
▀██
███
█████
███
██▀▀▀▀▀
▀▀███████▀▀
███████
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Playgram
.io
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▄▄▄░░
▀▄
█
█
█
█
█
█
█
▄▀
▀▀▀░░
│
▄▄▄███████▄▄▄
▄▄███████████████▄▄
▄███████████████████▄
▄██████████████▀▀
██
███▄
▄██████████▀▀
███
▄
██
▐████▄
██████▀▀
████
▄▄▀▀
███
██████
████▄▄
███
▄██▀
█████
▐██████
████████
█
█▀
███████
███████
▀███████▌▐
██
▄
████
▐██████▀
▀███████▄▄███▄
██
██████▀
▀███████████████████▀
▀▀███████████████▀▀
▀▀▀███████▀▀▀
...
▼▼
JOIN
▼▼
...
COMMUNITY
│
██████
▄▄███████▄▄
█████
███
███
▄████
███████
████▄░░
▀█▀
██
███
██████░██████
███░░
█
░██
███▀██▄▄░▄▄██▀███
██░
█
██
███▄░▄███▄███▄░▄███
██
█
██
███████████████████
██
█
███████████████████████
█
██░
▄▄▄
░██░
▄▄▄
░██░
▄▄▄
░██
█
██░░░
█
░██░░░
█
░██░░░
█
░██
██
██░░
█
░░██░░
█
░░██░░
█
░░██
██
██▄▄▄▄▄██▄▄▄▄▄██▄▄▄▄▄██
██
███████████████████████
███████████████████████
GET
100 SPINS
ON YOUR FIRST DEPOSIT
│
►
PLAY NOW
on Telegram
[/
Pages: [
1
]
Print
Bitcoin Forum
>
Bitcoin
>
Bitcoin Technical Support
>
Question about doublespend
« previous topic
next topic »
Jump to:
Please select a destination:
-----------------------------
Bitcoin
-----------------------------
=> Bitcoin Discussion
===> Legal
===> Press
===> Meetups
===> Important Announcements
=> Development & Technical Discussion
===> Wallet software
=====> Electrum
=====> Bitcoin Wallet for Android
=====> BitcoinJ
=====> Armory
=====> Mycelium
=====> Hardware wallets
=> Mining
===> Mining support
===> Pools
===> Mining software (miners)
===> Hardware
=====> Group buys
===> Mining speculation
=> Bitcoin Technical Support
=> Project Development
-----------------------------
Economy
-----------------------------
=> Economics
===> Speculation
=> Marketplace
===> Goods
=====> Computer hardware
=====> Digital goods
=======> Invites & Accounts
=====> Collectibles
===> Services
===> Currency exchange
===> Gambling
=====> Games and rounds
=====> Investor-based games
=====> Gambling discussion
===> Lending
=====> Long-term offers
===> Securities
===> Auctions
===> Service Announcements
=====> Micro Earnings
===> Service Discussion
=====> Web Wallets
=====> Exchanges
=> Trading Discussion
===> Scam Accusations
===> Reputation
-----------------------------
Other
-----------------------------
=> Meta
===> New forum software
===> Bitcoin Wiki
=> Politics & Society
=> Beginners & Help
=> Off-topic
=> Serious discussion
===> Ivory Tower
=> Archival
===> Корзина
===> CPU/GPU Bitcoin mining hardware
===> Chinese students
===> Obsolete (buying)
===> Obsolete (selling)
===> MultiBit
-----------------------------
Alternate cryptocurrencies
-----------------------------
=> Altcoin Discussion
=> Announcements (Altcoins)
===> Tokens (Altcoins)
=> Mining (Altcoins)
===> Pools (Altcoins)
=> Marketplace (Altcoins)
===> Service Announcements (Altcoins)
===> Service Discussion (Altcoins)
===> Bounties (Altcoins)
=> Speculation (Altcoins)
-----------------------------
Local
-----------------------------
=> العربية (Arabic)
===> العملات البديلة (Altcoins)
=====> النقاشات
===> إستفسارات و أسئلة المبتدئين
===> التعدين
===> النقاشات الأخرى
===> منصات التبادل
=> Bahasa Indonesia (Indonesian)
===> Marketplace (Bahasa Indonesia)
===> Mining (Bahasa Indonesia)
===> Altcoins (Bahasa Indonesia)
===> Trading dan Spekulasi
===> Ekonomi, Politik, dan Budaya
===> Topik Lainnya
=> Español (Spanish)
===> Mercado y Economía
=====> Servicios
=====> Trading y especulación
===> Hardware y Minería
===> Esquina Libre
===> Mercadillo
=====> Mexico
=====> Argentina
=====> España
=====> Centroamerica y Caribe
===> Primeros pasos y ayuda
===> Altcoins (criptomonedas alternativas)
=====> Minería de altcoins
=====> Servicios
=====> Tokens (Español)
=> 中文 (Chinese)
===> 跳蚤市场
===> 山寨币
===> 媒体
===> 挖矿
===> 离题万里
=> Hrvatski (Croatian)
===> Trgovina
===> Altcoins (Hrvatski)
=====> Announcements (Hrvatski)
===> Off-topic (Hrvatski)
=> Deutsch (German)
===> Anfänger und Hilfe
===> Mining (Deutsch)
===> Trading und Spekulation
===> Projektentwicklung
===> Off-Topic (Deutsch)
===> Treffen
===> Presse
===> Altcoins (Deutsch)
=====> Announcements (Deutsch)
===> Marktplatz
=====> Auktionen
=====> Suche
=====> Biete
=> Ελληνικά (Greek)
===> Αγορά
===> Mining Discussion (Ελληνικά)
===> Altcoins (Ελληνικά)
=====> Altcoin Announcements (Ελληνικά)
=====> Altcoin Mining (Ελληνικά)
=> עברית (Hebrew)
=> Français
===> Actualité et News
===> Débutants
===> Discussions générales et utilisation du Bitcoin
===> Mining et Hardware
===> Économie et spéculation
===> Place de marché
=====> Échanges
=====> Produits et services
=====> Petites annonces
===> Le Bitcoin et la loi
===> Wiki, documentation et traduction
===> Développement et technique
===> Vos sites et projets
===> Hors-sujet
===> Altcoins (Français)
=====> Annonces
=> India
===> Mining (India)
===> Marketplace (India)
===> Regional Languages (India)
===> Press & News from India
===> Alt Coins (India)
===> Buyer/ Seller Reputations (India)
===> Off-Topic (India)
=> Italiano (Italian)
===> Guide (Italiano)
===> Progetti
===> Discussioni avanzate e sviluppo
===> Trading, analisi e speculazione
===> Mercato
=====> Mercato valute
=====> Beni
=====> Servizi
=====> Esercizi commerciali
=====> Hardware/Mining (Italiano)
=====> Gambling (Italiano)
===> Accuse scam/truffe
===> Mining (Italiano)
===> Alt-Currencies (Italiano)
=====> Annunci
===> Raduni/Meeting (Italiano)
===> Crittografia e decentralizzazione
===> Off-Topic (Italiano)
=> 日本語 (Japanese)
===> アルトコイン
=> Nederlands (Dutch)
===> Markt
===> Gokken/lotterijen
===> Mining (Nederlands)
===> Beurzen
===> Alt Coins (Nederlands)
===> Off-topic (Nederlands)
===> Meetings (Nederlands)
=> Nigeria (Naija)
===> Politics and society (Naija)
===> Off-topic (Naija)
=> 한국어 (Korean)
===> 대체코인 Alt Coins (한국어)
=> Pilipinas
===> Altcoins (Pilipinas)
=====> Altcoin Announcements (Pilipinas)
===> Pamilihan
===> Others (Pilipinas)
=> Polski
===> Tablica ogłoszeń
===> Alternatywne kryptowaluty
=====> Nowe kryptowaluty i tokeny
=====> Tablica ogłoszeń (altcoiny)
=> Português (Portuguese)
===> Primeiros Passos (Iniciantes)
===> Economia & Mercado
===> Mineração em Geral
===> Desenvolvimento & Discussões Técnicas
===> Criptomoedas Alternativas
===> Brasil
===> Portugal
=> Русский (Russian)
===> Новички
===> Бизнес
=====> Барахолка
=====> Обменники
===> Идеи
===> Кодеры
===> Майнеры
===> Политика
===> Трейдеры
===> Альтернативные криптовалюты
=====> Токены
=====> Бayнти и aиpдpoпы
===> Хайпы
===> Работа
===> Разное
===> Oбcyждeниe Bitcoin
=====> Новости
=====> Юристы
=> Română (Romanian)
===> Anunturi importante
===> Offtopic
===> Market
=====> Discutii Servicii
===> Minerit
===> Tutoriale
===> Bine ai venit!
===> Presa
===> Altcoins (Monede Alternative)
=====> Anunturi Monede Alternative
=> Skandinavisk
=> Türkçe (Turkish)
===> Bitcoin Haberleri
===> Pazar Alanı
===> Madencilik
===> Ekonomi
===> Servisler
=====> Fonlar
===> Proje Geliştirme
===> Alternatif Kripto-Paralar
=====> Madencilik (Alternatif Kripto-Paralar)
=====> Duyurular (Alternatif Kripto-Paralar)
===> Konu Dışı
===> Yeni Başlayanlar & Yardım
===> Buluşmalar
=> Other languages/locations
Loading...