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

Enhancing the Awareness, Utility, and Anonymity Set of Oxen - Part 10 - Cross-Platform Synchronization of Session Pro Status via ONS Mapping #50

Open
venezuela01 opened this issue Aug 10, 2023 · 0 comments

Comments

@venezuela01
Copy link

venezuela01 commented Aug 10, 2023

Enhancing the Awareness, Utility, and Anonymity Set of Oxen - Part 10 - Cross-Platform Synchronization of Session Pro Status via ONS Mapping

The ORC-8 discussion highlights a crucial challenge within the Oxen ecosystem: the coin's underutilization due to a limited number of daily transfers, which consequently diminishes Oxen's practical anonymity set.

This document extends the concepts detailed in Enhancing the Awareness, Utility, and Anonymity Set of Oxen - Part 7 - Batched Swapping and Graduated Burning of Session Pro Income.

In Part 7, the recommendation was for OPTF to accumulate fiat earnings from in-app purchases and then leverage these earnings to acquire Oxen from the market, thereby gradually reducing its supply with a goal of raising its price. However, Part 7 did not specify how to synchronize a Session Pro purchase on iOS with its recognition on Android and Desktop. This proposal fills that gap, offering a method for cross-platform synchronization of Session Pro status via ONS mapping.

Prerequisite: Oxen Wallet Integration in the Session Client

There are different approaches for generating the Oxen wallet private key within the Session Client. As depicted in the Session Standard: Multi-device Security Enhancement, it's vital to prevent different devices from possessing the same Oxen wallet to preserve the main device's credentials and ensure the design's security structure.

For synchronizing Session Pro status across platforms, it's necessary for multiple devices to share a common wallet. When both the Multi-device Security Enhancement and Session Pro status syncing features are active, each Session client should sustain at least two separate wallets. This proposal primarily focuses on the synchronization aspect of Session Pro status across multiple platforms.

Wallet Private Key Generation

An exclusive Oxen wallet, tailored for Session Pro status synchronization, will be integrated into the Session client. This wallet will inherit the same entropy as the Session account for private key generation. As a result, recovering the same Session account on a different device will also retrieve the associated wallet.

Session Pro Status Registration

To streamline Session Pro status registration, a new ONS mapping subtype, mapping::session_pro, is proposed.

We offer two ways to secure Session Pro:

  1. Direct Purchase: Users can directly secure an ONS mapping of the mapping::session_pro type to claim their Session Pro status. This mapping consists of a name_hash and an encrypted_value. The name_hash originates from Hash(session_subaccount_id||constant1), where the session subaccount adds a separation layer from the primary account and prevent any third-party to link the main account with any payment info. The encrypted value contains a specific value whose implications can be further studied. While this subaccount originates from the main account's entropy, it remains hidden at the interface level. The client manages the purchasing and registration process seamlessly, even though users are oblivious to this subaccount's presence.

  2. OPTF-Assisted Purchase: Alternatively, the OPTF can manage the ONS mapping procurement of mapping::session_pro for the user, post a fiat payment through the App Store. In this scenario, the user's Session client sends an unused address from its integrated Oxen wallet, alongside the registration information, which includes Hash(session_subaccount_id||constant1) and so on, to the OPTF server. The OPTF then concludes the ONS mapping purchase, assigns the newly-obtained Oxen wallet address as the mapping's owner.

Session Pro Status Verification

After registration, an external party can question a user's Session Pro status. This party will provide a random nonce to the user. The user will then utilize get_tx_proof to sign this nonce, sharing both the initial ONS purchase transaction ID and the related proof. The inquiring party will subsequently apply check_tx_proof to confirm the user's Session Pro status.

Session Pro Status Synchronization

If a user revives the same Session Account on different devices, both the related subaccount and Oxen wallet are consistently restored. Consequently, every device possesses the capability to claim its Session Pro status.

Conclusion

By using ONS as a method to register Session Pro status and enabling cross-platform sharing of the same Session Pro status, we also increase Oxen usage and enhance the anonymity set. In effect, we hit two birds with one stone.

@venezuela01 venezuela01 changed the title Enhancement of Oxen Awareness, Utility, and Anonymity Set: Part 10 - Cross-Platform Synchronization of Session Pro Status via ONS Mapping Enhancing the Awareness, Utility, and Anonymity Set of Oxen - Part 10 - Cross-Platform Synchronization of Session Pro Status via ONS Mapping Aug 11, 2023
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

1 participant