Finally got around to reading this and thought it deserved a post
2017-10-19 Stealth, Ledger Nano S, graphenej, mobile wallets, Point Of Sale systems... The Agorise Report
So, what are some of the things that we're building right now?
Stealth transactions on the Bitshares platformWhat's done:A functional prototype UI/UX for initiating Blinded/Stealth transactions, for managing Stealth accounts and contacts, and for monitoring and receiving Stealth balances.
A transaction back-end for constructing and broadcasting Public2Blind, Blind2Blind, and Blind2Public transfers out to the network.
The beginning of a ZKP (zero-knowledge proofs) library that extends the secp256k1 library, implemented in Javascript. This has been previously done in the C++ sources (ie: in the CLI wallet), but no complete ZKP library yet exists in Javascript suitable for use in the UI wallet. Completed components thus far include Pedersen commitments and “blind sum” calculations.
What works:All transaction directions (P2B, B2B, B2P) work, with some limitations. Most notably, Blinded balances must be spent in their entirety to the intended recipient, as the facility to receive “change” from a transaction is still being worked on. (It depends on range-proofs being completed in the ZKP library).
What's still being worked on:
Range Proofs: Confidential (Blinded/Stealth) transactions on Bitshares work differently than Normal transactions. Stealth transactions use the UTXO model (similar to how Bitcoin works) instead of the Account model (how blockchains like Ethereum and Normal-mode Bitshares work.) This means that each time you receive a confidential transaction, the blockchain records a “coin” (called a commitment) that encodes the received amount. Your confidential “balance” is just the sum of these coins. Coins cannot be split. They can only be consumed in entirety as “inputs” to a transaction, and turned, in essence, into a new set of coins that are the “outputs” of the transaction. Typically, there will be two outputs: one to the intended recipient, and one yielding the “change” back to yourself.
When transaction values are Blinded, the network cannot know the value of the outputs. The only thing the network can verify is that the sum of the INPUTS equals the sum of the OUTPUTS (without even knowing what those sums actually are… ONLY that they balance). So long as there is only one output, things are simple. But if there are TWO outputs (as there must be if there is to be a change amount), then the transaction must also include a “range proof”, which is a mathematical proof that asserts that, while the output amount is unknown, it is NOT negative-valued. This is important, because without this proof of a non-negative output, one could take a 10 BTS input and spend it to a -5 BTS output and a +15 BTS output and effectively counterfeit 5 BTS, and this transaction would balance. (The sum of the outputs equals the sum of the inputs)!
Range Proofs are the most complicated sub-component of the project to implement Blinded and Stealth transactions in the Javascript-based UI wallet. Although the C++ implementation works in the CLI wallet, porting the algorithm to Javascript for use in the UI wallet has to be done with great care.
In essence, a range proof is a Borromean Ring Signature, which is used in a clever way to give a representation of the output value as a sum of “either-or” binary significant digits in a pseudo-floating-point format. It’s like representing the value as a bit-field where each bit is unknown, BUT it proves that the value is in a range that will not overflow and end up representing a negative number. With the range proof, the network can verify that the output equals the input, AND that no counterfeiting is occurring.
Since the homescreen of the web and light client wallets was recently replaced, that set us back a few days and had to shuffle some things around on that screen, but will have that updated next week. There have been some connection issues with the api of the eu testnet lately too, so hopefully those connection issues will be hammered out soon and we can publish the link so that everyone can connect and start hacking on the new Blinded transaction and ultimately, the Stealth transaction features with us.
Ledger Nano SFunding for this project dried up in that last crypto dump, so if you would like to donate some BTC or BTS to get this cold storage solution finished up, please send your donations here:
BTC: 1LNeUvrxGjbyPxrCson9rbrKcpaQgwaGVA
BTS: agorise
Once at least $8K in donations has been received, Agorise will cover the balance and get the Ledger Nano S firmware completed and published on github. If that goal is not reached by December 25th 2017, donations are used to build additional open source crypto products and support the existing ones we build and discuss here on Steemit. Here is where the code will be published:
https://github.com/Agorise/ledger-nano-s-bitsharesNote: Getting our firmware merged with the Ledger Nano S core however may not be so easy. Agorise is not a Marketing firm. There are no guarantees that they will merge our code. If you have the ability to coordinate that with the awesome Devs over at Ledger, please ping @kenCode on telegram or keybase asap:
Telegram:
https://t.me/kenCodeKeybase:
https://keybase.io/kenCodegraphenejIf you're a mobile app Developer and want to add Bitshares support to your android app, we have built a nice library for you that makes that integration a breeze. It's kept up to date too since we use it in most of the products we build, so try it out today to show your support for the Bitshares network!
https://github.com/Agorise/graphenejMobile WalletsFirst we built the Bitshares Wallet. Then we built the Smartcoins Wallet. Now we are building a new, totally decentralized, multi-chain, Yubikey-enabled, grandma-friendly, atomic swap, NFC/QR, Stealth-enabled, mobile "wallet" that does a hell of a lot more than just manage your digital assets. Codenamed "Carbon", this unstoppable app will Evolutionise cryptocurrencies in the mobile space. Follow us here on Steemit if you'd like to try it out!
Point Of Sale systems and integrationsJust because the BlockPay name was acquired, doesn't mean that we will let the project die. It's already been forked, rebranded and is being actively upgraded and improved. As a matter of fact, the new POS system (codenamed "Atom") is faster, more secure, less reliant on any third parties, totally decentralized, supports way more coins, is cheaper for the customer, and is WAY easier to setup for the merchant. Click, click, done. If you are looking to accept one or more digital currencies in your business, look no further. Just Follow us here on Steemit if you'd like to try it out!
C-IPFSC-IPFS v1.0 was released a few weeks ago. IPFS is the Inter-Planetary FileSystem, and allows us to decentralize everything, including parts of the Internet itself. Why did we rewrite it in C? Think Bitshares' Stealth backups, OpenWrt routers (decentralize the internet/meshnet!), Android TV, decentralized Media, decentralized websites, decentralized Apps, Browsers and mobile chat, decentralized CDN's and App Stores, RasPi's, old pc's and more.
Tired of censorship? Build on IPFS! DTube did!
We have a couple builds on there for you now, and more builds will be published there in the coming days, so if you'd like to help us Agorise the World through decentralization, then please Follow us here on Steemit for all the updates!
https://github.com/Agorise/c-ipfs/releaseshr.png
The Atomic Order BookUse your imagination.. We've mentioned the need for atomic swaps in the crypto space for some time and now it's finally a reality! We will make this api public on our github very, very soon:
https://github.com/Agorisehr.png
VideosWant to see some sweet video tutorials and explainers? In the coming days, we will be posting a series of videos that teach and support all of our products, and of course Agorism itself, so stay tuned!
DTube:
https://dtube.video/#!/c/Agorise
Youtube:
https://www.youtube.com/channel/UCCk2kxMidSdt5L3iawyFTwQ