Payment Gateway

Applicant background

I have worked on system development for 25 years +. I worked in the SQL Server Engine, Windows CE and .NET framework. I implemented a full node bitcoin in F# and Scala.

Motivation and overview

ZCash would benefit from more support from e-commerce apps. As a private means of payment, it has an edge when discretion is appreciated.

Technical approach

We would integrate zcash as an "altcoin" in one of the existing cryptocurrency payment platforms. That platforms needs to be well recognized, popular, supported and preferably open source. The best candidate so far is BtcPay.

However, ZCash has a set of unique properties that makes it challenging to fit in BtcPay's existing framework:

  • It is shielded. A block explorer cannot see the merchant's transactions,
  • We want to accept transparent transactions too. We must combine from several sources of payments that have different logic (UTXO + received notes)
  • After consideration of the current architecture of BtcPay, this may involve building a dedicated block scanner / payment interface

Execution risks

There are clearly hard challenges ahead. Fitting in an existing payment system is difficult as we have constraints due to the current design. We will mitigate these risks by doing a thorough analysis and produce a proof of concept before moving forward.

BtcPay has no official support for altcoins. They accept contributions but will not help besides that. The documentation is very scarce and out of date in this area.

No coin other than zcash has a dual value model. This is going to be hard to integrate. With NU-5, we could even get a third pool.

Looking at the changes required for the integration of new major coins (Ethereum, Monero), this seems to be sizable task.

Downsides

I don't see any downsides in offering ZCash as an additional payment option.

Evaluation plan

Once successful, this should be merged with the BtcPay code base and be ready in the official docker image.

Tasks and schedule

I estimate roughly a duration of 6 months for this work. More analysis is required for a precise estimation. At this point, I'd like to see the interest before I spend time digging through the code.

Budget and justification

The budget will be allocated for development, test and documentation.

Dev, test, doc: 70k Support: 10k

Due to the high technical risk, the milestones will be determined once we have a better understanding of the design.

Goals

Primary goal is to accept payment in ZEC from customers. They must be able to pay from transparent, sprout or sapling addresses. Secondary goal is to support shielded address for the store. If it is not possible directly, we can auto migrate daily. Also, the support for ZEC should be well documented and as easy as possible.

The actual tasks breakdown for milestone 3 will have to be defined after we get more clarity about the implementation plan.

Tipping

Tips Received
???  
ZEC

Campaign

Requested Funding
$80,000
Open for Public Review