R-Scan von meiner Adresse

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
vinny
User
Beiträge: 6
Registriert: Freitag 2. Februar 2018, 01:23

Hallo Leute,
ich habe folgendes Problem. Ich bin auf ein Programm gestoßen wo man seine Bitcoin Adresse selbst überprüfen kann ob es ein doppelten R wert hat.
Problem ist das dieses Programm nicht mal die Probeadressen ausm Internet richtig definiert. Bedeutet irgendwas stimmt nicht, bei dem identifizieren des doppelten R-werts. Der Herr der das schrieb meinte die Bytelänge anpassen, aber die passt. Hätte jemand eine Idee?

Hinzu kommt noch das man nur 50 Transaktionen vergleichen kann ich bräuchte aber 20.000, da die Adresse als Handelsadresse funkiert. Und wieder meinte der Herr im Chat das man mit einer for schleife es erweitern kann. Doch leider hab ich nur wenig Kenntnisse übers Programmieren. Für Ideen oder fertige Codes wäre ich sehr dankbar. Das Programm läuft sonst einwandfrei auf Python 2.7 und wird ausm Shell Fenster mit run Modul gestartet, also nicht aus dem Commandofenster. Hier ist auch nochmal der Link wo das Programm her ist und einige Leute darüber reden falls es für Ideen, Vorschläge oder Codes hilft: https://bitcointalk.org/index.php?topic=977070.0

Danke euch schon mal im Vorraus
Gruß vinny

Und hier ist der Code:

Code: Alles auswählen

#!/usr/bin/python


#################################################################################
#                                                                               #
#.______               _______.  ______     ___      .__   __.                  #
#|   _  \             /       | /      |   /   \     |  \ |  |                  # 
#|  |_)  |    ______ |   (----`|  ,----'  /  ^  \    |   \|  |                  #
#|      /    |______| \   \    |  |      /  /_\  \   |  . `  |                  #
#|  |\  \----.    .----)   |   |  `----./  _____  \  |  |\   |                  #
#| _| `._____|    |_______/     \______/__/     \__\ |__| \__|  v0.1.2          #
#                                                                               #
#GNU PL - 2015 - ca333                                                          # 
#                                                                               #         
#USE AT OWN RISK!                                                               #
#################################################################################

import json
import urllib2
import time
import sys

#for some reason blockchain.info api-chain is 59711 blocks short..
blockstart = 170399
blockstart += 59711
blockcount = urllib2.urlopen("https://blockchain.info/de/q/getblockcount").read()

print "WELCOME TO R-scan v0.1.2!"

print "ADDRESS-R-SCAN: "
addr = raw_input("type address:  ")
urladdr = "https://blockchain.info/de/rawaddr/" + str(addr)
#control api-url
print urladdr 
addrdata = json.load(urllib2.urlopen(urladdr))
print "Data for pubkey: " + str(addr)
print "number of txs: " + str(addrdata['n_tx'])
#tx-details:
y = 0
inputs = []
while y < addrdata['n_tx']:	
	print "#################################################################################"
	print "TX nr :" + str(y+1)
	print "hash: " + str(addrdata['txs'][y]['hash'])
	print "number of inputs: " + str(addrdata['txs'][y]['vin_sz'])
	#only if 
	#if addrdata['txs'][y]['vin_sz'] > 1:
	zy = 0
	while zy < addrdata['txs'][y]['vin_sz']:
		print "Input-ScriptNR " + str(zy+1) + " :" + str(addrdata['txs'][y]['inputs'][zy]['script'])
		inputs.append(addrdata['txs'][y]['inputs'][zy]['script'])
		zy += 1
	
	y += 1
	
print "compare: "

xi = 0
zi = 1
lenx = len(inputs)
alert = 0

#compare the sig values in each input script
while xi < lenx-1:
	x = 0
	while x < lenx-zi: 
		if inputs[xi][10:74] == inputs[x+zi][10:74]:
				#print "In Input NR: " + str(xi) + "[global increment] " + str(inputs[xi])
				#print('\a')
				print "Resued R-Value: "
				print inputs[x+zi][10:74]
				bad.append((int(x), str(inputs[x+zi][10:74])))
				alert += 1
x += 1
zi += 1
xi += 1

#check duplicates
#alert when everything ok

if alert < 1:
	print "Good pubKey. No problems."
	


sys.exit()
Benutzeravatar
pixewakb
User
Beiträge: 1409
Registriert: Sonntag 24. April 2011, 19:43

Gar nicht mein Bereich und ich habe keine Ahnung vom Thema! Das vorab.

Wenn ich es richtig sehe, dann macht die Software praktisch nichts. :oops: Du müsstest mal schauen, was du unter der Adresse

https://blockchain.info/de/rawaddr/<Deine Adresse>

finden kannst. Wenn es eine Beschränkung gibt, dann ist die durch die Website blockchain.info bedingt, im Quelltext selbst konnte ich spontan nichts finden, was irgendwie etwas beschränken würde. Der Quellcode definiert Variablen, die anschließend nicht weiter genutzt werden - entweder du hast nicht alles gepostet (Copyright?) oder aber der Quellcode wurde vor der Veröffentlichung nicht aufgeräumt.

Ich vermute gerade, dass du die Informationen auch direkt von der Website (siehe URL) abrufen kannst und das Skript wahrscheinlich dafür gar nicht bräuchtest. Würde ich an deiner Stelle einfach mal testen.
vinny
User
Beiträge: 6
Registriert: Freitag 2. Februar 2018, 01:23

Würde noch gerne anmerken das das Programm bis Print "Compare" einwandfrei läuft, also scheint der untere Teil nicht zu funktionieren.
Bedeutet wie könnte man den unteren Teil besser aufbauen und wie kann man die Txn-Anzahl erhöhen?

Danke
Gruß Vinny
vinny
User
Beiträge: 6
Registriert: Freitag 2. Februar 2018, 01:23

Doch doch sie macht was sie tut mir 50 Txn mit allen dort enthaltenen Transaktionen auflisten.
Und auf Blockchain.info wäre es zu mühsam 20.000 Transaktionen rauszukopieren und sie auf R-werte manuell zu kontrollieren.
Aber trotzdem danke für die Hilfe.

Hätten Sie ne Idee wie man den unteren Abschnitt nach Compare schreiben könnte?

Gruß Vincenz
Benutzeravatar
pixewakb
User
Beiträge: 1409
Registriert: Sonntag 24. April 2011, 19:43

Das Problem ist, dass ich den Quellcode nicht dahingehend verstehe, was dort eigentlich gemacht werden soll. Ich vermute erst einmal, dass das Limit von der Seite kommt - was mir logisch erscheint - und nicht im Quelltext definiert wird.

BTW: Verwende bitte Python-Code-Tags, die Lektüre des Quellcodes wird sonst erschwert.

(Ich merke an, dass ich den Hintergrund, also die Bitcoin-Idee, nicht verstehe...)
vinny
User
Beiträge: 6
Registriert: Freitag 2. Februar 2018, 01:23

Hallo,

naja wenn ich die Txn erhöhe von 50 auf 100 dann macht er mir auch das doppelte. Also an der Seite liegt es nicht.

Hier mal eine kurze Erklärung. Dieses Programm lädt alle Transaktionen die du von deiner Bitcoinadresse getätigt hast herunter. In jederTransaktion ist eine Input-Skript Nummer enthalten. Wenn man natürlich mehrere in einem Block getätigt hat, hat man mehrere Input-Skript Nummern. Alle Input-Skript Nummern die in einem Block getätigt wurden sind mit einer seperaten Nummer, also sprich die Transaktionsnummer markiert.
Ich weiß nicht ob sie schon sich mit der Blockchain-Technologie beschäftigt haben, ansonsten wird es sehr schwer Ihnen das jetzt zu erklären.
Aber danke für Ihr Interesse und bin weiterhin für alle Vorschläge dankbar.

Gruß vinny
Antworten