<p></p>
<blockquote>
<p><em>This is a Bisq Network project. Please familiarize yourself with the <a href="https://bisq.wiki/Project_management" rel="nofollow">project management process</a>.</em></p>
</blockquote>
<h2>Description</h2>
<p>Define architecture and interfaces for the protocol layer with the requirement to support multiple protocols and potentially external protocls (e.g. farcaster).</p>
<h2>Rationale</h2>
<p>To support multiple contract execution protocols (asset trades, loans,...) we need an architecture which allows different protocol implementations to be used.<br>
Asset transfer and security are considered as separate aspects. They can be combined like in the current Bisq protocol or atomic swaps or be decoupled like in an off-chain protocol using BSQ bonds or reputation for security.</p>
<h2>Criteria for delivery</h2>
<ul>
<li>A proposal for the architecture and basic interfaces</li>
<li>A prototype demonstrating the feasibility to support different types of protocols (mocked and just very high level). Integrating external protocols (farcaster) is not required</li>
<li>Proposal how to integrate external protocols (farcaster)</li>
</ul>
<h2>Measures of success</h2>
<p>The provided results are considered sufficient to be used for futher refinements .</p>
<h2>Risks</h2>
<ul>
<li>No solution found</li>
<li>No sufficient progress</li>
<li>Quality of proposed architecture insufficient</li>
<li>Solution does not fit goals or constraints of overall project</li>
<li>It turns out the challenges are too high and not realistic to be solved within Bisq's resource constraints (not really a risk for that project but for the overall project, but better to fail fast if that is the case)</li>
</ul>
<h2>Tasks</h2>
<p>-[ ] Design architecture<br>
-[ ] Write up proposed solution<br>
-[ ] A prototype demonstrating the application for different types of protocols (all mocked and just high level)<br>
-[ ] Proposal how to integrate external protocols (farcaster)</p>
<h2>Estimates</h2>
<p>This investigation should be scoped from effort and time. It will likely require further interations before we get ready for implementing it.<br>
So this should be seen as a first shot to get a better understanding of the challenges and fail fast if it turns out the challenges cannot be solved within our resource constraints.<br>
I think 4 weeks for 1 contributor should not be exceeded. According to that the contributor should post their expected compensation.</p>
<h2>Notes</h2>
<p>A main challenge will be how we support external protocol implementations (e.g. farcaster project in Rust). To be able to hook into those instead of re-implementing those protocols and infrastructures in Java would be good.</p>
<p>There should be a close feeback loop with the contributor working on:<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="871097182" data-permission-text="Title is private" data-url="https://github.com/bisq-network/projects/issues/52" data-hovercard-type="issue" data-hovercard-url="/bisq-network/projects/issues/52/hovercard" href="https://github.com/bisq-network/projects/issues/52">#52</a></p>
<p>The protocol can be modeled as a finite state machine (likely it will require a hierarchy of FSMs). Farcasters seem to use a <a href="https://en.wikipedia.org/wiki/Petri_net" rel="nofollow">Petri net</a>. I am not familiar with that but might be worth to look into.</p>
<p>Formulating current Bisq protocol as RFC as an example protocol might be useful. But not sure if required/helpful at that moment. But if anyone wants to work on that would be a good to have. Can be done by another contributor and be seen outside of the scope of that project.</p>
<p>Examples of protocol we should be able to support:</p>
<ul>
<li>Current Bisq trade protocol on different blockchains (BTC, LTC, Liquid, ZCash,...)</li>
<li>LN based protocols (e.g. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="806252374" data-permission-text="Title is private" data-url="https://github.com/bisq-network/proposals/issues/312" data-hovercard-type="issue" data-hovercard-url="/bisq-network/proposals/issues/312/hovercard" href="https://github.com/bisq-network/proposals/issues/312">bisq-network/proposals#312</a>)</li>
<li>Atomic crosschain swaps based on adapter signatures (e.g. <a href="https://github.com/farcaster-project">https://github.com/farcaster-project</a>, <a href="https://github.com/comit-network/xmr-btc-swap">https://github.com/comit-network/xmr-btc-swap</a>)</li>
<li>Atomic crosschain swaps based on HTLC</li>
<li>Loans using Liquid covenants (e.g. <a href="https://github.com/comit-network/waves">https://github.com/comit-network/waves</a>)</li>
<li>BSQ bond based protocols. Transfer can be off-chain. Secuerity is provided by BSQ bond.</li>
<li>Reputation based protocols. Transfer can be off-chain. Secuerity is provided by a variety of options to demonstrate reputation (e.g. using account age witness, useing social media reputation,...).</li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/projects/issues/54">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNTCJAGTOUZ7CBNTWMDTLGA7LANCNFSM432HLIKQ">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNU76ELDMYRJMIG6AQ3TLGA7LA5CNFSM432HLIK2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4M7NRY2Q.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/projects/issues/54",
"url": "https://github.com/bisq-network/projects/issues/54",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>