Author

Topic: Multisig Escrow (Read 5475 times)

sr. member
Activity: 265
Merit: 254
October 04, 2015, 09:08:35 AM
#24
Testen könnt ihr unter https://multisig.btcnet.eu/
Die Seite nutzt ein self-signed SSL Zertifikat. Es muss im browser manuell aktzeptiert werden. SHA1 Fingerprint ist 77:A0:9C:47:C4:54:DC:45:5E:A2:E2:9C:08:D2:5B:99:FE:95:F9:73

Die Seite ist nun per DNSSEC/TLSA gesichert. Damit ist das Zertifikat besser abgesichert als wenn es von einer CA signiert wäre.

Ich habe die Seite überarbeitet, Änderungen aus der Originalversion eingebaut und nutze ein neues DNSSEC/TLSA gesichertes Zertifikat mit den folgenden Fingerprints.

SHA1:
Code:
5E:F6:37:A0:3E:92:D9:E8:51:D0:1A:86:59:0B:36:80:78:6F:66:6D
SHA256:
Code:
D8:D2:05:20:2E:B9:40:ED:1C:C7:DD:1B:85:67:A0:71:0F:66:06:06:B8:4F:1F:BB:61:AA:A4:B2:17:88:76:4D

Die interessanteste Änderung dürfte sein, daß man nun den Public Key eines Mediator (Escrower/Treuhänder) beim Erstellen einer Multisig Adresse direkt einfügen kann. Ich habe die Schlüssel von mezzomix, OutCast3K und meinen eigenen eingebaut. Bei Interesse kann ich weitere Schlüssel von vertrauenswürdigen Nutzern ebenfalls aufnehmen.

Daneben lässt sich nun einstellen, von welchem Service die Unspent Transaktionen geladen werden und über welchen Service Transaktionen ins Bitcoin Netzwerk gestellt werden. Unterstützt werden nun neben blockchain.info auch blockr.io und coinb.in.

Den Source-Code findet ihr auf github unter https://github.com/real1510/multisig.

sr. member
Activity: 265
Merit: 254
January 08, 2015, 03:45:55 PM
#23
Den aktuellen Stand des Fork findet ihr auf github unter https://github.com/real1510/coinbin

Testen könnt ihr unter https://multisig.btcnet.eu/
Die Seite nutzt ein self-signed SSL Zertifikat. Es muss im browser manuell aktzeptiert werden. SHA1 Fingerprint ist 77:A0:9C:47:C4:54:DC:45:5E:A2:E2:9C:08:D2:5B:99:FE:95:F9:73

Die Seite ist nun per DNSSEC/TLSA gesichert. Damit ist das Zertifikat besser abgesichert als wenn es von einer CA signiert wäre.


Ich habe den Fork nochmal neu aufgesetzt und mit der Version von OutCast3k synchronisiert. Der aktuelle Stand ist nun unter https://github.com/real1510/multisig zu finden. Die Onlineversion unter https://multisig.btcnet.eu/ ist ebenfalls auf dem aktuelle github Stand.

Beim Signieren werden nun keine Random k Werte mehr genutzt sondern deterministische Werte nach RFC 6979. Außerdem wird der s Wert entsprechend den BIP62 Regeln behandelt.

Es wird weiterhin blockchain.info benutzt um die unspent transactions zu bekommen und um die endgültige transaction zu versenden.
legendary
Activity: 1232
Merit: 1011
Monero Evangelist
December 11, 2014, 05:16:44 PM
#22
Bump. Ist dies noch aktuell?
sr. member
Activity: 265
Merit: 254
December 10, 2014, 01:44:50 PM
#21
Den aktuellen Stand des Fork findet ihr auf github unter https://github.com/real1510/coinbin

Testen könnt ihr unter https://multisig.btcnet.eu/
Die Seite nutzt ein self-signed SSL Zertifikat. Es muss im browser manuell aktzeptiert werden. SHA1 Fingerprint ist 77:A0:9C:47:C4:54:DC:45:5E:A2:E2:9C:08:D2:5B:99:FE:95:F9:73

Die Seite ist nun per DNSSEC/TLSA gesichert. Damit ist das Zertifikat besser abgesichert als wenn es von einer CA signiert wäre.
legendary
Activity: 2702
Merit: 1261
December 05, 2014, 06:42:59 PM
#20
...
  • Statt coinb.in wird nun blockchain.info für die UTXO zum bauen von TX und zum broadcast genutzt
  • ...

Das sieht gut aus. Da es mit der coinb.in Seite in der Vergangenheit zeitweise Ausfälle beim Multisig-Escrow gab, ist ein zusätzlicher Service immer willkommen. Ich habe meinen MultiSig-Escrow Beitrag angepasst und den Service ebenfalls mit aufgenommen. Eine dezentrale Anbindung an einen Bitcoin Knoten könnte die Verfügbarkeit nochmal deutlich verbessern.
legendary
Activity: 1022
Merit: 1004
December 05, 2014, 04:47:21 PM
#19
Mit blockchain.info habe ich persönlich keine Probleme, mir gefällt es sogar
besser als mit einem eigenen core-client. Am besten wäre natürlich wenn
das script alternativ mit einem core reden kann (für den Notfall, sozusagen),
aber in der jetzigen Form finde ich die anbindung an die blockchain.info-API stimmig.
sr. member
Activity: 265
Merit: 254
December 05, 2014, 04:36:54 PM
#18
Das mit blockchain.info ist nur mal der erste Schritt. Auf Dauer möchte ich die Seite an bitcoin-core anbinden. Im Augenblick würde das leider nur mit dem broadcast klappen. Für die unspent outputs muss bitcoin-core gepatcht werden.

Falls einer den broadcast testet könnte er mir die blockchain.info Antwort geben. Die Schnittstelle ist bei blockchain.info nicht ausreichend dokumentiert. Ich habe bisher nur mit fehlerhaften Transaktionen getestet. Eine Positivmeldung wird deshalb noch mit Warnung statt mit einem OK quitiert.
legendary
Activity: 1022
Merit: 1004
December 05, 2014, 04:17:47 PM
#17
Nice, das hört sich gut an, ein funktionierendes Multisig-Tool halte ich für sehr
wichtig. Vielen Dank dafür. Ich weiss allerdings nicht ob ich in den nächsten Tagen
zum testen komme.

Im Übrigen finde ich es wichtig, dass das Tool an prominenter Stelle gehostet
wird (nachdem es ausgiebig getestet wurde). Am liebsten wäre mir ja wenn sich
z.B. blockchain.info oder meinetwegen erstmal bitcoin.de dem annimmt. Ich meine nur
das zuverlässige Hosten des Scripts und dass sie mit Ihrem Namen dafür einstehen, dass
man keiner gefakten Version aufsitzt etc. Dann würde sich das mal endlich
durchsetzen können.
sr. member
Activity: 265
Merit: 254
December 05, 2014, 03:50:51 PM
#16
Das https im code ist leider nur ein Problem. Die API von coinb.in ist unter https gar nicht zu erreichen, d. h. man
bekommt eine Fehlermeldung. Wenn man https durch http ersetzt, dann erreicht man zwar die API, allerdings hat man
dann das neue Problem dass die API von coinb.in nicht richtig funktioniert. Vor allem scheint sie falsche Balances
zurückzuliefern (immer 0)..

Im Moment ist OutCasts Script aus meiner Sicht nicht zu empfehlen, vor allem auch da er sich zu den Problemen
nicht äussert, vielleicht hat er das Projekt ganz hingeschmissen..?

edit: Um die coinb.in API zu ersetzen, muss man mal schauen was sie genau macht. Ich habe das nirgends dokumentiert
gesehen, und outcast hat irgendwo geschrieben, dass sie nicht open-source sei aber irgendwann werden soll (was auch
immer das bedeutet)..

Das Tool von OutCast3k ist gut. Allerdings gab es in den letzten Monaten immer wieder längere Ausfälle. Ich habe deshalb die aktuelle Version angepasst:

  • Statt coinb.in wird nun blockchain.info für die UTXO zum bauen von TX und zum broadcast genutzt
  • Google Analytics und Google QR-Code wurde entfernt. QR-Code wird offline erzeugt
  • Die Wallet habe ich erst mal entfernt
  • Außer der UTXO Liste und dem broadcast funktioniert alles offline

Den aktuellen Stand des Fork findet ihr auf github unter https://github.com/real1510/coinbin

Testen könnt ihr unter https://multisig.btcnet.eu/
Die Seite nutzt ein self-signed SSL Zertifikat. Es muss im browser manuell aktzeptiert werden. SHA1 Fingerprint ist 77:A0:9C:47:C4:54:DC:45:5E:A2:E2:9C:08:D2:5B:99:FE:95:F9:73

Über Tests, Rückmeldungen, patches ... würde ich mich freuen.
hero member
Activity: 665
Merit: 521
September 15, 2014, 05:27:42 AM
#15
Also es gibt IMO einige Szenarien, wo das zum Problem werden könnte. Die Ware könnte wochenalng unterwegs sein oder der Scammer könnte mich mit Ausreden hinhalten (z.B. Rechner mit dem Private Key defekt, muss erst repariert werden) oder ein unerfahrener Escrower könnte zu leichtfertig freigeben.

Das könnte man relativ einfach lösen, indem man die genauen Konditionen und die beiden Parteien im Vorfeld irgendwo speichert, so dass der Escrower darauf Zugriff hat. Wenn man es ganz hundertprozentig machen will, müsste man die Werte noch hashen und den Hash per OP_RETURN ins Redeem-Script schreiben, damit man sie verifizieren kann.
legendary
Activity: 2702
Merit: 1261
September 15, 2014, 01:04:43 AM
#14
Irgendwann kriege ich (Freyr) diese Kontobewegung mit und wundere mich, weil ich die Transaktion ja nicht freigegeben habe. Aber dann ist es schon zu spät. Der Scammer hat die Ware und das Geld.

Ich gehe mal davon aus, dass Du Dich relativ schnell melden wirst, wenn die Ware beim Käufer angekommen ist, Du aber das Treuhandguthaben nicht bekommst. Dagegen habe ich gegenüber Handelspartnern, die sich komisch benehmen und z.B. die Signatur verweigern keinen Druck, möglichst sofort die Transaktion zu signieren.

Wichtig ist natürlich, dass sich ein Beteiligter auch an den Treuhänder wendet, wenn etwas schief geht (z.B. Zahlung bleibt aus). Dafür hat man den Treuhänder dazwischen!
hero member
Activity: 665
Merit: 521
September 14, 2014, 02:09:27 PM
#13
Ich weiß, aber das meinte ich nicht. Ich meinte das ungefähr so:

Ich (Freyr) verkaufe eine Ware hier über das Forum an einen mir unbekannten Nutzer (nennen wir ihn Scammer1). Wir einigen uns auf einen Preis und verwenden deinen (mezzomix) Public Key als Escrow. Weil wir davon ausgehen, dass alles glatt läuft, geben wir dir auch vorher nicht bescheid, damit du keine Arbeit damit hast. Scammer1 schickt die vereinbarten BTC aufs Treuhand-Konto und ich verschicke die Ware.

Nun passiert folgendes: Scammer1 erstellt ein zweites Konto hier im Forum (nennen wir es Scammer2). Nun schreibt er dich (mezzomix) an und erzählt dir, er habe eine Ware von Scammer2 gekriegt (nicht von Freyr) und sie nicht erhalten. Er zeigt dir die Multisig-Adresse mit dem Geld und weist sich dir gegenüber mit einer signed Message aus. Um die Version der Gegenseite zu hören, schreibst du Scammer2 an und verlangst von ihm eine Stellungnahme. Scammer2 (der in Wirklichkeit Scammer1 ist) erzählt dir jetzt irgendeine Lügengeschichte, so dass du zum Ergebnis kommst, dass er ein Arschloch ist. Er zeigt sich zudem unkooperativ und weist sich auf deine Anforderung nicht mit dem Private Key aus (den er auch gar nicht hat). Dir bleibt also nichts anderes übrig, als Scammer1 recht zu geben und ihm das Geld vom Treuhandkonto zurück zu überweisen.

Irgendwann kriege ich (Freyr) diese Kontobewegung mit und wundere mich, weil ich die Transaktion ja nicht freigegeben habe. Aber dann ist es schon zu spät. Der Scammer hat die Ware und das Geld.


legendary
Activity: 2702
Merit: 1261
September 14, 2014, 07:22:31 AM
#12
Ich finde, das ist momentan bei coinb.in noch eine Sicherheitslücke, weil ein Scammer dem Escrower einfach einen falschen Geschäftspartner mitteilen kann und ihm vorspielen kann, dass der Geschäftspartner sich betrügerisch verhält. Damit kann der Escrower dazu bewegt werden, die Treuhandeinlage an den Scammer freizugeben, ohne dass der wahre Gechäftspartner überhaupt etwas davon mitkriegt und sich dazu äußern kann.

Alle Beteiligten sind durch ihre Schlüssel eindeutig identifizierbar. Wichtig ist, kein Geld an eine Multisig Adresse zu senden, ohne zu prüfen, dass der eigene Schlüssel (und der Schlüssel des Treuhänder) zur Generierung genutzt wurde. Damit sind im Ernstfall alle Parteien eindeutig identifizierbar und können signierte Erklärungen abgeben. Ein Scammer müsste das Public Key Verfahren brechen, um diese Signatur zu fälschen.
hero member
Activity: 665
Merit: 521
September 12, 2014, 08:54:11 AM
#11
Umrechung in Fiat-Währungen

Man könnte einen Kursrechner anbieten. Da der Einzahler aber sowieso die Summe überweisen muss und der Service nicht auf dessen Wallet zugreifen soll, kann man dafür auch einen eigenen/eingebundenen Kursticker/-rechner nutzen.

Genau. Der Service soll natürlich nicht auf die Wallet zugreifen können, aber er kann die bitcoin-URL und QR-Code mit dem entsprechenden Betrag anzeigen. Überweisen muss der Benutzer dann selber.

Aufteilung des Kursrisikos

Das würde ich eher nicht machen. Damit steigt die Wahrscheinlichkeit, dass es zu Streitigkeiten kommt und man den Escrower am Ende doch benötigt. Falls die Komplexität der Abwicklung nicht steigt und die Nachfrage da ist, könnte man es ähnlicher der Brain Wallet in einem zweiten Schritt einbauen.


Ich glaube eher das Gegenteil; dadurch könnten Streitigkeiten vermieden werden. Natürlich müssen beide Parteien sich schon zu Beginn dazu committen, wie sie mit Kursschwankungen umgehen.

API-Support

Das wäre eine nette Funktion um die Abwicklung noch benutzerfreundlicher zu machen. Daneben könnte man diverse Links für die einzelnen Abwicklungsschritte zur Verfügung stellen. Man sollte allerdings nicht vergessen, dass der Server dann Informationen speichern muss, die mit der heutigen Lösung (z.B. coinb.in) nur den Geschäftspartnern bekannt sind (Redeem Script, Output Transaktion, Public Keys).

Genau, die Konsequenz wäre, dass man eine rudimentäre Datenbank mit den Transaktionen aufbauen müsste. Ich finde nämlich auch das Austauschen der Redeem-Scripts nicht besonders Benutzerfreundlich. Eine URL mit einer Transaktions-ID ist da viel einfacher. Ich würde außerdem noch so wie bei bitrated ein Freitextfeld einbauen, wo nochmal genau die Konditionen für die Transaktion festgehalten werden. Dann kann der Escrower im Steitfall genau sehen, was die beiden Parteien ursprünglich vereinbart hatten.

Nachtrag:

Ich würde auch noch die Kontaktmöglichkeiten für beide Parteien mitspeichern (E-Mail-Adresse, Forennick, Skype, etc.), damit der Escrower im Konfliktfall weiß, wen er ansprechen muss. Ich finde, das ist momentan bei coinb.in noch eine Sicherheitslücke, weil ein Scammer dem Escrower einfach einen falschen Geschäftspartner mitteilen kann und ihm vorspielen kann, dass der Geschäftspartner sich betrügerisch verhält. Damit kann der Escrower dazu bewegt werden, die Treuhandeinlage an den Scammer freizugeben, ohne dass der wahre Gechäftspartner überhaupt etwas davon mitkriegt und sich dazu äußern kann.
legendary
Activity: 2702
Merit: 1261
September 12, 2014, 08:07:33 AM
#10
Brainwallet-Support: Der Nutzer sollte statt einem zufällig generierten Private-Key auch ein selbstgewähltes Passwort benutzen dürfen. Ich weiß, das ist nicht so sicher wie eine Zufallszahl, aber für Kleinbeträge ist es OK. Der Nutzer sollte eine Warnung kriegen, wenn er ein unsicheres Passwort verwenden will. Die Implementierung sollte mit brainwallet.org kompatibel sein, damit man das als Backup benutzen kann, falls die Escrow-Seite offline geht. (Alternativ: BIP32.org-Support, damit man aus dem gleichen Passwort verschiedene Private-Keys generieren kann)

Das wäre in einem zweiten Schritt sicherlich eine interessante Funktion. Erst mal sollte aber das System rund laufen.

Umrechung in Fiat-Währungen: Man sollte als Betrag auch USD, EUR oder sonstige Fiat-Währungen eingeben können, die in BTC nach einem bestimmten Index umgerechnet werden.

Man könnte einen Kursrechner anbieten. Da der Einzahler aber sowieso die Summe überweisen muss und der Service nicht auf dessen Wallet zugreifen soll, kann man dafür auch einen eigenen/eingebundenen Kursticker/-rechner nutzen.

Aufteilung des Kursrisikos: Das hier ist etwas komplizierter, aber ziemlich nützlich. Da der BTC-Kurs leider ziemlich volatil ist, wäre es bei langfristigen Transaktionen (z.B. mehrmonatigen Freelancing-Projekten) ganz gut, wenn man die Möglichkeit hätte, das Risiko der Kursschwankungen zwischen beiden Parteien aufzuteilen. Der Käufer muss zu Beginn der Transaktion etwas mehr als den vereinbarten Betrag auf das Treuhand-Konto überweisen und kriegt es am Ende der Transaktion wieder.

Das würde ich eher nicht machen. Damit steigt die Wahrscheinlichkeit, dass es zu Streitigkeiten kommt und man den Escrower am Ende doch benötigt. Falls die Komplexität der Abwicklung nicht steigt und die Nachfrage da ist, könnte man es ähnlicher der Brain Wallet in einem zweiten Schritt einbauen.

API-Support: Das ganze sollte einfach in beliebige Seiten integrierbar sein (Kleinanzeigenportale, Freelancing-Portale, Foren). Über eine API sollte man den Zustand einer Transaktion sehen können (bezahlt, noch nicht bezahlt, abgeschlossen), die Escrow-Adresse sehen können und man sollte einen "Bezahlen"-Knopf auf seine eigene Seite integrieren können, womit der Benutzer auf die Escrow-Seite weitergeleitet wird (ähnlich wie bei Paypal), wo er eine Transaktion einleiten kann, bzw. signieren kann (alles Browserseitig über JavaScript)

Das wäre eine nette Funktion um die Abwicklung noch benutzerfreundlicher zu machen. Daneben könnte man diverse Links für die einzelnen Abwicklungsschritte zur Verfügung stellen. Man sollte allerdings nicht vergessen, dass der Server dann Informationen speichern muss, die mit der heutigen Lösung (z.B. coinb.in) nur den Geschäftspartnern bekannt sind (Redeem Script, Output Transaktion, Public Keys).
hero member
Activity: 665
Merit: 521
September 11, 2014, 11:54:28 AM
#9
Treibt noch jemand das Projekt voran? Ich kann zwar aus Zeitgründen nicht viel zur Umsetzung beitragen, könnte so ein Portal aber gebrauchen.

Eine benutzerfreundliche Lösung sollte m.E. folgende Features haben:

  • Brainwallet-Support: Der Nutzer sollte statt einem zufällig generierten Private-Key auch ein selbstgewähltes Passwort benutzen dürfen. Ich weiß, das ist nicht so sicher wie eine Zufallszahl, aber für Kleinbeträge ist es OK. Der Nutzer sollte eine Warnung kriegen, wenn er ein unsicheres Passwort verwenden will. Die Implementierung sollte mit brainwallet.org kompatibel sein, damit man das als Backup benutzen kann, falls die Escrow-Seite offline geht. (Alternativ: BIP32.org-Support, damit man aus dem gleichen Passwort verschiedene Private-Keys generieren kann)

  • Umrechung in Fiat-Währungen: Man sollte als Betrag auch USD, EUR oder sonstige Fiat-Währungen eingeben können, die in BTC nach einem bestimmten Index umgerechnet werden.

  • 2-von-2 Escrow: In bestimmten Fällen ist es besser, keinen Escrower zu haben, statt einem, dem man nicht vertraut. (Bei coinb.in geht das schon, bei bitrated.com und bitescrow.org aber z.B. nicht.)

  • Aufteilung des Kursrisikos: Das hier ist etwas komplizierter, aber ziemlich nützlich. Da der BTC-Kurs leider ziemlich volatil ist, wäre es bei langfristigen Transaktionen (z.B. mehrmonatigen Freelancing-Projekten) ganz gut, wenn man die Möglichkeit hätte, das Risiko der Kursschwankungen zwischen beiden Parteien aufzuteilen. Der Käufer muss zu Beginn der Transaktion etwas mehr als den vereinbarten Betrag auf das Treuhand-Konto überweisen und kriegt es am Ende der Transaktion wieder.

    Beispiel: Der Käufer will sich von einem Freelancer eine Webseite designen lassen. Das dauert etwa 1 Monat und soll 1000 EUR kosten. Der BTC-Kurs liegt am Anfang des Projekts bei 1BTC = 1000 EUR. Der Käufer soll jetzt erstmal 20% mehr überweisen, also 1.2  BTC. Somit hat der Freelancer die Gewissheit, dass genug Geld auf dem Konto liegt, auch wenn der Kurs innerhalb des Projektlaufzeit um 20%-40% einbrechen sollte. Am Ende des Projekts wird nochmal der aktuelle Kurs geprüft und der Kursgewinn oder -verlust auf beide Parteien aufgeteilt und die übrigen BTC an den Käufer zurück überwiesen.

    (Das kann man zwar schon auch mit coinb.in und bitrated machen, aber da muss man alle Beträge selber ausrechnen. Eine benutzerfreundliche Lösung sollte das automatisieren)

  • API-Support: Das ganze sollte einfach in beliebige Seiten integrierbar sein (Kleinanzeigenportale, Freelancing-Portale, Foren). Über eine API sollte man den Zustand einer Transaktion sehen können (bezahlt, noch nicht bezahlt, abgeschlossen), die Escrow-Adresse sehen können und man sollte einen "Bezahlen"-Knopf auf seine eigene Seite integrieren können, womit der Benutzer auf die Escrow-Seite weitergeleitet wird (ähnlich wie bei Paypal), wo er eine Transaktion einleiten kann, bzw. signieren kann (alles Browserseitig über JavaScript)


legendary
Activity: 2702
Merit: 1261
September 03, 2014, 11:46:19 AM
#8
An den Servern mangelt es nicht. Ich habe ein paar Mietserver, auf denen sowieso schon Full Nodes - ohne Wallet - laufen.

Was die Sache mit bictoin-core etwas aufwändiger macht ist, dass zwar eine UTXO DB vorhanden ist, diese aber nur über einen Transaktionsindex verfügt. Mann müsste nun entweder ein UTXO Address / P2SH Hash Index hinzufügen, oder man erweitert die Wallet um Watch-Only Adressen (ohne Private Key). Für beides gibt es Patches, die aber evtl. nicht mehr aktuell sind. Die Core Entwickler haben gegen beide Lösungen eine Abneigung. Mir gefällt ein optionaler UTXO Address/Hash Index am besten.
legendary
Activity: 1022
Merit: 1004
September 03, 2014, 09:06:36 AM
#7
Das hört sich ja machbar an.. Jetzt wo du dich schon so in den code eingelesen hast, willst du
das nicht vielleicht sauber aufziehen, als fork von outcasts Projekt sozusagen, mit eigener
minimal-API? Es gibt bestimmt jemand der hier eh schon einen Webserver hat und es darauf
hosten würde, und ich denke es würde gerne angenommen wenn man es ein bisschen
promotet hier im Forum Smiley
legendary
Activity: 2702
Merit: 1261
August 31, 2014, 05:59:30 PM
#6
Ich korrigiere mich nochmal, man muss den Quellcode von coinb.in nicht umstellen. Es genügt, wenn man den/die Input(s) von Hand eingibt.

Hier übrigens mal das Protokoll um an die Daten zu kommen:

Der Client macht folgende Anfrage:
Code:
POST /api/ HTTP/1.1
Host: coinb.in
User-Agent: ***DELETED***
Accept: application/xml, text/xml, */*; q=0.01
Accept-Language: de,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 121
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

uid=1&key=12345678901234567890123456789012&setmodule=addresses&request=unspent&address=3...

Der Server spielt im aktuellen Fall nicht mit und antwortet:
Code:
HTTP/1.1 200 OK
Date: Sun, 31 Aug 2014 21:39:01 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With
X-FRAME-OPTIONS: SAMEORIGIN
Content-Length: 151
Connection: close
Content-Type: text/xml



0
This+address+has+no+available+balance+to+spend


Im Prinzip muss man nur den Server ändern und die UTXO im geeigneten XML Format liefern. Ähnliches dann beim Versenden der Transaktion.
legendary
Activity: 2702
Merit: 1261
August 31, 2014, 05:31:51 PM
#5
Das https im code ist leider nur ein Problem. Die API von coinb.in ist unter https gar nicht zu erreichen, d. h. man
bekommt eine Fehlermeldung. Wenn man https durch http ersetzt, dann erreicht man zwar die API, allerdings hat man
dann das neue Problem dass die API von coinb.in nicht richtig funktioniert. Vor allem scheint sie falsche Balances
zurückzuliefern (immer 0)..

Wenn man den Quellcode auf HTTP umstellt und die Inputs für die Transaktion manuell eingibt, funktioniert es! Ich habe Dir per PN eine Transaktion geschickt (bitte verifizieren und nicht ungeprüft benutzen!). Das Signieren geht dann auch mit dem ungepatchten Code, da dieser kein Internet benötigt.

Im Moment ist OutCasts Script aus meiner Sicht nicht zu empfehlen, vor allem auch da er sich zu den Problemen
nicht äussert, vielleicht hat er das Projekt ganz hingeschmissen..?

edit: Um die coinb.in API zu ersetzen, muss man mal schauen was sie genau macht. Ich habe das nirgends dokumentiert
gesehen, und outcast hat irgendwo geschrieben, dass sie nicht open-source sei aber irgendwann werden soll (was auch
immer das bedeutet)..

Das meiste wird im Javascript Code erledigt. Die Ajax API ist recht schmal und sollte sich einfach umsetzen lassen. Im Prinzip benötigt der Code nur eine UTXO Liste beim Generieren der Transaktion (reine Bequemlichkeit) und einen Zugang um am Ende die vollständig signierte Transaktion ins Bitcoin Netzwerk zu senden. Der Rest ist da und funktioniert auch ohne coinb.in.
hero member
Activity: 665
Merit: 521
August 31, 2014, 10:07:28 AM
#4
Ich finde außerdem https://www.bitrated.com/ ziemlich Benutzerfreundlich. Das einzige Problem, das ich damit habe, ist dass beide Parteien gleichzeitig online sein müssen, um den Escrow zu initialisieren. Wenn jemand eine Idee hat, wie man das anders machen kann, wäre das cool.

Der Quellcode findet sich hier: https://github.com/shesek/bitrated
legendary
Activity: 1022
Merit: 1004
August 31, 2014, 08:19:36 AM
#3
Das https im code ist leider nur ein Problem. Die API von coinb.in ist unter https gar nicht zu erreichen, d. h. man
bekommt eine Fehlermeldung. Wenn man https durch http ersetzt, dann erreicht man zwar die API, allerdings hat man
dann das neue Problem dass die API von coinb.in nicht richtig funktioniert. Vor allem scheint sie falsche Balances
zurückzuliefern (immer 0)..

Im Moment ist OutCasts Script aus meiner Sicht nicht zu empfehlen, vor allem auch da er sich zu den Problemen
nicht äussert, vielleicht hat er das Projekt ganz hingeschmissen..?

edit: Um die coinb.in API zu ersetzen, muss man mal schauen was sie genau macht. Ich habe das nirgends dokumentiert
gesehen, und outcast hat irgendwo geschrieben, dass sie nicht open-source sei aber irgendwann werden soll (was auch
immer das bedeutet)..
legendary
Activity: 2702
Merit: 1261
August 31, 2014, 05:01:32 AM
#2
Als Ausgangsbasis könnte man https://github.com/OutCast3k/bitcoin-multisig nutzen. Man muss dann erst mal "nur" noch die Anbindung an einen Bitcoin Knoten anpassen und hätte damit schon eine erste lauffähige Lösung.

Im Augenblick geht leider ein Teil (hart im Code) an https://coinb.in/api/ (vermutlich das aktuelle Problem!) und an http://www.blockchain.info/. Diese API sollte man mit dem eigenen Server erfüllen, damit man die Abhängigkeit von Dritten erst mal wegbekommt. Eine funktionierende Lösung ist der erste Schritt zu einer benutzerfreundlichen Lösung.
sr. member
Activity: 330
Merit: 250
August 30, 2014, 05:12:02 PM
#1
Hallo,

hätte jemand Interesse mit mir einen User freundlichen und sicheren Multisig Escrow aufzubauen?
Oder gibt es sowas schon? Cheesy
Jump to: