Bitcoin Forum
September 12, 2024, 04:53:17 AM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Mining software (miners) / Bug in Stratum Mining Software on: March 24, 2015, 06:58:49 PM
Hi

The Stratum Mining Software has a serious bug. It allows a Miner to send the same share several times without the duplicate check detecting it. With clever programming this can be more than 1000 shares that it should be in the worst case. Normally it is possible to get eight times the shares.

The problem is, that the duplicate check works with strings (nonce, extranonce...) and does check them case sensitive.
So the exploiter simply sends his values in all variations with small and big letters (because it is in hex)

example:

03:51:47.760512 IP 87.203.91.128.28348 > xxx.xxx.11.163.3333: Flags [P.], seq 535:1070, ack 216, win 64185, length 535
.m.g..h..P...kn..
{"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbf", "5d82727c"]}
{"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbf", "5d82727C"]}
{"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbf", "5D82727c"]}
{"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbf", "5D82727C"]}
{"id":913,"method":"mining.submit","params":["uphellper.5553", "424", "f5670100", "550cdcbF", "5d82727c"]}

03:51:47.859746 IP xxx.xxx.11.163.3333 > 87.203.91.128.28348: Flags [.], ack 1070, win 65535, length 0
.n..h..m.i.P........
03:51:47.951332 IP xxx.xxx.11.163.3333 > 87.203.91.128.28348: Flags [P.], seq 216:431, ack 1070, win 65535, length 215
.n..h..m.i.P....3..{"error": null, "id": 913, "result": true}
{"error": null, "id": 913, "result": true}
{"error": null, "id": 913, "result": true}
{"error": null, "id": 913, "result": true}
{"error": null, "id": 913, "result": true}

The diff for the fix looks like this:

file: stratum-mining/lib/template_registry.py

         # Check for duplicated submit
-        if not job.register_submit(extranonce1_bin, extranonce2, ntime, nonce):
+        if not job.register_submit(extranonce1_bin, extranonce2.lower(), ntime.lower(), nonce.lower()):
             log.info("Duplicate from %s, (%s %s %s %s)" % \

The fix may be not complete though.

I understand that the pool owners and especially slush (his pool seems to have this fixed) do not share their hard work.
But to not release this bugfix is not what the bitcoin community stands for.

If anyone appreciates this public disclosure you can show it here: 19c4bA6qHLjnWgYQmS9VuqwHuNT6jR5Atz

Denis, owner of the small but old pool btcmp.com

PS: the user which attacked my pool had the name "uphellper". Shame on You!
2  Local / Mining (Deutsch) / Neuer pool: www.btcmp.com on: July 27, 2011, 12:37:51 PM
Hallo

Ich wollte hier mal unseren Pool vorstellen: www.btcmp.com

performance:
Zur Zeit haben wir ca. 65GH/s mit einer stabilen Truppe an Minern.
Wir haben auch eine sehr gute 'low stale' rate. Bei minern mit
guten Verbindungen ist ein Wert von 0.1% keine Seltenheit.

payout:
True PPS mit 4%

setup:
Der Pool läuft auf einem FreeBSD 8.4 STABLE mit ZFS mirror.
Software ist postgresql, Python, nginx, pushpool (heavily modified)
und jetzt auch stratum.
Die hardware steht bei einem ISP wo ich die höchstpersönlich
eingebaut habe. Kein virtual host shit.

user support:
wir sind auf dem irc channel irc://irc.freenode.net/btcmp unter freenode zu finden. Dort ist
immer eine kleine menge an usern zu finden die auch gerne weiterhelfen
bei allen möglichen fragen. ("wann finden wir den nächsten block?" Wink
wir beantworten auch gerne fragen per mail.

update:
jetzt das ganze auch mit ipv6 connectivity
finally SSL support (ja, hat gedauert)
Stratum support.
wir nehmen immer den aktuellen bitcoind (z.Z. 0.8.1)
es werden alle Transaktionen angenommen beim minen die auch der bitcoind annimmt.

Ganz wichtig:

Seit zwei Jahren zahlen wir Miner aus und bisher gab es noch nie Beschwerden.

Wir hatten auch schon ein Chinesischen Miner mit 2x Avalon Asic, hat alles
super funktioniert. Wir sind also ASIC tauglich.

Denis

Die liste mit unseren gefundenen Blöcken:
http://www.btcmp.com/blocklist
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!