Bitcoin Forum

Local => Deutsch (German) => Topic started by: Matono.de on June 26, 2011, 05:39:24 PM



Title: Bitcoin Sender identifizieren
Post by: Matono.de on June 26, 2011, 05:39:24 PM
Hallo,

habe mal eine Frage zu den Bitcoin Überweisungen.

Ich möchte gerne Bitcoins auf meiner Adresse empfangen. Die Leute, die mir Bitcoins senden, möchte ich irgendwie identifizieren können, um die "überwiesenen Bitcoins" den Aufträgen (z.B. bei einem Onlineshop) zuordnen zu können. Leider kann der Sender ja keinen Betreff verfassen und dadurch z.B. die Rechnungsnummer anfügen, mit der ich das zuordnen könnte.

Wie kann ich Bitcoin-Überweisungen eindeutig einem Käufer zuordnen? Was muss mir der Käufer mitteilen? Ich rede hier nicht von "mal einem Käufer" sondern von sagen wir mal "mehreren Käufern pro Stunde". Wie kann ich das auflösen und "die Ware" an den richtigen senden?

LG
Marc


Title: Re: Bitcoin Sender identifizieren
Post by: Müller on June 26, 2011, 05:40:35 PM
Gib jedem Käufer eine andere Adresse. Wenn auf einer Adresse Geld an kommt, weißt Du, welcher Verkäufer das ist.


Title: Re: Bitcoin Sender identifizieren
Post by: Matono.de on June 26, 2011, 05:43:35 PM
Gib jedem Käufer eine andere Adresse. Wenn auf einer Adresse Geld an kommt, weißt Du, welcher Verkäufer das ist.

Wenn ich das NICHT kann... weil ich die Wartezeit für die Käufer nicht haben will? Ich möchte nicht, dass die Käufer erst auf meine Adresse warten müssen. Das dauert u.U. zu lange. Was kann ich sonst noch tun? Gibt es eine Möglichkeit?


Title: Re: Bitcoin Sender identifizieren
Post by: mauline on June 26, 2011, 06:17:28 PM
Gib jedem Käufer eine andere Adresse. Wenn auf einer Adresse Geld an kommt, weißt Du, welcher Verkäufer das ist.
Wenn ich das NICHT kann... weil ich die Wartezeit für die Käufer nicht haben will? Ich möchte nicht, dass die Käufer erst auf meine Adresse warten müssen. Das dauert u.U. zu lange. Was kann ich sonst noch tun? Gibt es eine Möglichkeit?

Schwer zu sagen, wenn Du nicht beschreibst, wie Dein Geschäft aussieht.

Irgendwie müssen die Leute an eine Bitcoin Adresse von Dir kommen. Wenn Du einen Online Shop hast, dann kannst Du die Adresse z.B. dynamisch generieren, wenn der Benutzer auf "Zur Kasse gehen" klickt. Das geht z.B. über den bitcoind: https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29 (https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29).

Instawallet (http://www.instawallet.org/ (http://www.instawallet.org/)) generiert z.B. bei jedem Aufruf so eine Adresse.

Mauline


Title: Re: Bitcoin Sender identifizieren
Post by: phantastisch on June 26, 2011, 06:20:06 PM
Gib jedem Käufer eine andere Adresse. Wenn auf einer Adresse Geld an kommt, weißt Du, welcher Verkäufer das ist.

Das hier ist deine einzige Möglichkeit.
Machs doch einfach automatisiert , entweder du hälst bereits generierte Adressen vor oder generierst sie on-the-fly per Skript und speicherst welche du welchem Käufer gegeben hast.
Nichts schwieriges.
Auf die Bestätigungen der Transaktionen musst du ja auch warten.



Title: Re: Bitcoin Sender identifizieren
Post by: redd on June 26, 2011, 06:23:36 PM
Hi Matono,
wenn du auf deinem Server kein bitcoind laufen hast, dann wäre die einzige Möglichkeit, dir mit dem Client mehrere Bitcoin-Adressen zu erzeugen und deinen Webshop so zu programmieren, dass ein neuer Kunde eine Adresse aus diesen erzeugten Adressen erhält.

Alternativ, wenn alle Kunden die gleiche Adresse benutzen sollen, müsste dir der Kunde mitteilen, mit welcher Adresse er die Bitcoins gesendet hat, dann ist ja eine Zuordnung auch wieder möglich ;) (Dann sieht aber jeder Kunde deinen Umsätze, was auch nicht so toll ist)

Redd


Title: Re: Bitcoin Sender identifizieren
Post by: Müller on June 26, 2011, 06:31:54 PM
Gib jedem Käufer eine andere Adresse. Wenn auf einer Adresse Geld an kommt, weißt Du, welcher Verkäufer das ist.

Wenn ich das NICHT kann... weil ich die Wartezeit für die Käufer nicht haben will? Ich möchte nicht, dass die Käufer erst auf meine Adresse warten müssen. Das dauert u.U. zu lange. Was kann ich sonst noch tun? Gibt es eine Möglichkeit?


Warum kannst Du das nicht? Was kannst Du nicht?Binde doch die API in Deinen Server ein? Wo ist da das Problem?



Title: Re: Bitcoin Sender identifizieren
Post by: CoinBoerse.com on June 26, 2011, 07:15:01 PM
Alternativ, wenn alle Kunden die gleiche Adresse benutzen sollen, müsste dir der Kunde mitteilen, mit welcher Adresse er die Bitcoins gesendet hat, dann ist ja eine Zuordnung auch wieder möglich

Da ich vor exakt demselben Problem stand habe ich mich auch nach dieser Möglichkeit erkundigt: Eine vorher eindeutige Absenderkennug gibt es nicht, da ein Zahlungsbetrag aus mehreren Adressen stammen kann.


Title: Re: Bitcoin Sender identifizieren
Post by: Matono.de on June 26, 2011, 07:31:28 PM
Also:

Ich habe bitcoind nicht auf einem Server laufen. Ich kann daher auch nicht "on-the-fly" eine Adresse erzeugen und dem Kunden zur Verfügung stellen. Gibt es eine Möglichkeit, dass ich per Script lokal einige Adressen erzeugen kann, die ich dann als "Einmaladresse" in einer Datenbank ablege, die dann nur einmal zugewiesen wird?

Bzw: Kann ich, wenn mir der Sender seine Adresse gibt, diese dann identifizieren?


Title: Re: Bitcoin Sender identifizieren
Post by: CoinBoerse.com on June 26, 2011, 07:43:57 PM
An einer solchen Lösung wäre ich auch interessiert.

ich habe es momentan in Handarbeit erledigt.


Title: Re: Bitcoin Sender identifizieren
Post by: mauline on June 26, 2011, 07:52:29 PM
Ich habe bitcoind nicht auf einem Server laufen.

Du musst das Programm nicht auf dem Server laufen haben. Es kann auch eine Verbindung zu einem laufenden Server auf einem anderen Rechner aufbauen, um dort die Bitcoin Datenbank anzufragen.

Gibt es eine Möglichkeit, dass ich per Script lokal einige Adressen erzeugen kann, die ich dann als "Einmaladresse" in einer Datenbank ablege, die dann nur einmal zugewiesen wird?

Auf dem Rechner, auf dem sich Dein Wallet befindet, den Bitcoin Client starten. Dann:

mauline@trixie:~$ bitcoin help getnewaddress
getnewaddress [account]
Returns a new bitcoin address for receiving payments.  If [account] is specified (recommended), it is added to the address book so payments received with the address will be credited to [account].


Bzw: Kann ich, wenn mir der Sender seine Adresse gibt, diese dann identifizieren?

Entweder im GUI Bitcoin Client oder:

mauline@trixie:~$ bitcoin help listtransactions
listtransactions [account] [count=10] [from=0]
Returns up to [count] most recent transactions skipping the first [from] transactions for account [account].


Mauline


Title: Re: Bitcoin Sender identifizieren
Post by: wareen on June 26, 2011, 08:20:44 PM
Gibt es eine Möglichkeit, dass ich per Script lokal einige Adressen erzeugen kann, die ich dann als "Einmaladresse" in einer Datenbank ablege, die dann nur einmal zugewiesen wird?

Klar, unter Linux (mit laufendem Bitcoin-client) in einer Konsole einfach folgendes eingeben:
Code:
for ((i=0;i<1000;i++)); do bitcoind -rpcuser=username -rpcpassword=password getnewaddress "Rechnungsnummer-$i"; done
...oder sowas in der Art.


Title: Re: Bitcoin Sender identifizieren
Post by: BitCoinBaron on June 26, 2011, 08:27:47 PM
Du kannst sicherlich auch deine erzeugte Adresse deinem Kunden zuordnen und diese dann in der DB ablegen. Wenn der Kunde das nächste Geschäft oder was auch immer tätigt, fragst du einfach ob schon eine Adresse erzeugt wurde, wenn nicht bekommt er eine neu, wenn er schon eine hat erzeugst du keine sondern nimmst die aus der DB. Denke das wird dann nicht so ganz unübersichtlich.
Wenn ein Kunde 10 Geschäfte getätigt hat und er 10 Adressen erzeugt wird es doch für alle beteiligten sehr kaotisch. Denke ich.


Title: Re: Bitcoin Sender identifizieren
Post by: Matono.de on June 26, 2011, 08:34:24 PM
Also das mit den bitcoin-commands verstehe ich nicht. Wenn ich die Eingabeaufforderung öffne und solche commands eingebe, dann bekomme ich immer die Meldung "couldn't connect to server". Irgendwas verstehe ich da nicht.

Es ist ja nun so, dass ich mit dem Programm einzelne Adressen erzeugen kann. Gut, diese Adressen kann ich dann in meiner MySQL Datenbank abspeichern und zur Verfügung stellen. Ich habe mein Script in PHP nun so angepasst, dass die User beim "Kasse-Gang" eine dieser zufälligen Adressen aus der Datenbank zugewiesen bekommen und dann dahin überweisen können. Auf die Dauer wird das aber ziemlich viel und ich muss die Adressen "per Hand" in die Datenbank einpflegen. Parallel dazu, dass jeder "Kunde" eine eigene Adresse zugewiesen bekommt, speichere ich seine Senderadresse, sofern er sie eingibt (hope so). Dadurch müsste ich jede Transaktion zuweisen können. Problem nur, wenn es vieeeel zu viel gibt.

Kann ich einem Kunden eine feste Adresse geben, so dass er diese immer wieder benutzt? Wäre das möglich?


Title: Re: Bitcoin Sender identifizieren
Post by: CoinBoerse.com on June 26, 2011, 08:43:33 PM

Parallel dazu, dass jeder "Kunde" eine eigene Adresse zugewiesen bekommt, speichere ich seine Senderadresse, sofern er sie eingibt (hope so). Dadurch müsste ich jede Transaktion zuweisen können.

siehe dazu dies:
Eine vorher eindeutige Absenderkennug gibt es nicht, da ein Zahlungsbetrag aus mehreren Adressen stammen kann.
Der Absender selbst weiss also gar nicht, aus wie vielen und aus welchen seiner Adressen seine Zahlung tatsächlich erfolgen wird.

Kann ich einem Kunden eine feste Adresse geben, so dass er diese immer wieder benutzt? Wäre das möglich?

Ja. Dadurch wird das Speichern der Absenderadressen überflüssig, sofern Du Kunden-ID und Empfängeradresse fest verbindest.


Title: Re: Bitcoin Sender identifizieren
Post by: Matono.de on June 26, 2011, 08:56:54 PM
@Coinboerse

Vielen Dank! Ich bin nun also soweit, dass ich zumindest "händisch" dieses Problem lösen kann. Ich habe nun folgende Schritte gemacht:

Ich habe eine Reihe von Adressen für den Empfang von Zahlungen generiert und diese in meine DB gefüttert. Sobald ein Kunde mir BTC senden will, prüft das Script, ob er schon eine feste Adresse zugewiesen bekommen hat. Wenn dies der Fall ist, wird diese Adresse genommen, damit er seine Zahlung dahin senden kann. Hat er noch keine Adresse, prüft das Script, ob noch "freie" Adressen in der Datenbank vorhanden sind und wählt - wenn verfügbar - eine davon für den Kunden aus. Diese wird ihm ab dem Zeitpunkt dauerhaft zugewiesen und er kann an diese Adresse seine Zahlungen leisten, die ich entsprechend prüfen kann.

Sollten mal keine Adressen mehr im DB Pool vorhanden sein, werden alle BTC Zahlungen geblockt, mit dem Hinweis, dass BTC "Einzahlungen" im Moment nicht möglich sind. Das ändert sich erst dann wieder, wenn ich neue Adressen händisch in die DB einspeise. Ich hoffe, dass es so klappt.

Ziemlich komplexer Mist. Ich hoffe, dass es sich lohnt und Bitcoins nicht morgen Schnee von gestern sind!!! :)


Title: Re: Bitcoin Sender identifizieren
Post by: mauline on June 26, 2011, 08:58:32 PM
Also das mit den bitcoin-commands verstehe ich nicht. Wenn ich die Eingabeaufforderung öffne und solche commands eingebe, dann bekomme ich immer die Meldung "couldn't connect to server". Irgendwas verstehe ich da nicht.

Der bitcoin Client muss dazu laufen. Entweder der GUI Client (bitcoin) oder der "headless" Client (bitcoind). Das Programm, dass Du auf der Kommandozeile aufrufst, stellt eine Verbindung zum bereits laufenden GUI oder headless Client her.

Warum das so ist: Der laufende GUI oder headless Client verwaltet die Datenbank (Dein Wallet) und stellt eine RPC (Remote Procedure Call) Schnittstelle für weitere Clients zur Verfügung. So ist sichergestellt, dass nicht zwei oder mehr Programme gleichzeitig an der Datenbank rummachen.

Kennt jemand eigentlich dazu ein Tutorial? Das ist ja eine recht zentrale Sache, wenn man bestehende Shop Applikationen "Bitcoin Ready" machen will.

Kann ich einem Kunden eine feste Adresse geben, so dass er diese immer wieder benutzt? Wäre das möglich?

Du kannst die Bitcoin Adresse zusammen mit den Kundendaten abspeichern, und ein- und demselben Kunden immer dieselbe Adresse für die Überweisung anzeigen.

Mauline


Title: Re: Bitcoin Sender identifizieren
Post by: CoinBoerse.com on June 26, 2011, 09:09:50 PM
Sollten mal keine Adressen mehr im DB Pool vorhanden sein, werden alle BTC Zahlungen geblockt, mit dem Hinweis, dass BTC "Einzahlungen" im Moment nicht möglich sind.

Das gilt es natürlich tunlichst zu vermeiden, denn wenn ein Kunde schon seine BTCs bei dir lassen will, sollte an dem Punkt nicht eine fehlende Empfängeradresse ihn daran hindern. Also ordentlich auf Vorrat anlegen.


Kennt jemand eigentlich dazu ein Tutorial? Das ist ja eine recht zentrale Sache, wenn man bestehende Shop Applikationen "Bitcoin Ready" machen will.

Ich befürchte fast, das Konzept hat die bitcoind-lose Variante gar nicht berücksichtigt, so dass man nun mit Hilfskonstruktionen zurecht kommen muss.


Title: Re: Bitcoin Sender identifizieren
Post by: Symbiont on June 26, 2011, 09:30:47 PM
Ich habe da eine andere Idee:

Wenn Du etwas für 1 Bitcoin verkaufst, dann lass Dir 1,0000000X (X=Rechnungsnummer) Bitcoins schicken. Da der Wert hinter dem Komma einem Bruchteil vom einem Cent entspricht, sollte das niemand stören. Wir werden das jedenfalls mit unserem Coffeeshop so versuchen und bald hier Gutscheine für 1 Bitcoin anbieten.

Was meint Ihr dazu?


Title: Re: Bitcoin Sender identifizieren
Post by: adaman on June 27, 2011, 09:45:53 PM
@ Matono

Aus den Posts ist mir jetzt nicht ganz klar wie weit du gekommen bist. Soweit ich gelesen habe hast du es "händisch" erledigt. Im Prinzip geht es automatisch genau so wie wareen es bereits beschrieben hat.

Als Voraussetzung dazu muss der bitcoin client vorher allerdings als Server gestartet werden.

bitcoind -server

Mal bitcoind -? eingeben. Sehr informativ.

Damit du dann , wie im Post von wareen bereits exakt beschrieben, automtatisch per rpc auf den als Server gestarteten headless Bitcoinclient zugreifen kannst must du in deinem Homeverzeichnis vorher noch die Datei bitcoin.conf mit rpcuser und rpcpassword anlegen. (~/.bitcoin/bitcoin.conf )

Mehr dazu zB. hier: http://foreverrising.wordpress.com/2011/04/15/bitcoin-conf-example/ (http://foreverrising.wordpress.com/2011/04/15/bitcoin-conf-example/)

Läuft der bitcoind wie beschrieben als Server und wurden rpcuser und rpcpassword hinterlegt kannst du nun scriptgesteuert automatisch Addressen generieren lassen.


Title: Re: Bitcoin Sender identifizieren
Post by: Matono.de on June 29, 2011, 08:21:30 PM
@ Matono

Aus den Posts ist mir jetzt nicht ganz klar wie weit du gekommen bist. Soweit ich gelesen habe hast du es "händisch" erledigt. Im Prinzip geht es automatisch genau so wie wareen es bereits beschrieben hat.

Als Voraussetzung dazu muss der bitcoin client vorher allerdings als Server gestartet werden.

bitcoind -server

Mal bitcoind -? eingeben. Sehr informativ.

Damit du dann , wie im Post von wareen bereits exakt beschrieben, automtatisch per rpc auf den als Server gestarteten headless Bitcoinclient zugreifen kannst must du in deinem Homeverzeichnis vorher noch die Datei bitcoin.conf mit rpcuser und rpcpassword anlegen. (~/.bitcoin/bitcoin.conf )

Mehr dazu zB. hier: http://foreverrising.wordpress.com/2011/04/15/bitcoin-conf-example/ (http://foreverrising.wordpress.com/2011/04/15/bitcoin-conf-example/)

Läuft der bitcoind wie beschrieben als Server und wurden rpcuser und rpcpassword hinterlegt kannst du nun scriptgesteuert automatisch Addressen generieren lassen.

Hi!

Ich habe meinen Hoster angeschrieben, der meinen managed Server hostet. Er hat mir mitgeteilt, dass sie mir bitcoind / Bitcoin installieren können und dass ich Zugriff auf den Webordner hätte, also auf die conf Datei. Einen root-Zugriff auf die Komandokonsole des Servers könnte ich nicht bekommen, weil es halt ein managed Server ist. Reicht das für mich aus, oder brauche ich in jedem Fall den Root-Zugriff? Ich kann leider nur PHP/MySQL und logischerweise HTML. Von Linux hab ich keine Ahnung... *dummbin*

LG


Title: Re: Bitcoin Sender identifizieren
Post by: adaman on June 29, 2011, 10:43:53 PM
Bitcoin läuft bei mir unter Linux mit normalen Userrechten. Root-Zugriff brauchst du also dafür nicht. Der bitcoind der als Server läuft und die Wallet.dat verwaltet muss nicht auf deinem Webserver laufen. Er könnte auch auf einer anderen Maschine unter Windows gestartet werden. Nur als Beispiel. Lässt du alles auf einem Webserver laufen, was ich aus Sicherheitsgründen eher abwegig finde, dann lege wie angegeben die bitcoin.conf mit rpc Usernamen und rpc Passwort an.

Dann starte den bitcoind als Server (bitcoind -server) oder alternativ unter Windows "bitcoin -server". Jetzt kann innerhalb eines Scripts eine zweite bitcoind Instanz für einen Kunden-Account eine neue Bitcoinaddresse anlegen.

Folgender Befehl legt eine neue Bitcoinadresse mit der Bezeichnung "testaccount" an.

bitcoind -rpcuser=rpcusername -rpcpassword=rpcpassword getnewaddress testaccount

Läuft der als Server gestartete bitcoind auf einem anderen System als auf dem auf welchem das Script ausgeführt wird, dann folgenden Befehl:

bitcoind -rpcuser=rpcusername -rpcpassword=rpcpassword -rpcconnect=<bitcoind server ip> getnewaddress testaccount

Die Bitcoinaddresse wird auf stdout ausgegeben. Sollte so wahrscheinlich auch unter Windows funktionieren.


Title: Re: Bitcoin Sender identifizieren
Post by: Bitsky on June 30, 2011, 12:58:47 PM
Also vielleicht verstehe ich grad etwas nicht, aber Matono kann doch einfach eine feste Adresse im Shop angeben und dann auf http://blockexplorer.com/address/blabla nachsehen, welche Transaktionen gelaufen sind. Dort steht auch die Senderadresse. Dann muß der Käufer nur seine Adresse bei der Bestellung mit angeben und somit kann man das zuordnen. Sowas kann man sogar automatisch per Skript auswerten lassen.

Warum sollte man dann sowas Komplexes machen wie einen Webshop umschreiben und/oder bitcoind installieren? Matono braucht nur die Absenderadresse, mehr nicht.


Title: Re: Bitcoin Sender identifizieren
Post by: redd on June 30, 2011, 01:21:54 PM
Also vielleicht verstehe ich grad etwas nicht, aber Matono kann doch einfach eine feste Adresse im Shop angeben und dann auf http://blockexplorer.com/address/blabla nachsehen, welche Transaktionen gelaufen sind.

Genau da liegt das Problem. Willst du dass jeder* deine Umsätze einsehen kann?

jeder* := Kunden, Konkurrenten, Finanzamt....

redd


Title: Re: Bitcoin Sender identifizieren
Post by: Bitsky on June 30, 2011, 02:31:38 PM
Also vielleicht verstehe ich grad etwas nicht, aber Matono kann doch einfach eine feste Adresse im Shop angeben und dann auf http://blockexplorer.com/address/blabla nachsehen, welche Transaktionen gelaufen sind.

Genau da liegt das Problem. Willst du dass jeder* deine Umsätze einsehen kann?

jeder* := Kunden, Konkurrenten, Finanzamt....

redd
Wenn Matono ein richtiges Unternehmen leitet, also mit Gewerbeanmeldung usw, dann muß er sich eh um die Steuer und das Finanzamt kümmern. Und wenn mal die Steuerprüfer da sind, kann er auch nicht sagen "Ätsch-bätsch, meine Umsätze sag ich nicht".

Und die Konkurrenz.. Naja, bei Politikern verlangt man ja auch eine Offenlegung der Einkünfte. Je nach Auftragsmenge reicht auch eine wöchentlich/täglich neue Adresse.

Denn was zu bedenken ist: wird ein fertiger Shop umgeschrieben, dann wird in 99% der Fälle auf anschließende Updates verzichtet. Und wie das ausgeht sollte jeder wissen, der nicht erst 5 Minuten im Internet ist.


Title: Re: Bitcoin Sender identifizieren
Post by: Bitsky on June 30, 2011, 02:35:27 PM
Und da ich es grade sehe: es gilt in Deutschland Impressumspflicht. Matono's Seite ist eine Freude für den Abmahnanwalt.


Title: Re: Bitcoin Sender identifizieren
Post by: redd on June 30, 2011, 02:50:59 PM
Und die Konkurrenz.. Naja, bei Politikern verlangt man ja auch eine Offenlegung der Einkünfte. Je nach Auftragsmenge reicht auch eine wöchentlich/täglich neue Adresse.

So ein schwachsinniger Vergleich..! Ist das dein ernst?

Und ob ich mir ein Skript schreibe, dass täglich die Bitcoin-Adresse ändert oder nach jeder Bestellung bleibt sich vom Aufwand her gleich!


Title: Re: Bitcoin Sender identifizieren
Post by: Bitsky on June 30, 2011, 03:17:32 PM
So ein schwachsinniger Vergleich..! Ist das dein ernst?

Und ob ich mir ein Skript schreibe, dass täglich die Bitcoin-Adresse ändert oder nach jeder Bestellung bleibt sich vom Aufwand her gleich!
Den Ernst muß Matono festlegen, je nachdem, wie wichtig im die Geheimhaltung ist. Sein Geschäft, seine Entscheidung.