submitted by sidhujag to ethereum [link] [comments]
We are excited to participate and present Syscoin Platform's ideal characteristics and capabilities towards a well-rounded Reddit Community Points solution!
Our scaling solution for Reddit Community Points involves 2-way peg interoperability with Ethereum. This will provide a scalable token layer built specifically for speed and high volumes of simple value transfers at a very low cost, while providing sovereign ownership and onchain finality.
Token transfers scale by taking advantage of a globally sorting mempool that provides for probabilistically secure assumptions of “as good as settled”. The opportunity here for token receivers is to have an app-layer interactivity on the speed/security tradeoff (99.9999% assurance within 10 seconds). We call this Z-DAG, and it achieves high-throughput across a mesh network topology presently composed of about 2,000 geographically dispersed full-nodes. Similar to Bitcoin, however, these nodes are incentivized to run full-nodes for the benefit of network security, through a bonded validator scheme. These nodes do not participate in the consensus of transactions or block validation any differently than other nodes and therefore do not degrade the security model of Bitcoin’s validate first then trust, across every node. Each token transfer settles on-chain. The protocol follows Bitcoin core policies so it has adequate code coverage and protocol hardening to be qualified as production quality software. It shares a significant portion of Bitcoin’s own hashpower through merged-mining.
This platform as a whole can serve token microtransactions, larger settlements, and store-of-value in an ideal fashion, providing probabilistic scalability whilst remaining decentralized according to Bitcoin design. It is accessible to ERC-20 via a permissionless and trust-minimized bridge that works in both directions. The bridge and token platform are currently available on the Syscoin mainnet. This has been gaining recent attention for use by loyalty point programs and stablecoins such as Binance USD.
SolutionsSyscoin Foundation identified a few paths for Reddit to leverage this infrastructure, each with trade-offs. The first provides the most cost-savings and scaling benefits at some sacrifice of token autonomy. The second offers more preservation of autonomy with a more narrow scope of cost savings than the first option, but savings even so. The third introduces more complexity than the previous two yet provides the most overall benefits. We consider the third as most viable as it enables Reddit to benefit even while retaining existing smart contract functionality. We will focus on the third option, and include the first two for good measure.
Syscoin + Matic IntegrationMatic and Blockchain Foundry Inc, the public company formed by the founders of Syscoin, recently entered a partnership for joint research and business development initiatives. This is ideal for all parties as Matic Network and Syscoin Platform provide complementary utility. Syscoin offers characteristics for sovereign ownership and security based on Bitcoin’s time-tested model, and shares a significant portion of Bitcoin’s own hashpower. Syscoin’s focus is on secure and scalable simple value transfers, trust-minimized interoperability, and opt-in regulatory compliance for tokenized assets rather than scalability for smart contract execution. On the other hand, Matic Network can provide scalable EVM for smart contract execution. Reddit Community Points can benefit from both.
Syscoin + Matic integration is actively being explored by both teams, as it is helpful to Reddit, Ethereum, and the industry as a whole.
Proving Performance & Cost SavingsOur POC focuses on 100,000 on-chain settlements of token transfers on the Syscoin Core blockchain. Transfers and burns perform equally with Syscoin. For POCs related to smart contracts (subscriptions, etc), refer to the Matic Network proposal.
On-chain settlement of 100k transactions was accomplished within roughly twelve minutes, well-exceeding Reddit’s expectation of five days. This was performed using six full-nodes operating on compute-optimized AWS c4.2xlarge instances which were geographically distributed (Virginia, London, Sao Paulo Brazil, Oregon, Singapore, Germany). A higher quantity of settlements could be reached within the same time-frame with more broadcasting nodes involved, or using hosts with more resources for faster execution of the process.
Addresses used: 100,014
The demonstration was executed using this tool. The results can be seen in the following blocks:
It is important to note that this POC is not focused on Z-DAG. The performance of Z-DAG has been benchmarked within realistic network conditions: Whiteblock’s audit is publicly available. Network latency tests showed an average TPS around 15k with burst capacity up to 61k. Zero-latency control group exhibited ~150k TPS. Mainnet testing of the Z-DAG network is achievable and will require further coordination and additional resources.
Even further optimizations are expected in the upcoming Syscoin Core release which will implement a UTXO model for our token layer bringing further efficiency as well as open the door to additional scaling technology currently under research by our team and academic partners. At present our token layer is account-based, similar to Ethereum. Opt-in compliance structures will also be introduced soon which will offer some positive performance characteristics as well. It makes the most sense to implement these optimizations before performing another benchmark for Z-DAG, especially on the mainnet considering the resources required to stress-test this network.
Cost SavingsTotal cost for these 100k transactions: $0.63 USD
See the live fee comparison for savings estimation between transactions on Ethereum and Syscoin. Below is a snapshot at time of writing:
ETH price: $318.55 ETH gas price: 55.00 Gwei ($0.37)
Syscoin price: $0.11
Snapshot of live fee comparison chart
Z-DAG provides a more efficient fee-market. A typical Z-DAG transaction costs 0.0000582 SYS. Tokens can be safely redeemed/re-spent within seconds or allowed to settle on-chain beforehand. The costs should remain about this low for microtransactions.
Syscoin will achieve further reduction of fees and even greater scalability with offchain payment channels for assets, with Z-DAG as a resilience fallback. New payment channel technology is one of the topics under research by the Syscoin development team with our academic partners at TU Delft. In line with the calculation in the Lightning Networks white paper, payment channels using assets with Syscoin Core will bring theoretical capacity for each person on Earth (7.8 billion) to have five on-chain transactions per year, per person, without requiring anyone to enter a fee market (aka “wait for a block”). This exceeds the minimum LN expectation of two transactions per person, per year; one to exist on-chain and one to settle aggregated value.
Tools, Infrastructure & Documentation
Syscoin BridgeMainnet Demonstration of Syscoin Bridge with the Basic Attention Token ERC-20
A two-way blockchain interoperability system that uses Simple Payment Verification to enable:
APITools to simplify using Syscoin Bridge as a service with dapps and wallets will be released some time after implementation of Syscoin Core 4.2. These will be based upon the same processes which are automated in the current live Sysethereum Dapp that is functioning with the Syscoin mainnet.
DocumentationSyscoin Bridge & How it Works (description and process flow)
Superblock Validation Battles
HOWTO: Provision the Bridge for your ERC-20
HOWTO: Setup an Agent
Developer & User Diligence
Trade-offThe Syscoin Ethereum Bridge is secured by Agent nodes participating in a decentralized and incentivized model that involves roles of Superblock challengers and submitters. This model is open to participation. The benefits here are trust-minimization, permissionless-ness, and potentially less legal/regulatory red-tape than interop mechanisms that involve liquidity providers and/or trading mechanisms.
The trade-off is that due to the decentralized nature there are cross-chain settlement times of one hour to cross from Ethereum to Syscoin, and three hours to cross from Syscoin to Ethereum. We are exploring ways to reduce this time while maintaining decentralization via zkp. Even so, an “instant bridge” experience could be provided by means of a third-party liquidity mechanism. That option exists but is not required for bridge functionality today. Typically bridges are used with batch value, not with high frequencies of smaller values, and generally it is advantageous to keep some value on both chains for maximum availability of utility. Even so, the cross-chain settlement time is good to mention here.
CostEthereum -> Syscoin: Matic or Ethereum transaction fee for bridge contract interaction, negligible Syscoin transaction fee for minting tokens
Syscoin -> Ethereum: Negligible Syscoin transaction fee for burning tokens, 0.01% transaction fee paid to Bridge Agent in the form of the ERC-20, Matic or Ethereum transaction fee for contract interaction.
Z-DAGZero-Confirmation Directed Acyclic Graph is an instant settlement protocol that is used as a complementary system to proof-of-work (PoW) in the confirmation of Syscoin service transactions. In essence, a Z-DAG is simply a directed acyclic graph (DAG) where validating nodes verify the sequential ordering of transactions that are received in their memory pools. Z-DAG is used by the validating nodes across the network to ensure that there is absolute consensus on the ordering of transactions and no balances are overflowed (no double-spends).
APISyscoin-js provides tooling for all Syscoin Core RPCs including interactivity with Z-DAG.
DocumentationZ-DAG White Paper
Useful read: An in-depth Z-DAG discussion between Syscoin Core developer Jag Sidhu and Brave Software Research Engineer Gonçalo Pestana
Trade-offZ-DAG enables the ideal speed/security tradeoff to be determined per use-case in the application layer. It minimizes the sacrifice required to accept and redeem fast transfers/payments while providing more-than-ample security for microtransactions. This is supported on the premise that a Reddit user receiving points does need security yet generally doesn’t want nor need to wait for the same level of security as a nation-state settling an international trade debt. In any case, each Z-DAG transaction settles onchain at a block target of 60 seconds.
Syscoin SpecsSyscoin 3.0 White Paper
(4.0 white paper is pending. For improved scalability and less blockchain bloat, some features of v3 no longer exist in current v4: Specifically Marketplace Offers, Aliases, Escrow, Certificates, Pruning, Encrypted Messaging)
WalletsWeb3 and mobile wallets are under active development by Blockchain Foundry Inc as WebAssembly applications and expected for release not long after mainnet deployment of Syscoin Core 4.2. Both of these will be multi-coin wallets that support Syscoin, SPTs, Ethereum, and ERC-20 tokens. The Web3 wallet will provide functionality similar to Metamask.
Syscoin Platform and tokens are already integrated with Blockbook. Custom hardware wallet support currently exists via ElectrumSys. First-class HW wallet integration through apps such as Ledger Live will exist after 4.2.
Current supported wallets
Syscoin Spark Desktop
ExplorersMainnet: https://sys1.bcfn.ca (Blockbook)
Thank you for close consideration of our proposal. We look forward to feedback, and to working with the Reddit community to implement an ideal solution using Syscoin Platform!
Dev meeting? Would say so, yes The people are still exhausted from the payment ID meeting :) Guess we could ping some people vtnerd, moneromooo, hyc, gingeropolous, TheCharlatan, sarang, suraeNoether, jtgrassie Anyone up for a meeting? Yep I'm here Here o/ Perhaps we should just start and people will eventually hop in? oof sorry guys, I'm working on the new FFS and I forgot all about this. Got a couple of new volunteers. This literally might be able to launch tomorrow. I know that. It's called "flow" :) I could run if you're out of time? go for it dEBRUYNE you guys are going to like this new FFS. We're like 99% done. Hi rehrar: someone else do the milestone thing already? All right, jtgrassie, perhaps you'd to start w/ briefly describing your most recent PR? https://github.com/monero-project/monero/pull/5091 oneiric, xiphon did everything like....everything As far as I can see, it allows the user to push his transaction over I2P, thereby masking the origin IP of the sendeuser great And it hooks into vtnerd's PR right? Sure. It basically just builds on vtnerds Tor stuff. sorry dEBRUYNE Really not much added. I have it running and tested. From the perspective of the user, what needs to be configured exactly? Nice Assuming the PR is included in the release binaries I'm using knacccs i2p-zero duirng testing but will of course work with any i2p setup sorry dEBRUYNE <= Np Looks a little like dams breaking, now that we have some dark clouds over Kovri and people take matters into their own hands ... User needs to run i2p, expose a socks service and and inbound tunnel. Basically same as Tor Okay, so should be reasonable as long as we write proper documentation for it (e.g. an elaborate guide) rbrunner, yes, knaccc credit for jumping on i2p-zero really dEBRUYNE: documentation monero side is kindof done. i2p side is very much implementation specific. I suppose we could write some guides for the most popular implementations? e.g. i2p-zero aims to be zero conf, but i2pd or Kovri would be differnet. I see, great vtnerd___: Do you want to add anything? could amend the current kovri guide for monero use from --exclusive-peer to the new proxy support Now I have i2p-zero running and tested with the #5091, I plan to jump back over to helping knaccc on getting that polished. I added support for socks proxy in the basic wallets ^ excellent Yes vtnerd___ I havent tested it yet but looks sweet. So connections to `monerod` over Toi2p are possible within wallet cli and wallet rpc Awesome This also implies auth+encryption even if ssl is not in use (when using an onion or i2p address) All right moneromooo: are you here? If so, could you perhaps share what you've been working on? I am. I revived the SSL PR, more stuff on multi sender txes, an implementation of ArticMine's new block size algorithm. I presume a multi sender tx works similar to multisig insofar as the senders have to exchange data before the transaction can be performed right? Yes. There are 2 SSL PRs. What's the diff? Theoretically this would also allow the sender to provide an output right? Which would be kind of similar to Bitcoin's P2EP The second one adds some things like selecting a cert by fingerprint. Yes. (for the first sentence) All right, awesome For anyone reading, this breaks the assumption of the inputs belonging to a single sender, which makes analysis more difficult Nice side-effect. Much work coming for the various wallets to support that rbrunner: Anything you'd like to share in the meeting btw? Yes, just a little info I have started to seriously investigate what it would mean to integrate Monero into OpenBazaar I have already talked with 2 of their devs, was very interesting In maybe 2 or 3 weeks I intend to write a report Too early to tell much more :) Soon^tm I guess :) Yep Currently wrestling with Go debugging whole new world moneromooo: Has pony recently shared any insights regarding the upcoming 0.14 release btw? No. All right I would love to see the tor & i2p PR's merged sooner rather than later so we can get more testing done. ^ +1 Isn't that famous early code freeze already on the horizon? fluffypony, luigi1111 ^ I suppose I could provide a little update regarding the GUI btw As always, lots of bug fixes and improvements :-P selsta has recently added a feature to support multi accounts dsc_ has revamped the wizard and will now start working on implementing the different modes and a white theme dsc_ is working fulltime on the GUI already? yes :) dsc_ is bae In light of the recent payment ID discussion, we've also, by default, disabled the option to add a payment ID unless the user explicitely activates the option on the settings page rehrar ^ nice I spoke about this yesterday at the coffee chat, this is not a good decision. How does it handle integrated addresses? The same way? rehrar ? For the next many months, we are still stuck with PAyment IDs in the ecosystem. Making it harder for people to access them will make Monero suck so hard to use for the average person for many months. i agree with rehrar Remove the option of Payment IDs when we remove Payment IDs rehrar: The new GUI release won't be live until probably mid march though Which is a few weeks in advance of the scheduled protocol upgrade Payment ID removal comes in October right, but Payment IDs are not removed in March Did we not have loose consensus on removing the old, unencrypted payment IDs in march? they are removed in October We had discussed a deprecation in March and a ban in October ok, then if we are going to do that, we have to commit to it and contact the exchanges like Binance that use them and get rid of them in the next few months (of unencrypted) Binance is huge, and if they still use them, then people will be very upset that they can't deposit or use Payment IDs easily I'm just speaking from a UX perspective. I thought it was unencrypted in April and possibly encrypted in October Yes I do agree Timeline and notes: https://github.com/monero-project/meta/issues/299 impossible to remove them for march, many exchanges still use them We can defer it to the 0.15 release if needed Well, that wasn't the impression for them log that I just read today This was all discussed in the earlier meeting linked above We have to force the ecosystem off of Payment IDs before we remove them from the UI, is all I'm saying Remove != make difficult to use ... or make them more difficult there, right? ping sgp_ sarang, I understand, and I agreed with you during that meeting. But then I started thinking of it as a UX person, which I am. And that huge massive problem leapt out at me i think making them difficult to generate is a good idea but making them difficult to consume and use is a bad idea well, maybe not a good idea, but a better idea ^ If we defer the decision to depriciate long payment IDs to october, won't we have the same issue then? The UI can gave an expandable payment ID field like MyMonero and we can still call it deprecated It is foolhardy to remove an option that the ecosystem uses. So I suggest we keep the Payment ID in the UI until October when they are completely banned. no dEBRYUNE, because they will be banned via consensus sgp_ imo it may be a misdirection of dev resources to add that since things are proceeding in the short term rather than long term but this is a relatively minor point Nothing matters til exchanges change All right The issue is that consensus will still have them in April, and exchanges won't upgrade because they are still allowed. Thus they must still be in the UI. endogenic these changes are already merged in the GUI to hide it like you do ok But when they are banned, exchanges are forced to upgrade or stop using Monero, so we can remove them safely because they won't be in use rehrar: that's a strong assumption sarang that they will upgrade? yes if they don't, then they can't use Monero If exchanges require pid, users need a way to set a pid. Making it hard for the user in the interim is just going to be a nightmare. we have decided to take our "stand" in October A way that is not too hard, then To be clear, we still intend to deprecate long encrypted payment IDs in April right? But no enforcement until October the term "deprecated" doesn't mean much if it's still allowed, and used in popular places yes, as far as I understand it jtgrassie, exactly True I suppose dEBRUYNE: we need to be more specific when talking about deprecation the person who suffers is the user There are two proposals for GUI deprecation: 1. Hide it in the send screen with a simple option to expand (currently merged iirc) 2. Hide it completely in the send screen unless users enable the field in advanced settings (PR'd but not merged yet iirc) What are the arguments for 2? Both are poor options, but 1 is better than 2 by a long shot Well the people who need to be made to "suffer" are the exchanges. And I don't see a way to make exchanges "suffer" other than by having their suffering customers complain to them constantly that they need to update. ^ CLI has something similar where users need to set a manual payment ID transfer mode. Not sure if it's merged yet the way to make the exchanges suffer is when we ban PIDs. They either upgrade or don't use Monero. exact;y Agree with rerahr here have exchanges been provided with clear, practical, sufficient technical upgrade plans for supporting what they're doing with PIDs but with subaddrs? Both are poor options, but 1 is better than 2 by a long shot <= I wouldn't call 1. a poor option. Have you actually checked how it looks? Because it states "Payment ID" and a user has to click on the + to expand the field endogenic: yes the email when out. Blog post coming soon, but contains the same info as the email also the exhcnages' users are often using wallets that don't support subaddresses ok great as well, it should be noted that the timeline for exchanges to upgrade is September, not October when the fork is. Which wallets are that? Rehrar: I don't see option 1. causing any issues/confusion i guess it doesnt matter too much if withdrawing as a personal user the main address should suffice Because September is when the new versions will be coming out without PIDs in the UI If there's opposition to 2, 1 is fine. We can still call it deprecated which is the optics we need anyway exchange users are often just using other exchanges lol. No wallets involved. dsc_ dEBRUYNE, ok, I trust you guys here then rbrunner: i was thinking mymonero last i heard Ok pigeons: rbrunner yes receiving on subaddresses won't be supported yet sending to them has been possible though and yes as learnandlurkin says often they withdraw to other systems like exhcnages that also dont yet support subaddresses I really can't come up with any good argument for 2. right now endogenic: seems not much of an issue then. Exchanges will typically support withdrawals to both subaddresses and plain addresses (especially if we are going to force them to use subaddresses) For deposits, MyMonero works properly if the user sends to a subaddress Actually the second solution was already merged: https://github.com/monero-project/monero-gui/pull/1866 Maybe not enough eyes watching :) The important thing is to have done something to justify having a big "DEPRECATED IN APRIL" stamp on PIDs to spook exchanges in the interim This was for solution 1: https://github.com/monero-project/monero-gui/pull/1855 The Monero Community Workgroup will start making noise everywhere we can to exchanges, and everywhere else that will listen. Try to get on those garbage news sites also. So everyone knows that deprecated in April, and banned in September Hey, for solution 1, write "Payment ID (optional, deprecated)" or similar there rbrunner: noted rehrar: probably wait until the blog post, but it should only be a few days Maybe a Reddit sticky post would be useful? With the blog post If people are over freaking out about the hashrate or terabyte blockchain :) sigh Any questions for the MRL side? Is someone checking ArticMine's block size changes for weird behaviour in some cases etc ? How would such testing work? Private blockchain?