Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ORC-69 The Session X Coin (SEX) #38

Open
degenrocket opened this issue Aug 1, 2023 · 2 comments
Open

ORC-69 The Session X Coin (SEX) #38

degenrocket opened this issue Aug 1, 2023 · 2 comments

Comments

@degenrocket
Copy link

degenrocket commented Aug 1, 2023

ORC-69 The Session X Coin (SEX)

Table of Contents

  1. Terminology
  2. Intro
  3. Problems
  4. Solutions
  5. Integrate SEX into Session
  6. SessionX
  7. Branding
  8. Feedback

Note: links to different sections of the proposal don't work in Github issues, but the table of contents is useful as an overview of the proposal.


Terminology

OPTF - the Oxen Privacy Tech Foundation is the Australia-based organization behind Session, OXEN, and Lokinet.

Coin - a native asset of the blockchain (SEX, OXEN, XMR, ETH, BTC).

Token - an asset built on another blockchain (SENT, UNI, PEPE).

SENT - the Ethereum-based layer-2 token (ERC20) proposed in the ORC-8 #36 by the OPTF.

SEX* - the rebranded OXEN privacy coin within the ORC-69 design.

SessionX - the codename for the integration of SEX into Session.

Note: It's important to mention that in the ORC-69 we will refer to network's native coin as SEX to easily distinguish it from the SENT token (ORC-8 #36 ). However, the ORC-69 can be applied to OXEN without any meme-themed rebranding. In other words, the OPTF team or the community can implement the changes outlined in the ORC-69 proposal while keeping the OXEN name of the coin unchanged.


Intro

The Oxen Privacy Tech Foundation (OPTF) decided to move towards new ERC20 token SENT amids KuCoin's delisting of OXEN. Since KuCoin was the only exchange with somewhat meaningful trading volume, the project ended up in the situation when its flagship product Session is growing rapidly, while the backbone coin of the whole ecosystem is falling off the cliff.

Issuing Ethereum-based token SENT is only one of the possible solutions, so in this crucial moment it's important to evaluate various alternative paths to save the project.

Session, unlike other proprietary close source centralized web2 messengers, is a fully open source product with decentralized infrastructure based on various forks like Signal and Monero, so in the worst case scenario the community can always create another fork like it often happens in the open source world. OPTF-led and community-led versions can harmoniously co-exist together, targeting different audiences, and even have compatibility between networks and clients since we don't have to solve the double-spend problem when exchanging messages.


Problems

OXEN tokenomics cannot support the growing Session network

For a few years the whole network was running on the money of investors, but that can't last long since the market cap of OXEN is already very low and soon there will be not enough liquidity to absorb the selling pressure of node operators, who are constantly selling rewards to cover the losses from staking an inflationary asset. In other words, a drastic change is required to save the sinking ship.

OXEN investors are screwed

While many cryptocurrencies have significantly dropped in price since all-time highs of the previous bull market, they have partially recovered in the last few months. OXEN, on the other hand, has not only lost 98% from its all-time high, but is also trading at its all-time low.

Not enough resources to develop a privacy coin

The OXEN team doesn't have enough resources to focus on the privacy coin in order to stay competitive in the privacy ecosystem. Low activity on the OXEN network leads to degraded privacy due to limited anonymity set. I.e., less users equals less privacy.

Regulatory pressure on privacy and the freedom of speech

Many exchanges have been lately forced to either completely delist privacy coins from their platforms or to restrict access to such coins to users from certain jurisdictions. Open source privacy protocols and mixing services have been sanctioned (Tornado Cash, Blender), developers and alleged maintainers have been arrested (Alex Pertsev, Roman Sterlingov).


Solutions

Privacy by default.

In the ORC-8 #36 the OPTF team proposed the creation of ERC20 token SENT on the transparent layer-2 scaling solution of the Ethereum blockchain, which means that users will have to be knowledgable enough to use XMR -> SENT bridges or various privacy protocols in order to preserve their privacy.

That approach will mean that the vast majority of users will not have default privacy, but would rather be identified since most of them will use either fiat-based payment methods or tokens acquired from KYC-ed crypto on-ramps in order to buy ONS usernames, unlock Session Pro features, buy stickers, etc. In other words, while advanced users will still have an option to use Session in a private way, the majority of people acquiring ONS usernames will be doxxed, similar to how other centralized messengers require users to sign up with a phone number, which for most users is attached to their identity.

What's even more scary is the precedent of sacrificing privacy for potential funding, which can lead to serious consequences in the future. For example, if Session node operators will be rewarded for running the infrastructure with transparent ERC20 tokens, it will be easier to deanonymize them. That will make network participants more vulnerable to coercion from adversaries, opening the door for potential censorship in the future. Session node operators can also be coerced to store all relayed messages following the 'harvest now, decrypt later' strategy.

The OPTF team used the privacy community to bootstrap its product by promising the most private non-p2p messenger on the market, so it's important to try to keep the network alive without compromising on the core values of the community. Dropping privacy by default would allow regulators to go after a few privacy folks instead of the whole ecosystem. As countries across the world are rapidly moving towards the 1984 future, there is, obviously, a chance that regulators will decide to nuke the whole project, but that will involve much higher reputational risks than outlawing various privacy plugs like it happened with Tornado Cash or Blender. If Ethereum and Bitcoin were private by default, then regulators would not be able to sanction these blockchains without risking being ousted for overstepping authority.

Thus, all the solutions to save the network should preserve privacy by default.


Handling regulatory pressure

Regulatory pressure can be mitigated by:

  • moving to friendly jurisdictions,

  • working with bridges that focus on privacy coins,

  • hiring ETH-XMR atomic swap devs (@dimalinux, @noot) to work on SEX,

  • funding anonymous/pseudonymous code contributions via bounties,

  • developing mechanisms to bypass Google Play and App Store (in the worst case scenario, the iOS support might be dropped since it's hard to install a censored app without jailbreaking an iPhone, so the focus should be on the Android-based phones).


SENT monetization strategy

While this proposal is focused on SEX, it's important to briefly mention other possible approaches to save the network.

The OPTF proposed a highly complex system with additional Ethereum-based layer-2 ERC20 token SENT that includes reward pools, snapshots, and monetization of the Session product via selling ONS usernames, Pro features, and "Network Enterprise" and "Session Enterprise".

Let's briefly look at various issues that such a strategy can create:

Not enough revenue

I doubt that charging for ONS usernames and Session Pro will generate enough revenue stream to sustain a highly decentralized infrastructure.

Dependence on Google, Apple, and the banking system

Another serious issue is that bypassing Google Play and App Store by selling premium features for SENT or other cryptocurrencies won't work due to strict policies of Google and Apple stores. We've already seen how these corporations banned the apps that tried to bypass their payment systems or coerced them into removing such options with Fortnite being the most famous one, and zaps (bitcoin tipping) within iOS Nostr client Damus being the latest example.

Relying on Google's and Apple's in-app purchase mechanisms and fiat-based payment methods as the main revenue stream will put not only the OPTF, but the whole decentralized network in full dependence on the fiat-based traditional financial system and two regulated centralized corporations. Thus, regulators and these corporations would be able to turn off the revenue stream and destroy the network during vulnerable times. In that case, Session would have to rely solely on investors buying the SENT token, but that strategy can only work during the bull market.

Side note: please correct me if I understand it wrong, so I can edit this section.

Easy to coerce to drop support for privacy coins

Even if privacy-focused payment options like Monero will be accepted for ONS and other premium features alongside with transparent payment methods, such privacy options will probably represent a small portion of the total revenue. That will make it easier for regulators and corporations to coerce the OPTF team to completely drop support for privacy payment methods as it's currently happening with centralized exchanges, which don't want to fight this battle since the majority of trading volume and trading fees come from transparent tokens and coins.

Potential dependence on VCs

Of course, as the OPTF tries to give up on a privacy coin and unlock an easy access to Ethereum's liquidity, they might attract VC money, but that will be a temporary solution that will come with many strings attached, rather than be a long-term sustainable solution.

Potential dependence on big regulated companies

The ORC-8 #36 didn't provide much details about "Network Enterprise" and "Session Enterprise", but I assume that these revenue streams will not prioritize privacy and censorship-resistance. That would also increase dependency on the big regulated companies, adding more attack vectors.

Reliance on a centralized entity to distribute rewards

Lastly, Session node operators would have to rely on a centralized entity to convert collected funds into SENT and then send them to the rewards pool, which opens the door for all sorts of problems.


Increase demand for SEX

Instead of creating a new transparent token with complex tokenomics and centralized choke points, the ORC-69 proposes to focus on increasing demand for already existent privacy coin OXEN (called SEX in this proposal) by working on 3 major aspects of the asset: means-of-exchange, store-of-value, speculation.

Overview:

  • SEX must be integrated into the Session app.

  • All Session node operators must be rewarded with SEX.

  • SEX must achieve a high market capitalization to protect the network from well-funded adversaries.

  • SEX can stay inflationary (like current OXEN) or become deflationary via various burning mechanisms.

  • The final coin ticker symbol can be SEX, DAST, SENT, OXEN, or something else.


Means-of-exchange

The best approach to significantly increase demand for SEX is to focus on the utility of SEX.

As more companies from Telegram to Starbucks go into the money business, people will get more accustomed to transferring funds inside non-financial apps. There is a great value in having one easy-to-use app for private communication and private transactions. Over time Session can become the non-dystopian privacy-oriented version of the Chinese WeChat super-app, something that Status.im has been working on for years.


Store-of-value

If people will use SEX on daily basis, they will get used to storing some SEX overnight, meaning that SEX will slowly become the store-of-value. (Starbucks model)

If people will know that they can buy certain goods and services only with SEX, they will become comfortable accumulating SEX. (Monero model)

If SEX achieves high market cap, the community will be able to hire a PMC to convince other communities to use SEX. (US dollar model)


Speculation

Rebranding is an optional step, which can be explored if other methods to save the network won't work.

If OXEN will rebrand its ticker symbol to meme-themed SEX, then that will unlock the whole new stream of investors.

The coin can go viral on TikTok-like apps and attract a lot of speculative attention from younger retail investors during the bull market since, unlike other memecoins, SEX will have strong utility and a product with millions of users. For the comparison, PEPE was launched 3 months ago and has the market cap over $500 million with no product and no utility, while OXEN was launched 5 years ago and has the market cap of around $3.5 million, while providing infrastructure for the most private messaging app on the market with millions of downloads. The market cap of TURBO, a memecoin created with ChatGPT around a new mascot by an artist without any coding experience, is twice larger than the market cap of OXEN even after losing 97% from its all-time high.

Clearly, spicing the brand with some memes can attract many new investors.

The amount of memes is infinite, here are a few ideas to play with:

  • SEX me!

  • Join the SEX team.

  • Choose SEX, not CEX.

  • Download Session and get SEX tonight.

  • Session rewards developers with SEX. We're hiring!

Since at the start SEX will not be available on most centralized exchanges (CEX), that will push new investors to install the Session app in order to get SEX with just a few clicks using in-app bridge integrations (more on that in the SEX bridges section). Users should also be suggested to join the dedicated public SEX group, increasing the chances of them starting using the app for communication.

Side note: I've personally introduced many friends to Session over the last few years, but it's a big challenge to motivate them to keep using the app when you're literally the only person they interact with using the app. Things would have been much easier with the SEX group, where people can get a daily dose of sex-themed memes.

  • They came for SEX, but stayed for memes.

Integrate SEX into Session

High-level overview

Now the most important part is how to integrate SEX into Session, giving users an opportunity to easily send messages and transfer value in a private way within one app.

The infrastructure for this feature is already in place, but the pieces of the puzzle have to be put together in very UX-friendly way.

  • The SEX wallet should be integrated into the Session app, so synchronising the client will retrieve all new Session messages and SEX transactions.

  • Session and SEX private keys should be derived from the same entropy, allowing users to save only one mnemonic seed phrase.

  • Users should be able to send messages and SEX to the same ID or a username.

  • Users should be able to send SEX to each other within the chat window.

  • Users should be able to on/off-ramp to and from SEX with a few clicks within the app.

  • (Optional) Session should support multiple cryptocurrencies within the app in order to make SEX on-ramping experience even better.

While this sounds very ambitious, most of the changes can be implemented within a few months. It looks like Session fork BChat has already implemented BDX transactions inside the chat window (I didn't test that, though, and according to the article the UX has too many unnecessary steps).


SEX Name Service

At the moment, the user experience is very confusing since there are different IDs/addresses for sending Session messages and transferring OXEN coins.

In order to become a privacy-focused super-app, it's very important to allow users to send messages and SEX to the same ID/username.

Currently, the ONS system allows users to link the Session ID and OXEN address to the same username, so the infrastructure is already there. However, the system should be tweaked to allow linking Session IDs and SEX addresses to the same username during registration process without paying any fees since new users won't have any SEX to pay for the ONS username.

Allowing users to clog the blockchain for free will make the network more vulnerable to SPAM attacks, but that can be mitigated with a small amount of proof-of-work done during the registration process.

The new system can be called ONS, SEX Name Service (SNS), or something else. In can be based on the layer-1 or layer-2.


SEX UX

Registration

Here is an approximate user experience during the registration process:

  • Alice opens the app for the first time.

  • Alice chooses a unique username or proceeds with auto-generated string or a 3-word name.

  • Alice backs up the seed phrase.

That's all, Alice can now send and receive messages and SEX. In other words, the onboarding experience should be as simple as it is now.

Additional suggested steps for better security:

  • Alice swipes the screen or adds any other user input during the seed generation process to increase the entropy instead of relying solely on the default pseudo-random number generator.

  • Alice optionally adds a passphrase on top of the original entropy, better know as the 25th word. Although, since SEX/OXEN is the fork of Monero, the passphrase would be considered the 26th word. (The extra word can also be used to unlock the hidden multi-accounts feature within the same profile on the same device).

Sending SEX

Here is an approximate user experience of sending SEX inside a chat:

  • Alice opens a chat with Bob.

  • Alice clicks a SEX button.

  • Alice chooses the amount of SEX and confirms the transaction.

  • Alice and Bob can see the pending transaction in the chat.

  • After the network confirmation, the transaction is marked as confirmed.


Technical implementation

Here is an approximate implementation:

  • Alice installs the app and opens it for the first time.

  • The app generates the entropy 10110010....

  • The entropy is used to generate Session and SEX key-value pairs.

  • Session ID is 05123....

  • SEX address is L7sex....

  • Alice chooses unique username Alice69 (or clicks a "generate" button).

  • The app does proof-of-work 00000alice6900005123... for Session ID.

  • The app does proof-of-work 00000alice69000L7sex... for SEX address.

  • The app submits SNS username Alice69 and Session ID 05123... and proof-of-work 00000alice6900005123... to the network to link the Session ID to the SNS username.

  • The network confirms SNS, while Alice is exploring the app or backing up her seed phrase.

  • After SNS is linked to the Session ID, the app submits SNS username Alice69 and SEX address L7sex.... and proof-of-work 00000alice69000L7sex... to the network to link the SEX address to the SNS username.

Notes:

  • If Alice opens her SNS section (e.g., to share a QR code) before SNS has been confirmed on the blockchain, she will see the message "Your SNS is still confirming, please wait..."

  • To make sure that non-savvy users don't send SEX to wrong addresses, Session ID and SEX address should be somewhat hidden from the UI or greyed out, but still be accessible to advanced users.

  • If Alice tries to complete the registration process while being offline, she will get the message like "You cannot register your username while being offline. You can still access your Session ID and SEX address".

  • Ideally, linking the Session ID and the SEX address to the SNS username should be done in one transaction, but the current infrastructure requires two separate transactions.

Alternative design

Another approach is to link SEX address to Session ID via SNS.

  • Session ID is 05123....

  • SEX address is L7sex....

  • The app does proof-of-work 0000005123...000L7sex... for SEX address.

  • The app submits Session ID 05123... and SEX address L7sex.... and proof-of-work 0000005123...000L7sex... to the network to link the SEX address to the SNS username which is equal to Alice's Session ID.

Now Bob can send messages and SEX to 05123....

This design simplifies the registration process, but Alice and Bob have to use long strings to exchange SEX.


SEX bridges

Users should be able to easily get SEX within the Session app with just a few clicks using various centralized and later decentralized bridges. At the start, the SEX team should directly approach popular exchanges like ChangeNow, FixedFloat, and others in order to convince them to add support for SEX. Many exchanges already support Monero, so adding SEX will not be hard. KYCNOTme has a long list of privacy-focused Tor-friendly exchanges with Monero support.

Then these bridges should be integrated into the Session app, so a user should be able to get SEX within a few clicks:

  • open "Balance" and click "Top up",
  • copy a Monero/Bitcoin/Ethereum address,
  • open crypto app and send XMR/BTC/ETH to copied address,
  • wait a few minutes and enjoy SEX.

It can be negotiated with the bridge that the small amounts of SEX will be sent instantly after the XMR/ETH transaction is detected in the mempool.

Side note: does anybody remember the good old days of xmr.to with instant BTC transfers after sending XMR?

A similar few-clicks experience has already been implemented in CakeWallet, which allows swapping to and from Monero within the app via various exchanges or even over the Tor connection via exchange aggregators like Trocador.

In the future, Session can add support for more wallets, including Bitcoin, Ethereum, and multiple ERC20 tokens, making it even easier to swap various cryptocurrencies for SEX without leaving the Session app.


SessionX

In the last few years many of us used Session, joined its public groups, invested in OXEN, contributed code, submitted ideas, reported bugs, run nodes, created videos, wrote articles about the project, and introduced Session to friends and relatives due to a unique set of characteristics that distinguished Session from other messengers on the market.

Besides strong privacy and an ability to create an account without any verification, the Session project relies on a decentralized open source infrastructure. Thus, a well-funded adversary cannot easily hijack the project like it happened with WhatsApp, Wickr, Steem, and other projects that started with a cool idea, but then sacrificed core values after being bought by a corporation or a wealthy individual.

Right now we are in a very interesting moment when a large portion of the community is unsatisfied with the push from the privacy coin towards a transparent token and a very different monetization strategy, but at the same time everybody understand that something has to be done in order to save the project we all love.

Hopefully, we can find together a solution that doesn't sacrifice on core values and suits both the privacy community and the OPTF team.

If at some point in time, the OPTF's vision of the future of the project will significantly deviate from the community's vision, then the community can consider forking options.

SessionX is a proposed codename for the integration of SEX into the Session app either by the OPTF team or by the community.

If the OPTF will pass on SEX, then SessionX can be used as a codename for the potential community-led version of the project. Although, I'm not sure whether the community-led version will be able to use the "SessionX" name for the official branding due to legal issues.


Branding

As mentioned above, the OXEN coin can be integrated into the Session app according to this proposal without any rebranding of Session, OXEN, and Lokinet.

However, here are some examples of a rebranded version of a network name, app name, coin name and its symbol.

The OPTF-led version:

  • Session

  • Sexynet - rebranded Lokinet.

  • Sexinet - alternative version for better SEO.

  • The Session X coin (SEX) - bad SEO, good memes.

  • The SEX network - bad SEO, good memes.

The community-led version:

  • SessionX

  • DarkSession

  • Sexynet - rebranded Lokinet.

  • Sexinet - alternative version for better SEO.

  • The SessionX coin (SEX) - bad SEO, good memes.

  • The DarkSession coin (DAST) - good SEO, bad memes, potential misspelling due to 'dust'.

SessionX vs DarkSession

SessionX will be associated more with the sex industry rather than with illegal drugs and money laundering, which will reduce attack vectors from the mainstream media.

DarkSession would fit into the emerging privacy-focused lunarpunk ecosystem of similar-brander projects like lunarDAO (funding), DarkFi (L1 blockchain), and DarkVegas (memes).


Feedback

If you don't have a Github account, then there are alternative options to leave your feedback and share your ideas:

Session: degenrocket

Session groups: OXEN, Session, Crypto.

Nostr (using a Nostr signing key).

DegenRocket (using an Ethereum private key or a guest account).

@venezuela01
Copy link

Alice optionally adds a passphrase on top of the original entropy, better know as the 25th word. Although, since SEX/OXEN is the fork of Monero, the passphrase would be considered the 26th word. (The extra word can also be used to unlock the hidden multi-accounts feature within the same profile on the same device).

Ledger implements a user-defined passphrase with 8 to 10 digits, this is safer than a one word approach, as it could be easily brute forced, in case Alice's Session private key is unfortunately compromised.

@degenrocket
Copy link
Author

Ledger implements a user-defined passphrase with 8 to 10 digits, this is safer than a one word approach, as it could be easily brute forced, in case Alice's Session private key is unfortunately compromised.

Yes, the user-defined passphrase is usually referred to as the 25th word on most coins even though its length can be up to 50 characters (Trezor) or even 100 characters (Ledger, ColdCard).

I'd argue that in the vast majority of cases the 25th word won't protect from a targeted attack that involves the extraction of user's initial entropy simply because most users won't add a long enough passphrase to prevent brute forcing.

Instead, the 25th word has a different purpose:

  • It grants users plausible deniability,

  • It adds an extra security layer on top of a pseudo-random number generator, significantly reducing chances of losing funds if a vulnerability will be found in the wallet's key generation process (Profanity, CakeWallet) since adversaries will have to perform extra computations for each generated seed phrase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants
@degenrocket @venezuela01 and others