looking for the community’s thoughts on wrapped.com as a ZcashOMG grant applicant for implementing shielded support using viewing keys…
Here’s some quotes for context from a recent tweet exchange I had…
“ we’re only able to run $wzec at @WrappedFi due to the existence of the t-addr. Otherwise anchorage, Gemini and other custodian / exchanges would delist overnight.”
“ There are four flavors of support:
Depositing into an exchange z-addr → t-addr
Depositing into an exchange z-addr → z-addr
Withdrawing from an exchange z-addr → z-addr
Withdrawing from an exchange t-addr → z-addr
wrapped.com can do number 1.
z-addr support (2 and 3) are the most interesting to me, as it properly takes advantage of the viewing keys, however I don’t see a reality where most people put in the effort to figure this out.”
One last thought I’d like to discuss is the role Gemini could play in making this a reality as they have already started down the shielded Zcash support path…
Not sure if they want a grant to do it.
1 Like
Anton1
December 22, 2020, 2:12pm
27
I would like to implement this idea: Programmatically through a wallet or through an application, create a master key (USB), which includes a read / write-protected portable wallet that has the ability to connect to a closed and secure gateway to perform transactions on any computer. On practice: I create a USB flash drive that gives me access to my zcash that are on it, password entry, work as a narrow client on different operating systems.
2 Likes
den
December 23, 2020, 12:23pm
28
I’ll put a link to an idea I submitted in another post here, that I believe simplifies uses and could push private address use by default.
An idea that could help with user experience and adoption:
In the case of zcash the user has to either generate a shielded or a transparent address to store or receive funds the way he wants.
In order to send funds, he needs to check the nature of the address of the receiver to know more of the nature of the future transmission.
These are 2 steps the user needs to check by reading the first letter of the address. It’s obvious for many, but maybe not for newcomers.
Why not generating a bundle…
Shawn
December 23, 2020, 1:02pm
29
There are currently two proposals on the forum , and three on the Grant platform.
Unfortunately no teams have stepped up yet to address making more wallets that support shielded transactions.
1 Like
Anton1
December 23, 2020, 1:15pm
30
Those offers are just people’s earnings, there will be 0 benefit from them, if ZOMG will sit and wait for great offers in an unpopular (of course popular but in a very narrow circle) coin, then apparently you need to wait a very long time, now ZOMG has about 700 thousand on its account dollars in zec, a lot of things can already be done with this money, it would not be bad to define directions and look for teams to implement them, don’t you think? You can sit and wait endlessly, and will we spend money on gateways at 13,000 per unit for 3 months?
2 Likes
Whether to be proactive or reactive in finding grant applicants was a topic that came up during the MGRC debates to decide who would be on the MGRC (now ZOMG). There were arguments for both sides, and I think what most people came to was that we need to see the number and quality of grants coming down the pipeline the first few months before deciding if there needs to be proactive outreach. Personally, I think there needs to be proactive outreach and the Zcash community/ZOMG/other entities can greatly help with that in the new year.
5 Likes
I also agree that we need to proactively seek out applicants.
3 Likes
Regarding if we need a mixnet:
Zcash can’t scale if it requires every user to scan the entire blockchain for payments.
So, we need some other way to notify most users they received a payment.
One option is build a mixnet. Problem is, this can’t be a zcash specific mixnet. Because anonymity in mixnets is a function of concurrent users (to a first approximation your anonymity set is all concurrent users), you’d have much less privacy. And much less than Zcash’s on chain privacy which is, to a first approximation, based on all users of Zcash ever. So we need to get into an existing mixnet with usage. This might happen and there certainly are some promising projects out there.
The other option is for the majority of users to spend payment notifications out of band. @tromer and I have been working on one particular version of this on and off since the last Zcon. And thanks to @gmale @str4d and others it finally has the low level details in it. [Draft] Liberated Payments by gmale · Pull Request #420 · zcash/zips · GitHub . This lets you pay someone ZEC even if you don’t have their address (and even if they don’t have a wallet yet and have never heard of ZEC). It also avoids the nasty fat fingered an address/ sent to the wrong address problem : you’re sending a message over the whatsAp/signal/telegram account you already use with them. And until they confirm the funds, it’s reversible. And they never have to scan the blockchain
This proposal defines a mechanism for sending a Zcash payment encapsulated in a URI string. This enables sending Zcash funds over any secure channel, such as via a messaging app, even if the recipient does not yet have Zcash software installed and does not have a Zcash payment address. This is implemented by having the URI convey the secret spending key of an ephemeral Zcash “wallet address”, to which the funds have been transferred. Anyone who learns the URI can accept this payment, by a “finalization” process which uses the key given in the URI to transfer the encapsulated funds to their own wallet. After the payment is finalized, via a suitable on-chain transaction by the recipient, it becomes irrevocable.
This handles p2p payments. For merchants on the web, you can submit payment notification information /txid as part of the payment process. This should be automated, but is doable.
And then anyone who wants maximal privacy can run a full node and scan. And you should do that anyway.
8 Likes
I am not as deep in the technical weeds, but I am pretty sure that there is a way in Ethereum to prove your account balance and previous transactions by checking the most recent X blocks (I think you do stuff with patricia tree merkle roots?). Is that an option?
1 Like
It’s probably similar to Ethereum other than you can’t ask someone else to do it. “scan the entire blockchain” is once. You do this incrementally, checking if each block contains payments to you. If you’ve already checked the block or your address was made after that block, then you don’t need to scan it again.
So its an ongoing thing you do work on. It’s never finished. But you never have to repeat work unless something goes wrong.
1 Like
str4d
December 23, 2020, 5:19pm
36
It’s easier for Ethereum to do this, because they use an account-based model. You only need to know that the current chain state is valid, and then you can just take the most recent balance as the correct current balance. In UTXO-based chains like Zcash, where your balance is the sum of unspent notes you’ve received, you need a whole-chain view to obtain a correct balance. Even if you used some kind of “save-point” mechanism for the notes you know about, anyone (who knows your address) can send you a new note at any time, which requires a notification mechanism as @secparam described.
5 Likes
Ive seen some chatter about ZEC for gaming recently…
So what does everyone think about Zebedee, which the creator of the Zcash Zepio wallet is apart of as a potential @ZcashGrants grant applicant?
@andrerfneves is this something you would consider?!
https://zebedee.io/
1 Like
aiyadt
January 5, 2021, 7:02pm
38
My team is planning to develop an open source, efficient Zcash specific block explorer software. What features would you like to see in such a project?
Nighthawk Team plans to develop an optimized, open source version of block explorer for Zcash.
Applicant background
Nighthawk Wallet Team has 20+ years of combined experience in software development, devops and cloud infra.
With this grant, we want to build a block explorer for Zcash that supports features requested by the community. Additionally, we plan to host the block explorer for both testnet and mainnet with tor support.
Motivation and overview
The goal of this grant is to make ava…
5 Likes
is there a thread for this — so forum folks can share their ideas/suggestions.
aiyadt
January 5, 2021, 8:10pm
40
1 Like
Another community sentiment inquiry from me…
a Decred Politeia fork for Zcash? Would it be useful? Needed? Possible to implement?
@cburniske any thoughts?
pkr
January 7, 2021, 8:49pm
42
Hi all,
Long time fan of ZEC, first time community member here on the Zcash forums.
Little bit of my background: been fascinated with the internet since the mid 90s. Got my start building progs in VB in the form of faders and scrollers for AOL chatrooms (mm, zerver, cerver, server, etc., https://web.archive.org/web/20010616223757/http://www.aol-files.com/downloads/people/parker.html ). Then acquired a cracked version of a Photoshop 5.5 and fell in love with building websites (although most were just basic JS, HTML, and some CGI via Newspro back then).
After that, I got more into building personal websites. Hipster or Homeless was a satirical version of Hot or Not (I see you eyeballin' my Huffy - Hipster or Homeless ) which got me my first job out of college by the former engineering head at Hot or Not, somehow ended up creating the 2girls1cup website and various other meme offshoot websites. Additionally, created /r/lifeprotips on reddit and was subsequently banned for setting an AutoModerator rule to only allow link-based submissions go through my domain lifeprotips(.com) in an effort to bring traffic to the website. I even pitched to YCombinator back in 2014-ish, was invited to the reddit offices to explore the expansion of the LPT brand through a mini video series, although was shadowbanned for my promotion tactic upon launching the website, and eventually had my account purged. Lesson from that is to never build on top of centralized platforms (even though I knew this from the start!)
In any case, I’ve also worked as an engineer (full stack but a focus on the frontend) for various tech companies in the bay area for the past 10 years.
I’m posting this in hopes to find someone else that would be interested to build a new private social network on the Zcash platform (although maybe we don’t market it as a “social network” as I’m a bit tired of that moniker).
I’ve spoken in the past to @holmesworcester and I really liked what he was doing with Zbay. I’ve also taken a look at ZECPages and it seems like there may be some cohesion between the two projects.
I truly think that there is no better time than now to start building on Zcash and take control of our privacy.
Cheers
9 Likes
Jgx7
January 7, 2021, 11:02pm
43
I have a project that is social media and currently utilizes stripe for a location based marketplace.
It would be great to replace stripe with a privacy based payment system to reduce transaction fees. But it needs backend / payment system with a stable coin. And I think swapping out of the stablecoin into zcash would be optional. Last, most people need an ability to cheaply ultimately convert into their local currency.
Is this feasible?
1 Like
Atomic Swaps b/w Bitcoin and Shielded Zcash?
I think this is a very important tool that needs to be implemented in the ecosystem. I spoke about this briefly in my MGRC candidacy post & am curious if it could be possible?
I reached out to Ruben Somsen who published “Succinct Atomic Swaps” & he wasn’t sure if it would be possible using this since he is not very familiar with Zcash but I’m hoping some more tech savvy folks on here could shed some light.
Here is the link to Ruben’s GitHub:
SuccinctAtomicSwap.md
## SAS: Succinct Atomic Swap
Works today with [single signer ECDSA adaptor signatures][0], or with Schnorr + MuSig.
Other than the explanation below, there's also a [diagram](https://gist.github.com/RubenSomsen/8853a66a64825716f51b409be528355f#file-succinctatomicswap-svg) and a [video](https://youtu.be/TlCxpdNScCA).
**Advantages:**
- Requires merely two on-chain transactions for successful completion, as opposed to four
- Scriptless, and one of the chains doesn't need to support timelocks
- Can be used for efficient privacy swaps, e.g. [Payswap][1]
This file has been truncated. show original
SuccinctAtomicSwap.svg
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="761px" viewBox="-0.5 -0.5 761 601" style="max-width:100%;max-height:601px;"><defs/><g><rect x="0" y="0" width="760" height="600" fill="#ffffff" stroke="none" pointer-events="all"/><path d="M 240 260 L 278.46 106.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 279.73 101.08 L 281.43 108.72 L 278.46 106.18 L 274.64 107.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 240 260 L 278.46 413.82" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 279.73 418.92 L 274.64 412.97 L 278.46 413.82 L 281.43 411.28 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 240 260 L 273.63 260" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 278.88 260 L 271.88 263.5 L 273.63 260 L 271.88 256.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="40" y="200" width="200" height="120" fill="#ffffff" stroke="#000000" pointer-events="all"/><rect x="50" y="225" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 260px; margin-left: 51px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in: 1 BTC Alice</div></div></div></foreignObject><text x="90" y="264" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">in: 1 BTC Ali...</text></switch></g><rect x="150" y="225" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 260px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">out: 1 BTC<br /><b>Alice & Bob</b></div></div></div></foreignObject><text x="190" y="264" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">out: 1 BTC...</text></switch></g><path d="M 480 420 L 517.15 345.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 519.5 341 L 519.5 348.83 L 517.15 345.7 L 513.24 345.7 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 480 420 L 517.15 494.3" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 519.5 499 L 513.24 494.3 L 517.15 494.3 L 519.5 491.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="280" y="360" width="200" height="120" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 420px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div>Abs. timelock 2 days (nLocktime)</div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><br /></div><div><br /></div></div></div></div></foreignObject><text x="380" y="424" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Abs. timelock 2 days (nLocktime)...</text></switch></g><rect x="290" y="385" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 420px; margin-left: 291px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in: 1 BTC Alice & Bob</div></div></div></foreignObject><text x="330" y="424" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">in: 1 BTC Ali...</text></switch></g><rect x="390" y="385" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 420px; margin-left: 391px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">out: 1 BTC<br /><b>Alice & Bob</b></div></div></div></foreignObject><text x="430" y="424" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">out: 1 BTC...</text></switch></g><rect x="280" y="40" width="200" height="120" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 100px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div> </div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><br /></div><div>Adaptor sig: reveals <b>secretBob</b></div></div></div></div></foreignObject><text x="380" y="104" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">...</text></switch></g><rect x="290" y="65" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 100px; margin-left: 291px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in: 1 BTC Alice & Bob</div></div></div></foreignObject><text x="330" y="104" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">in: 1 BTC Ali...</text></switch></g><rect x="390" y="65" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 100px; margin-left: 391px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">out: 1 BTC<br /><b>Bob</b></div></div></div></foreignObject><text x="430" y="104" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">out: 1 BTC...</text></switch></g><rect x="520" y="280" width="200" height="120" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 340px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div>Rel. timelock +1 day (nSequence)</div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><br /></div><div>Adaptor sig: reveals <b>secretAlice</b><br /></div></div></div></div></foreignObject><text x="620" y="344" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Rel. timelock +1 day (nSequence)...</text></switch></g><rect x="530" y="305" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 340px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in: 1 BTC Alice & Bob</div></div></div></foreignObject><text x="570" y="344" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">in: 1 BTC Ali...</text></switch></g><rect x="630" y="305" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 340px; margin-left: 631px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">out: 1 BTC<br /><b>Alice</b></div></div></div></foreignObject><text x="670" y="344" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">out: 1 BTC...</text></switch></g><rect x="520" y="440" width="200" height="120" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 500px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div>Rel. timelock +2 days (nSequence)</div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><br /></div><div><br /></div></div></div></div></foreignObject><text x="620" y="504" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Rel. timelock +2 days (nSequence)...</text></switch></g><rect x="530" y="465" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 500px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in: 1 BTC Alice & Bob</div></div></div></foreignObject><text x="570" y="504" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">in: 1 BTC Ali...</text></switch></g><rect x="630" y="465" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 500px; margin-left: 631px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">out: 1 BTC<br /><b>Bob</b></div></div></div></foreignObject><text x="670" y="504" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">out: 1 BTC...</text></switch></g><rect x="40" y="440" width="200" height="120" fill="#ffffff" stroke="#000000" pointer-events="all"/><rect x="50" y="465" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 500px; margin-left: 51px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in: 200 LTC Bob</div></div></div></foreignObject><text x="90" y="504" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">in: 200 LTC B...</text></switch></g><rect x="150" y="465" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 500px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">out: 200 LTC<br /><b>secretAlice & secretBob</b></div></div></div></foreignObject><text x="190" y="504" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">out: 200 LTC...</text></switch></g><rect x="280" y="200" width="200" height="120" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 260px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div>Abs. timelock 1 day (nLockTime)</div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><div><br /></div><div>Adaptor sig: reveals <b>secretAlice</b><br /></div></div></div></div></foreignObject><text x="380" y="264" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Abs. timelock 1 day (nLockTime)...</text></switch></g><rect x="290" y="225" width="80" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 260px; margin-left: 291px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in: 1 BTC Alice & Bob</div></div></div></foreignObject><text x="330" y="264" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">in: 1 BTC Ali...</text></switch></g><rect x="380" y="225" width="90" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 260px; margin-left: 381px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">out: 1 BTC<br /><b>Alice & Bob</b> OR<br /><b>Alice in +1 day</b></div></div></div></foreignObject><text x="425" y="264" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">out: 1 BTC...</text></switch></g><path d="M 542.5 137.5 C 492.5 137.5 480 175 520 182.5 C 480 199 525 235 557.5 220 C 580 250 655 250 680 220 C 730 220 730 190 698.75 175 C 730 145 680 115 636.25 130 C 605 107.5 555 107.5 542.5 137.5 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 248px; height: 1px; padding-top: 175px; margin-left: 481px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">This transaction is not strictly<br />needed, but allows Alice to<br />recover more efficiently if Bob<br />never locks up any LTC.<br />Note that this contains a script.</div></div></div></foreignObject><text x="605" y="179" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">This transaction is not strictly...</text></switch></g><path d="M 480 260 Q 520 260 505 240 Q 490 220 495 215 Q 500 210 512.5 215.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><rect x="280" y="20" width="200" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 30px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">Success transaction</div></div></div></foreignObject><text x="380" y="34" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">Success transaction</text></switch></g><rect x="280" y="180" width="200" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 190px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">Refund transaction #1</div></div></div></foreignObject><text x="380" y="194" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">Refund transaction #1</text></switch></g><rect x="520" y="260" width="200" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 270px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">Refund transaction #2</div></div></div></foreignObject><text x="620" y="274" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">Refund transaction #2</text></switch></g><rect x="280" y="340" width="200" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 350px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">Revoke transaction</div></div></div></foreignObject><text x="380" y="354" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">Revoke transaction</text></switch></g><rect x="520" y="420" width="200" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 430px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">Timeout transaction</div></div></div></foreignObject><text x="620" y="434" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">Timeout transaction</text></switch></g><rect x="40" y="180" width="200" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 190px; margin-left: 41px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">On-chain transaction BTC</div></div></div></foreignObject><text x="140" y="194" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">On-chain transaction BTC</text></switch></g><rect x="40" y="420" width="200" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 430px; margin-left: 41px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">On-chain transaction LTC</div></div></div></foreignObject><text x="140" y="434" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">On-chain transaction LTC</text></switch></g><rect x="30" y="40" width="240" height="120" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 238px; height: 1px; padding-top: 100px; margin-left: 32px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>1. </b>Sign and share all BTC transactions<br /> except the success transaction<br /><div><b>2.</b> Alice sends the BTC on-chain</div><div><b>3. </b>Bob sends the LTC on-chain</div><div><b>4. </b>Sign and share the success transaction</div><div><b>5. </b>Bob gives Alice secretBob</div><div><b>6. </b>Alice gives Bob her key ("Alice")</div><div><b>7. </b>Bob continues to watch the chain so he</div><div> can respond against refund attempts</div></div></div></div></foreignObject><text x="32" y="104" fill="#000000" font-family="Helvetica" font-size="12px">1. Sign and share all BTC transactions...</text></switch></g><path d="M 542.5 42.5 C 492.5 42.5 480 65 520 69.5 C 480 79.4 525 101 557.5 92 C 580 110 655 110 680 92 C 730 92 730 74 698.75 65 C 730 47 680 29 636.25 38 C 605 24.5 555 24.5 542.5 42.5 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 248px; height: 1px; padding-top: 65px; margin-left: 481px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Alice signed this transaction in<br />such a way that it's only valid<br />if Bob reveals secretBob</div></div></div></foreignObject><text x="605" y="69" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Alice signed this transaction in...</text></switch></g><path d="M 471 150 Q 520 140 505 120 Q 490 100 495 95 Q 500 90 512.5 89.3" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><rect x="35" y="330" width="210" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 370px; margin-left: 36px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>GOAL</b>:<br />Alice gets her BTC refunded<br />and reveals secretAlice...<br /><i>OR: </i>Bob takes the BTC<br />and reveals secretBob</div></div></div></foreignObject><text x="140" y="374" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">GOAL:...</text></switch></g><rect x="340" y="490" width="80" height="70" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 78px; height: 1px; padding-top: 525px; margin-left: 342px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 20px"><b>S</b>uccinct<br /><b>A</b>tomic<br /><b>S</b>wap</font></div></div></div></foreignObject><text x="342" y="529" fill="#000000" font-family="Helvetica" font-size="12px">Succinct...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://desk.draw.io/support/solutions/articles/16000042487" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>