Search content
Sort by

Showing 14 of 14 results by kaii
Post
Topic
Board Meta
Re: Suggestions for the forum
by
kaii
on 21/08/2012, 15:38:18 UTC
What i want to suggest is a implementation of some kind of measure to make sure that everybody who is participating in the market section has at least a basic understanding of how scams, pumpndump und ponies work and how to identify them. I thought about some sort of quiz.

In my short time on this forum I've already come across many posts that warn of the dangers of fraud in the Bitcoin market.

The Newbies board contains stickies such as Trust No One and Better protect yourself from having your account/accounts compromised.
The Service Discussion board is about the merits of various services available for Bitcoin, including ones that people believe are scams.
The Important Announcements board contains good information when there are serious changes in the market.

I also want to suggest to better categorize the market section in different trust levels. So inexperienced users could better identify fishy services and offers.

Bitcoin, even at its core technical levels, is about only trusting oneself. The algorithms do the heavy lifting of keeping nodes honest. You are responsible for verifying that those algorithms work as intended. You are responsible for storing your private keys safely. You are responsible for not making transactions that you will regret.

Asking people to fall back on "safe" versus "unsafe" market sections is undermining their own capability to make judgement calls, which is a necessary skill to participate in the Bitcoin community. It also puts the board at risk if somebody does get scammed in a "safe" section.
Post
Topic
Board Development & Technical Discussion
Re: First simple factorization solved by quantum computing
by
kaii
on 21/08/2012, 15:05:43 UTC
Could Shor's algorithm be applied to crack ECDSA?  I'm not sure.

Yep, Shor's Algorithm can be applied to elliptic curve cryptography. I'm not sure if this applies specifically to the variant that Bitcoin uses however.

http://arxiv.org/abs/quant-ph/0301141
http://www.mathcs.richmond.edu/~jad/summerwork/ellipticcurvequantum.pdf

And more...

https://www.google.com/search?q=shor's+algorithm+elliptic+curve

This has been discussed in the past on this forum as well.

https://bitcointalk.org/index.php?topic=54542.0
Post
Topic
Board Electrum
Re: Electrum for Android
by
kaii
on 20/08/2012, 20:36:28 UTC
I'm aware of that. Problem is that if you look at the QR-url source here you can see the correct path. Somehow the site is not updating it.

I guess it just took time -- it's all working for me now. e4a_install.py and the e4a zip file are both accessible. The QR code for the Python script is also updated. Thanks!
Post
Topic
Board Electrum
Re: Electrum for Android
by
kaii
on 20/08/2012, 15:40:15 UTC
actually, the original script downloaded http://ecdsa.org/electrum/e4a (which was a full path, e4a was the filename) and saved it as e4a-0.52.zip
I did this because something (my mobile network operator?) prevented me from downloading a file with .zip extension from a telephone

Ah, I mistakenly assumed that the urlretrieve function was just performing a concatenation. This makes more sense.

URL updated and scripts added. I can't confirm it to work on my own phone because SL4A freezes when I try to run the script (even on the old location). So please let me know if you have more luck.

Still not working for me.
Post
Topic
Board Electrum
Re: Electrum for Android
by
kaii
on 20/08/2012, 13:07:42 UTC
I get a 404 error when accessing e4a_install.py on my desktop. My phone is able to download it through the QR code, but the Python script tries to download the the file http://ecdsa.org/electrum/e4a/e4a-0.52.zip which also doesn't exist.
Post
Topic
Board Development & Technical Discussion
Re: Bitaddress.org brain wallet & Electrum
by
kaii
on 20/08/2012, 04:47:51 UTC
I am reading through both of these code bases for the first time. What I have written here is just my take on what's going on.

Does bitaddress.org use the same method to create a brain wallet as electrum

They do not use the same method to generate private keys from a seed.

bitaddress.org -- https://github.com/pointbiz/bitaddress.org/blob/master/bitaddress.org.html#L3724
Electrum -- https://github.com/spesmilo/electrum/blob/master/lib/wallet.py#L272

With bitaddress.org, the seed that you enter is run through SHA256 to generate the private key.

Code:
var bytes = Crypto.SHA256(key, { asBytes: true });
var btcKey = new Bitcoin.ECKey(bytes);

In contrast, Electrum uses a random number generator to pick a seed for you.

Code:
seed = "%032x"%ecdsa.util.randrange( pow(2,128) )

The seed then goes through 100,000 rounds of SHA256 concatenated with itself to generate the private key.

Code:
oldseed = seed
for i in range(100000):
    seed = hashlib.sha256(seed + oldseed).digest()

Does anyone know how electrum does it?

Electrum generates multiple addresses from a single seed by concatenating the previous private key with a double SHA256 hash of the sequence number of the address being generated.

Code:
secexp = ( secexp + self.get_sequence(n,for_change) ) % order

Code:
def get_sequence(self,n,for_change):
    return string_to_number( Hash( "%d:%d:"%(n,for_change) + self.master_public_key ) )

Code:
def Hash(data):
    return hashlib.sha256(hashlib.sha256(data).digest()).digest()

  • secexp is the secret exponent, i.e., the private key
  • n is the sequence number of the address (1, 2, 3, etc.) being generated
  • for_change is a 1 or 0 value that indicates whether or not this is a change address
  • order is the number of discrete points on the elliptic curve, and modding keeps the private key in range
  • As far as I can tell from the code, self.master_public_key will always be an empty string

Does anyone see a problem with the above scheme?

I'm not a cryptography expert so I can't say anything definitively. Given that bitaddress.org only uses one SHA256 pass to encrypt the passphrase, I'd say there's a good chance that it's a bad idea just to append a number to the seed.

You may want to do something like what Electrum does -- concatenate the private key of the previous address with a hash based on the sequence number (e.g. SHA256 the string '2' for the second address) and mod the result by the maximum value for the private key.
Post
Topic
Board Beginners & Help
Re: Whitelist Requests (Want out of here?)
by
kaii
on 19/08/2012, 23:07:41 UTC
I read the Electrum source code with the intention of helping robkohr in the following thread, foolishly forgetting my newbie restrictions.

https://bitcointalk.org/index.php?topic=101733.0

I figured I'd post here to speed things up although I'll gain whitelist soon enough by waiting.
Post
Topic
Board Beginners & Help
Re: Why do you have to download the whole history since genesis?
by
kaii
on 19/08/2012, 22:45:45 UTC
Ohh alright that makes a lot of sense now. I would assume the server downloads the blockchain and notifies the client of the transaction etc?

Yes, in clients like Electrum, the server has the entire blockchain and uses it to keep the client updated.
Post
Topic
Board Beginners & Help
Re: Why do you have to download the whole history since genesis?
by
kaii
on 19/08/2012, 22:20:44 UTC
Just out of curiosity, if you haven't logged on your BTC client 3 months in and received a payment a week after you stopped using the client.
Wouldn't it be possible that if we didnt download the full blockchain the client's wallet wouldnt be updated properly?

To calculate wallet balances, the client just needs to know of any transactions where one of its addresses is an in/out of a transaction. In a client that downloads the entire blockchain, the balance is updated when the blockchain update reaches a relevant transaction. If the client relies on a server (like Electrum) then it would be easy for the server to send the right data when you open the wallet.
Post
Topic
Board Beginners & Help
Re: HOW DID YOU FIND OUT ABOUT BTC
by
kaii
on 19/08/2012, 22:07:40 UTC
I was investigating ways to stay anonymous on the internet and bitcoin invariably comes up as a solution.
Post
Topic
Board Beginners & Help
Re: Introduce yourself :)
by
kaii
on 19/08/2012, 21:51:51 UTC
Welcome! Done any work with Torque?

Yes, I used Torque in college for one of my game programming classes. It was a bit clunky; I wouldn't want to make an entire game with it. Especially now that Unity has taken the high ground in 3d games.
Post
Topic
Board Beginners & Help
Re: Why do you have to download the whole history since genesis?
by
kaii
on 19/08/2012, 21:34:53 UTC
Here is a relevant article on the Bitcoin wiki about clients that don't download the entire blockchain (i.e. thin clients).

https://en.bitcoin.it/wiki/Thin_Client_Security

There are added security risks because there is no way for a thin client to verify a transaction independently of contacting other nodes or servers. This makes thin clients susceptible to a greater variety of attacks, especially on untrusted networks.
Post
Topic
Board Beginners & Help
Re: Why do you trust bitcoin in one sentence.
by
kaii
on 19/08/2012, 19:16:51 UTC
I carefully read Satoshi Nakamoto's paper and understand the security guarantees of the algorithms involved.
Post
Topic
Board Beginners & Help
Re: Introduce yourself :)
by
kaii
on 19/08/2012, 19:10:21 UTC
Hey all! I am a game programmer who first took an interest in Bitcoin because of its algorithms. I couldn't imagine how an anonymous crypto-currency would work, so I spent days studying the algorithms for transactions and the blockchain. I became convinced not only that Bitcoin has a solid foundation but that it is an ingenious and interesting idea. I wouldn't put my life savings into Bitcoins yet, but I'm excited to see where the currency goes!

Lately I have been considering taking a more active interest in the community. I would like to get a sense of how people feel about Bitcoin and what they are using it for. My continued interest will probably lead me to contribute by helping develop open-source Bitcoin-related projects and possibly operating Bitcoin-related services.

See you around!