Bitcoin Forum
April 20, 2024, 06:00:39 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Warning: One or more bitcointalk.org users have reported that they strongly believe that the creator of this topic is a scammer. (Login to see the detailed trust ratings.) While the bitcointalk.org administration does not verify such claims, you should proceed with extreme caution.
Pages: [1]
  Print  
Author Topic: [HIRING] JavaScript programmer for small project -- place your bids!!  (Read 902 times)
Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
May 26, 2015, 09:31:27 PM
Last edit: May 30, 2015, 06:50:57 PM by Peter R
 #1

I'm accepting bids to create a webpage that allows users to digitally sign or verify files with a bitcoin private key, as shown below.  Everything should occur client side.  Most of the code required is already open source and used at http://www.proofofexistence.com/ and https://brainwallet.org/#sign.  If you are interested in doing this work (just the coding--no hosting/management required), then place your fixed-price bid in this thread.  Dealing gracefully with invalid inputs is expected.  

1.  I want one tab on the page that allows a user to select a file, paste a private key, and then produce the digital signature (all done client side):



2. And I want another tab on the same page to allow a user to verify a signature:



If you place a bid and I accept, then I expect to see meaningful progress within 1 week.  

I reserve the right to not select any bid, if none are satisfactory to me.  I am willing to escrow the funds with a forum member who I trust.  

*EDIT: format for the signatures has been clarified in this post two below.  

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
1713592839
Hero Member
*
Offline Offline

Posts: 1713592839

View Profile Personal Message (Offline)

Ignore
1713592839
Reply with quote  #2

1713592839
Report to moderator
1713592839
Hero Member
*
Offline Offline

Posts: 1713592839

View Profile Personal Message (Offline)

Ignore
1713592839
Reply with quote  #2

1713592839
Report to moderator
"You Asked For Change, We Gave You Coins" -- casascius
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713592839
Hero Member
*
Offline Offline

Posts: 1713592839

View Profile Personal Message (Offline)

Ignore
1713592839
Reply with quote  #2

1713592839
Report to moderator
thezerg
Legendary
*
Offline Offline

Activity: 1246
Merit: 1010


View Profile
May 27, 2015, 01:32:48 AM
 #2

The first site (http://www.proofofexistence.com/) does a digital "fingerprint" (SHA256) of the document and then puts that on the blockchain -- so it does not do a digital signature.

If you look at the second site closely (https://brainwallet.org/#sign), you'll see that it is capable of "signing" the document using a variety of different flavors.  This is because the actual digital signature algorithm can be different.  Do you want a particular algorithm (which might be trickier because the engineer would need to research it, and do interoperability testing) or do you just need your own digital signature algorithm (only works in your web site in the 2 tabs you described).

Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
May 27, 2015, 02:40:24 AM
Last edit: May 27, 2015, 03:00:34 AM by Peter R
 #3

The first site (http://www.proofofexistence.com/) does a digital "fingerprint" (SHA256) of the document and then puts that on the blockchain -- so it does not do a digital signature.

Yes, I want to hash the document and then just sign it (i.e., no writing to the blockchain).  My note in the image just meant that the code to drag and drop the file, and then hash it, was available from proofofexistence.com.  Sorry for the confusion. 

Quote
If you look at the second site closely (https://brainwallet.org/#sign), you'll see that it is capable of "signing" the document using a variety of different flavors.  This is because the actual digital signature algorithm can be different.  Do you want a particular algorithm (which might be trickier because the engineer would need to research it, and do interoperability testing) or do you just need your own digital signature algorithm (only works in your web site in the 2 tabs you described).

Thanks for the clarification.  I was originally going to accept what I got as long as it was consistent between the two tabs, but since you asked Smiley ...

...ideally, I think it would be most useful to extend the "bitcoin signed message" format to arbitrary files.  The idea being that if you uploaded a plain text file, the signature the page returned would be the same as if you generated a standard bitcoin signed message using the file's contents as a string.  

My understanding, then, is that we'd append the bytes:

Code:
"\x18Bitcoin Signed Message:\n"

to the file, and hash the result with SHA256 to get a 32-byte digest.  We'd hash this digest again using SHA256, and then sign that digest with the specified private key.  

As for the encoding of the signature, I'd like it expressed in B64 in the format used by pybtctool, blockchain.info and I believe multibit and bitcoin-qt.  This means that whether the pubkey is compressed or uncompressed must be indicated by the first byte of the signature, as I learned here.

I think the code at brainwallet.org already takes these details into account so I think it's just a matter of copying the correct code.  

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
May 27, 2015, 01:12:42 PM
 #4

Bump.

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
thezerg
Legendary
*
Offline Offline

Activity: 1246
Merit: 1010


View Profile
May 28, 2015, 12:59:31 PM
 #5

so you basically want the exact brainwallet.org code to simply be isolated out of brainwallet so you can use it?

Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
May 28, 2015, 04:48:20 PM
Last edit: May 28, 2015, 05:08:23 PM by Peter R
 #6

so you basically want the exact brainwallet.org code to simply be isolated out of brainwallet so you can use it?

Yes, I want that, and more as well.  Brainwallet only allows you to sign a text string.  I want to be able to sign an arbitrary file.  And I want the "finished product" to be a webpage that looks similar to the images in the OP and that can be run entirely client side (i.e., I should be able to open your webpage from a USB stick offline and it should work).  
  
  - isolate sign/verify code from brainwallet
  - modify to allow signing/verifying of arbitrary files
  - create a webpage that looks like the screen shots I posted in the OP
  - it is important that the drag&drop functionality from proofofexistence be used for file selection

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
thezerg
Legendary
*
Offline Offline

Activity: 1246
Merit: 1010


View Profile
June 01, 2015, 11:41:15 PM
Last edit: June 02, 2015, 10:44:51 AM by thezerg
 #7

Ok I'll bid 5 BTC

EDIT: I'll match 3.9 although I'm guessing that's a bit under my hourly
BinaryMage
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500


Ad astra.


View Profile
June 02, 2015, 12:33:15 AM
 #8

This seems fairly well-specified already, but just to confirm:

- 2 simple HTML pages as portrayed in the OP, allowing drag-and-drop file selection (along with traditional menu-based selection), text input of private key or received signature (with an option to generate a new private key), and finally display of the signature or signee address (if valid) respectively.
- JS code performing the following functionality:
  1. Accept an arbitrary file.
  2. Append the characters "\x18Bitcoin Signed Message:\n".
  3. Twice SHA256-hash the resulting data and then sign the digest with the provided/generated private key.
  4. Display the signature encoded in Base64.
  5. Verify signatures created in this format, using this page, calculating the signee address for a valid signature.

Note that there will probably be practical filesize limits due to speed.

For that I bid 4 BTC, escrowed through anyone reasonable.

-- BinaryMage -- | OTC | PGP
Ditto
Sr. Member
****
Offline Offline

Activity: 330
Merit: 250


View Profile
June 02, 2015, 02:11:31 AM
 #9

Bidding 3.9 BTC here
luigi1111
Legendary
*
Offline Offline

Activity: 1105
Merit: 1000



View Profile
June 02, 2015, 03:18:48 PM
Last edit: June 06, 2015, 01:01:25 AM by luigi1111
 #10

So, it's not very pretty, or even exactly what you wanted, but whatever.

Specifically:
Quote
The idea being that if you uploaded a plain text file, the signature the page returned would be the same as if you generated a standard bitcoin signed message using the file's contents as a string.

isn't there, rather it's more like a triple SHA256 hash as it's using the code from http://proofofexistence.com/ for the file hashing.

Here it is anyway: http://btc.llcoins.net/temp/sign-file.html

Can provide a zip if anyone actually wants it.

Edit: forgot about the random Private Key option. Added it on load.
Edit2: changed bootstrap version.
Edit3: improved verification error handling (I think)
Edit4: streamlined verification & added pubkey
Edit5: added newkey option and streamlined signing a bit
Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
June 06, 2015, 12:37:39 AM
Last edit: June 06, 2015, 12:59:43 AM by Peter R
 #11

Sorry for the delay in responding to the most recent bids.  I've was travelling and then attending a conference, and have had little time to respond to messages the past few days [and it seems the "watch/notify" feature here only works intermittently].    

I received bids as low as 0.35 BTC to as high as 5 BTC.  The project has been awarded to u/lhuddy from Reddit (r/jobs4bitcoins) for $250 US.  Thank you to everyone for your interest!!  

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
luigi1111
Legendary
*
Offline Offline

Activity: 1105
Merit: 1000



View Profile
June 06, 2015, 01:01:40 AM
 #12

Was a fun experience anyway. Good luck.  Smiley
Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
June 06, 2015, 01:25:33 AM
Last edit: June 06, 2015, 01:43:12 AM by Peter R
 #13

Was a fun experience anyway. Good luck.  Smiley

Looking more into the webpage you produced, I actually think your signature scheme makes more sense than my own.  It is advantageous because:

1.  The user signs the text version of the file hash after seeing its value, and so the user can easily verify using other tools that their file indeed has the indicated hash.

2.  The user signs the file hash as plain text with a bitcoin-signed message; the user can easily verify using another tool that the bitcoin-signed message is correct.  

I sent you a PM hoping that I can compensate you for this work and idea in some small way.  

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
luigi1111
Legendary
*
Offline Offline

Activity: 1105
Merit: 1000



View Profile
June 06, 2015, 03:43:41 AM
 #14

Was a fun experience anyway. Good luck.  Smiley

Looking more into the webpage you produced, I actually think your signature scheme makes more sense than my own.  It is advantageous because:

1.  The user signs the text version of the file hash after seeing its value, and so the user can easily verify using other tools that their file indeed has the indicated hash.

2.  The user signs the file hash as plain text with a bitcoin-signed message; the user can easily verify using another tool that the bitcoin-signed message is correct.  

I sent you a PM hoping that I can compensate you for this work and idea in some small way.  

To anyone who may read this thread: Peter R is a genuine, nice guy. He owed me nothing - I didn't even quote this job - yet he gave me a nice BTC tip for my efforts.

Thanks again, Peter.
Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
June 09, 2015, 06:37:24 PM
Last edit: June 16, 2015, 02:01:56 AM by Peter R
 #15

This project has now been completed by u/lhuddy.  I was happy with his work and posted a testimonial here:

http://www.reddit.com/r/testimonials/comments/39704e/pos_ulhuddyjavascript_bitcoin_project/

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!