Also, your proof of work is Sha256 which means that the moment this thing goes live and there is any value attached it won't work. You have to switch to a memory hard proof of work to even begin doing this.
Finally, most of what you are trying to accomplish can already be done using SPV onto existing digital currency networks. Pushing the entire network into the browser doesn't really help. The cynic in me wants to say this is an ICO pump for people who don't know any better.
By Q4 2017? This sounds outrageous, if not impossible. This also seems to contradict your comment that "'demystify blockchain technology'" is a perfect description for our intention!" Your intention seems to be to build a mainstream, browser-based cryptocurrency. Good luck.
Anyway, I'll look forward to hearing more about it, but given the high barrier to writing a secure, scalable blockchain I'm reserving judgement until there is enough information to do a more formal analysis.
I'd double down on the simplicity aspect - for a lot of people cryptocurrency is a weird thing to get into and hard to understand. You guys have taken something as ultra-complex as mining and blockchain and stuck it in the browser, no small task. Make your focus a cryptocurrency for everyone - include demos of how cryptocurrency itself works.
I don't know how this could be solved, maybe you should experiment with other forms of ledger consensus that would fit better in a browser environment and at the same would not exclude normal people from participating in benefit of specialized miners.
The network part of this thing is amazing by itself.
I also love how the P2P is visualized in a straight-forward way. I definitely think this will help demystify blockchain technology. You immediately realize that you're part of a decentralized network and that blockchain nodes are nothing else than other nodes like you.
Couple of hints:
* Have a way of backing up your private keys! Many people delete browser local storage and this is not a safe or long term place for them to live!
NAG THE USER TO DO THIS. 99% of the people here betanet will lose their keys, fo sure
* Consider hierarchical deterministic (HD) generated keys, so a single seed can generate all future keys
* Consider brainwallet seed (must be long, suggest at least 256 bits entropy), custom dictionary words
Most cryptocurrencies use secp256k1 or ed25519 for ecdsa/xeddsa as their curve, this is using P-256.
Satoshi was suspicious of the NIST curves, thats why he didn't use P-256 for bitcoin.
You will need something better than SHA256 for PoW function too, others have identified memory hard hash as idea. Look at Momentum (ProtoShares), EtHash (Ethereum) and CryptoNight (Bytecoin/Monero) as approaches to this. All have rolled their own in this space, keep you tx hashes standard but use something creative for PoW function.
The protocol we've deployed in our Betanet is not final. The Betanet is just about getting early community feedback and testing in the wild. There will be lots of breaking changes.
We will not use NIST curves in our mainnet for the reasons you mentioned. We are working on an implementation of ed25519 in WebAssembly.
We will not use sha256 as in our mainnet. We are already working on a WebAssembly implementation of a memory hard POW.
We want to bring blockchain technology to the masses. So in the long run we are explicitly targeting users who are not yet familiar with cryptocurrencies.
Following from that we will put a lot of effort in creating user interfaces that take users by the hand and explain important aspects like "How to keep your private key secure".
What hash rates are you seeing on your machine/browser?
Chrome implements the WebCrypto API https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_...
I think it uses this interface: https://cs.chromium.org/chromium/src/third_party/WebKit/Sour...
> ICE failed, add a TURN server and see about:webrtc for more details
(Chrome on the same machine gets 12kH/s)
Also, how do the 'instant' transactions work?
However, turning your coins 'permanent' somehow doesn't seem nearly as intuitive. I have no real idea how these coins are now tied to me. I found my block on chrome, and launching the site in incognito mode / firefox doesn't show the funds in my wallet. This would make me worry about deleting my browser history/cookies/etc and I'd have no idea how to access these coins on another computer. How do I go about making these coins tied to me beyond some form of browser storage, and why isn't that process explained somewhere? Right now it feels like a mild breeze might erase my wallet and the coins in it. Is this something that'll be dealt with in the future?
My thoughts: most regular users don't really care about privacy at the level that BTC promises. If people really cared that much about privacy, then social media platforms like FB wouldn't be where most people are today.
Combine what I've said above with the easy on-boarding facility that Nimiq provides and I think this solution carries the day. This might be the 'style' with which most first time cryptocurrency users (emphasis on miners) get started with cryptocurrency. With mass adoption, computing and securing the network might be easier (read cheaper) than is the case with BTC as it stands.
I really like what you've done.
Just trying this out, but needs dem coins :O
Would love to be in the cool kids club
This is incredibly easy to get up and running with.
Is this not it, I havent tried it.
Or better yet, implement it in a WebGL shader.