Show HN: A Browser-based Blockchain(nimiq.com)
nimiq.com
Show HN: A Browser-based Blockchain
https://nimiq.com/betanet
148 comments
I agree that our technical documentation is not strong and well presented yet.
Have you read this?
https://medium.com/nimiq-network/introducing-the-browser-bas...
> Partner with VISA payment services to create a VISA-to-Nimiq exchange (centralized in the first place).
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.
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.
Yeah I gave it a look. It is really light on details. I think you have to be clear why this is better than Ethereum, the fact that web browsers are nodes and are mining isn't really a feature. Having every node mine isn't very useful either, it is unlikely to increase the security of the network and has follow on effects for memory and cpu utilization for end users.
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.
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.
So far looks sweet, I have a small bit of advice.
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'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.
Well, it is not good to do Proof-of-Work in the browser. It's inefficient and people will not keep mining if they have very small chances of getting a block.
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 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.
That is our mission exactly. We are starting with the community that actually has a more in-depth understanding for peer review.
I have a soft spot for removing barriers and making things accessible so this really resonates with me. With a single click of a button I'm connected to the network and have started mining. Pretty awesome!
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.
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.
"demystify blockchain technology" is a perfect description for our intention! thanks!
If this is an educational product then it would be even better to expose more details to the user. For example, the fundamental steps illustrated in the Blockchain Demo (https://anders.com/blockchain/). A nimiq blockchain explorer would also be a nice feature.
A blockchain viewer (showing most recent blocks) is in the works for the Betanet and should go live soon. Full chain explorer will follow for the feature-complete Testnet.
Left this running all day at about 30kh/s and got 200 coins
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.
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.
Thanks a lot for your feedback!
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".
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".
Interestingly, I'm getting a significantly higher hash rate in Chrome than in Firefox (12,000 vs. 600). This is despite the fact that Firefox has a higher priority on my OS (High vs. Normal) and they're both using the same amount of CPU.
What hash rates are you seeing on your machine/browser?
What hash rates are you seeing on your machine/browser?
Firefox is probably slower because it uses the javascript implementation of the hashing algorithm:
https://github.com/nimiq-network/core/blob/master/src/main/p...
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...
https://github.com/nimiq-network/core/blob/master/src/main/p...
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...
I was getting ~4KH/sec then I've done some tuning and got to 20KH/sec with Chrome.
I plugged in the power cord, changed from Balanced performance to High performance option.
Also enabled GPU for use with Chrome instead of integrated graphics.
"At your current hashrate you can expect to mine 50 Nimiqs every 2.3 hours"
I think it's a WebRTC problem. Chrome has no errors, but Firefox has:
> ICE failed, add a TURN server and see about:webrtc for more details
> ICE failed, add a TURN server and see about:webrtc for more details
This is related to your local network. You will only be able to use Websockets for connections (which most nodes do not support) and not WebRTC. Go and fix your network, you likely have some UDP or NAT configuration issue (or a terrible ISP).
Yet WebRTC works for Chrome for the same device on the same network connection?
Worse here, with chromium I can get 20kH/s vs 200H/s on Firefox.
Oh dear, 216 hash/sec on OSX Safari on a year old Macbook Pro.
Safari Technology Preview (r31) on MBP gets me 8kH/s
(Chrome on the same machine gets 12kH/s)
(Chrome on the same machine gets 12kH/s)
Huh. I fired up a Chrome instance alongside and got 8kH/s; Safari still chugging away at 2-300H/s.
11.24 kH/s - dell n5110 / chrome / win7
Linux chrome on a 4 year old thinkpad 10 kh/s
Chrome on the latest MBP, 13 kH/s
yes Firefox is way slower in general.
On a Macbook with Chrome I get about 12 kH/s
5-6k i3/win10/opera
OSX Chrome 10kH/s
5.07 kH/s
Before anyone gets too excited because the page doenst make this clear, you are all mining on the Test block chain, not the release block chain, the coins are worthless, they are fine for playing around with though.
There is a disclaimer under the "Connect to Network" button stating "Testnet Mining does not create permanent Nimiqs."
Do you think this we should make that more prominent?
I dont think it matters, just saying its easy to click through without seeing it, some people might leave it open thinking they are mining for real.
What's preventing people from simply continuing to use this testnet? It's decentralized, after all.
I think the disclaimer was pretty obvious with this.
I agree the disclaimer is obvious but its not obvious there is a disclaimer.
[deleted]
Ok, you have a roadmap, but I'm left with more questions than answers, e.g.: if a blockchain relies on every node having a ledger of the whole transactions, and bitcoin's ledger now occupies more than 100GB, then how is this supposed to work when the ledger becomes big?
Also, how do the 'instant' transactions work?
Also, how do the 'instant' transactions work?
it uses the Mini Blockchain scheme https://cryptonite.info/files/mbc-scheme-rev3.pdf
You only need the full blockchain to initially verify the proof of work chain, you can then run in pruning mode which requires having the latest blocks and unspent outputs.
I like how it starts you up instantly and how simple mining, helping the network and transactions seem to be. Really well done. I found a quick block too and sending/receiving transactions and getting the confirmations seems nice and fast. As a user it makes me pretty happy.
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?
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?
I like the idea of reducing the barrier to entry in the multitude of markets, but I'm also a bit cynical in that any web-based wallet seems extremely risky to me in terms of the potential for attacks and stolen coins.
[deleted]
This seems really interesting! For someone without too much knowledge about blockchain and digital currencies: How does this compare to Bitcoin and Ethereum?
It is written in Javascript, communicates over WebRTC + WebSockets and therefore you can connect to the network from your browser without an intermediary.
Additionally it is designed for light-clients (such as low-end devices) and transaction speed.
How does this compare to BTC with regards to privacy?
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.
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 ask here if you need some test coins. I already mined a first block.
Can you please use a different platform to perform this instead of polluting this comment thread?
Just started mining, looks neat! Would love some coins as well: 290B39E31298A1EB5C6F53596E8015CA372869CC
Thanks!
Thanks!
If you're still offering, I'd love to test it out.
6ED123AD11CC9DFF874ED0622562F205957561C6
6ED123AD11CC9DFF874ED0622562F205957561C6
May I have some at 3E170D763D985E557D9A07CCAB9BF99CBC3D8C47 ? Just started mining.
13.37 sent from 0F25D122922E466F6A412DD0DC5E092DF13FF037
Hey, still on time? I think is an awesome implementation!
BF09BC3C46E808332F102B69FE585074AFEDF980
BF09BC3C46E808332F102B69FE585074AFEDF980
Thaaanks! You made my day :D
I've sent you 20
Interesting project! 4D46BD3FF956715279F0F614DB54D4D2D78CD1B0 many thanks!
1E883119EF2B74EA2B225F9E74CBF17612BE3105
Just trying this out, but needs dem coins :O
Just trying this out, but needs dem coins :O
2.42 sent
I've got some extra coins, I'm willing to trade pencils.
BB866C127626A893F2AF4E5C829757C0C567F3A2 - Send me some for testing
I've just sent you 5
Got it. Thanks man. What can I do with these?
Nothing - it's a test chain and the coins can disappear at any time.
B362F9CDE89E7214A8F446E20AE5598A30411B10 .... thanks!
Attempting sending now. https://i.imgur.com/LaAd93C.png
[deleted]
Thanks! 4CE8DC8FECE59D7B4368DAE47925BBA34339461B
Got another block, reply and I'll send
82BBE749262A07DF89E0045AF12929C31259374B
65327F379B46603EB49B8F2D3B399F909E828E08
FAF349AA5FC5401F5D363546B679E800958300BF
D6C7D83CF1754FA5565DD43D63A3B50C5809F395
D2A9396559858F674C13D96FB18ED8825EF6EF9C
Mined 50 as well, reply with addresses :)
682465027FB9EEA2FF887A9898723BC791AC3F68
295AD9F3C2F4371D0B86E235B3618D06482949B6
EF2D17124CF07DAA182017509BEAA73D964E8D18
[deleted](1)
Kindly send some here:
295AD9F3C2F4371D0B86E235B3618D06482949B6
This is incredibly easy to get up and running with.
This is incredibly easy to get up and running with.
Neat!
9D31E45488033A8CFE0B371A7E6CBFA4A090204B
Thanks!
9D31E45488033A8CFE0B371A7E6CBFA4A090204B
Thanks!
Is it possible/easy to compile stellar-core to the browser? If we could do it and use the networking module/part of this Nimiq it would be awesome.
Where is their office? Looks like they're all working out of some beach house somewhere in the South Pacific.
in Santa Teresa Costa Rica
Okay, looks like this place: http://www.skyloftcostarica.com/. Wonder if that's full time or just a field trip.
There you get an insight how hard they work on this project https://www.youtube.com/watch?v=MOgOWWVinfY&list=PLuhSf5DE3F...
I love Santa Teresa, Pura Vida!
Lets get this out of the way now: what are the block size rules as transaction numbers increase?
The Mini Blockchain Scheme is being implemented and should be coming into effect later this week: https://cryptonite.info/files/mbc-scheme-rev3.pdf
Network bandwidth just doubled. Don't think my thinkpad is going to mine any.
That's pretty cool. Will you also make a native miner?
Why another cryptocurrency? I can't keep track!!
Because this one is built with one thing in mind: making it so simple that your mom can use it. Even the combined market cap of all Cryptocurrencies to date still only represents a small fraction of our financial transactions and monetary system (http://virtualrealitytimes.com/2017/05/30/chart-bitcoin-vers...). This is far from mainstream by any means. Nimiqs browser-based approach and clear focus on ease of use brings blockchain technology to everyone, everyday.
Is the betanet app code available somewhere?
Top right of the page is a github link
The miner repo was empty and now has been removed, the core repo doesn't contain this app.
https://github.com/nimiq-network/core/blob/master/clients/br...
Is this not it, I havent tried it.
Is this not it, I havent tried it.
I thought general opinion from security experts was browser based crypto is DOA...
There's nothing inherently wrong with browser-based crypto. Most issues arise when you try to e.g. replace like TLS with JavaScript to encrypt passwords before sending them to a server. SHA256 doesn't become broken simply because it's run in a browser.
[deleted]
This is good until the ASICS come in force and make mining in the browser useless.
This is the Betanet. We will not use sha256 as in our Mainnet. We are already working on a WebAssembly implementation of a memory hard ASIC resistant POW.
Thanks, but while ASICs may not be a threat, in general finely tuned beefy machines might be? So that running this in a browser would be as efficient as mining litecoin in a browser?
17% CPU utilization when mining. You need to multithread that.
Or better yet, implement it in a WebGL shader.
Or better yet, implement it in a WebGL shader.
Looks like they've already added GPU mining as a MainNet milestone. (https://github.com/nimiq-network/core/issues/39)
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.