kek
September 19, 2019, 9:45pm
1
TL;DR - do i need to write a ZIP for deploying existing zcash tech??
believe ZEC/BTC interoperability is an upgrade zcash should undertake. if govs become really hostile towards true sound internet money will harm ZEC’s growth. think it’s a good decision to protect zcash by making sure people always have access to ZEC. BTC interop guarantees zcash will always be accessible as-long-as BTC’s accessible. know other projects do this, but zcash shouldn’t need to depend on a third party block chain to achieve interop.
3 Likes
str4d
September 19, 2019, 10:07pm
2
What kind of interoperability are you thinking about?
If you are thinking about something that doesn’t require a network ugprade, the only current mechanism for interoperability would be the Bitcoin-inherited transparent scripting system. This is somewhat limited by what opcodes either side supports.
BTC atomic swaps (or some other logic that depends on parsing or validating parts of the BTC chain) should be possible to implement using WTPs (writing a ZIP that specifies a new WTP implementing the logic). Meanwhile the UDAs and Wrapped Assets ZIP could be used to define a mechanism for creating wrapped (shielded) BTC. Both of these are proposed for NU4, and if accepted and deployed in NU4 then a new ZIP using them could be deployed as early as NU5.
4 Likes
kek
September 19, 2019, 10:33pm
3
str4d:
if accepted
this works. think it would be amazing if this ZIP was accepted/deployed.
1 Like
Shawn
September 19, 2019, 11:40pm
4
This reminds me, what ever happened with BTC XCAT?
Seemed like a promising project that got left behind. Maybe a good idea for a new grant? Did @jasondavies drop the ball on this?
opened 07:42PM - 15 Sep 17 UTC
coding
UX
security
complete-submission
financial-interoperability
awarded
**Motivation and overview**
Building on the [excellent work](https://z.cash/b… log/atomic-trades.html) by @arielgabizon, @arcalinea, and others, I propose to make their work more accessible by providing a simple web-based tool that facilitates:
* **Easy setup of an XCAT trade**. This includes optional generation of the random secret in-browser. Once the trade parameters have been agreed between the parties (secret hash, 4 addresses, 2 amounts), a URL can be generated for easy (and optional) sharing/bookmarking. The page would provide instructions for creating and sending the relevant transactions. The page *may* also allow the transactions to be broadcast, in the case where users cannot easily do so themselves.
* **Optional monitoring of a trade**. The XCAT mechanism will be illustrated visually, and progress of the requisite transactions can be optionally monitored. The visual aspect helps educate users and developers about how XCAT works, and if monitoring is enabled, it allows users to see which parts of the trade have completed, and easily see what to do next to complete the trade (or revoke it if something goes wrong).
The purpose of the tool is to facilitate easy trading *and* educate users about how XCAT works.
**Technical approach**
* The majority of the work involves designing a nice user interface written in JavaScript, HTML and CSS, and intuitive visualisations for the trade and its progress along the two selected blockchains.
* Initially only ZEC and BTC will be supported.
* The optional monitoring of trade progress will require a server running both Zcash and Bitcoin nodes ideally with `txindex=1`.
**Background and qualifications**
MA (Cantab) CompSci, Univ. of Cambridge, contributor to various open-source projects; most relevant to this proposal is my work on [D3.js](https://d3js.org), and you can see various visualisations on my [personal website](https://www.jasondavies.com/).
I've been following Zcash since its inception and have made some minor contributions so far:
* [zcash-sprout-verifier](https://github.com/plutomonkey/zcash-sprout-verifier) - verifier for Zcash zk-SNARK proofs in Rust.
* [zcash-vanity](https://github.com/plutomonkey/zcash-vanity) - vanity z-addr generator in Rust and OpenCL.
I also helped @arielgabizon test the first ever XCAT trade with ZEC/BTC on their respective testnets.
**Evaluation plan**
The following deliverables are required:
* A web page that allows the main XCAT parameters to be entered and agreed upon between two parties.
* The web page should provide instructions for generation and broadcast of the appropriate transactions.
* A visualisation of the progress of the trade, with optional monitoring which requires some information to be sent to the server.
**Security considerations**
As this page is intended to be used to exchange money, *extreme* caution will be required in terms of ensuring the page and its code are not tampered with. I would welcome suggestions on this front. Of course, I would serve the page over HTTPS but additional protections would be helpful.
Aside from the above, I also want to ensure that the parties to the trade are able to select the level of privacy with respect to leaking information to the server, ranging from *no information* to *I am one of the parties involved in this XCAT trade* (the latter is required to monitor how far along the trade has progressed).
Furthermore, care should be taken when suggesting `redeemblocknum` parameters to the users, such that sufficient margins are in place for the cases where the counterparty does not follow through, and the trade needs to be aborted.
**Budget and justification**
I have spent some time thinking about how the UI and visualisations might look, so I'm already part-way along in the process. As I mentioned above, I have also helped Ariel test their XCAT code so I also already have an understanding of how it fits together.
I estimate that around $15k would be sufficient to fund the development of this tool, with a turnaround time of around 1-2 months. I'm happy to take on hosting costs etc. myself.
5 Likes
Hey! Yes, various things got in the way of me completing this, but I’m actually working on it again so watch this space…
7 Likes