Revisiting the initial Safecoin Design for native Token

I’m just coming back to this thread.

If you want advice from someone in our team, are any of you in a position to condense some sort of design for review? I’m sorry, but it’s going to be pretty difficult for me to read through this whole thread and catch up, and I probably wouldn’t be best positioned to review or address the queries.

However, I can take ownership in terms of trying to get it to the right person and get a response on it.

13 Likes

Imho rejoining shouldn’t be possible… It leads to longer validation chains (split → rejoin → split → rejoin → split ->…) and therefore makes validation harder…

… Transferring large amounts of coin with singled TX should be done by bundling them into coin collections… Not by joining them (and the recipient needs to traverse all the joined token then anyway too to validate them … So it only reduces the work on sender side - not on recipient side… )


I think step one would be ownership of mutables to enable NFT, a better name system or easy to validate 3rd party token on top of autonomi - since you already set up an environment testing this you are most certainly the most qualified person to

@Traktion

The need for ownership to become a network object to be able to transfer large amounts of ownership with a singular swap then would be a separate question I guess ..? What do you think? @Traktion

4 Likes

Thanks @chriso!

I want to develop the above branches a little more, just to complete the basic POC. It would be great to get some team eyes on it at the point, as it should be pretty focused.

The code will cover separating owner from address and allowing owner transfers. I’m hoping I’ll have that working tomorrow in rough form.

7 Likes

Yes, I think so. One step at a time, etc.

I’m sure a graph entry style structure could link a bunch of operations together, with some sort of transaction ID.

I suspect the actual transfers could happen async in a non-atomic way. As long as they all arrive within a short time window, it would seem useable. It would be harder to check that the transfer was fully complete, mind.

Definitely worth some deeper thought, once we understand the tools we have available better.

3 Likes

OK, thanks.

When you have something you want us to look at, tag me here and I will follow it up and try and get it in front of someone.

To attempt to use one sentence to summarise things: you want to use an owner’s key to address mutable data types, and you have other ideas that could lead to more flexibility for these types?

2 Likes

To summarise, it would be using 2 keys instead of 1.

The first key would be for ownership, with the second key for defining the address. So, it decouples who owns the data from where it lives.

This then frees up the potential of changing the owner of something, without changing the address, i.e. a mutable data transfer from one one person (key holder) to another.

The second public key (address) would still be derived from a private key, but it doesn’t define ownership. Instead, it becomes a convenient way to derive a public key, based on a seed phrase. This ‘private’ key can then be public, allowing others to define new public key / seed words as needed (handy for key/value stores, etc).

4 Likes

OK thanks.

My feeling would be it would probably be best for Anselme to look at this. If you let me know when you have that work done, I can try get him involved.

10 Likes

It would be nice to be able to return a token to its original combined state. So then you could destroy all the validation chains (except maybe one) since it is whole again.

Without any recombination then over time the tokens will tend towards the lowest most often occurring common denominator. Maybe in the first year or two it would be 0.01 token and after 2 more years it could be 0.000001 of a token and after ten years its nanos and 15 years like 10^-12 as micro tipping becomes common place.

Can you imagine a person/company that receives millions of micro transactions a month then trying to use their many ANTs worth of micro transactions? It’d take the receiver week/months to validate maybe 100 million micro amounts of token. Some 10 micro ANT token and some 1 micro ANT token transaction etc.

This won’t happen quickly but without recombination of some sort we will see those with larger denominations breaking them up to give milli to micro amounts to tip people who are then the collectors of these tiny denominations. Eventually they will pay some one else with them. But still a small number with lots of the tiny amounts while others continue to break up their amounts to hand out the micro transactions.

2 Likes

true - you’re ofc right there - but hard to imagine that all pieces of the same coin would ever meet again … maybe then the breaking up systematic is a straightforward one but not the right one …?

full ANT being those owned objects in the network … and some kind of service where you can exchange a full token against something else that’s fractions …? and those fractions can then be exchanged for full token again ..?
Max-Supply of full ANT is limited by design … for the bi-directional exchangeable fractions we’d need a different mechanism …

2 Likes

Maybe like notes issued. Different denominations from the beginning.

so many of each denominations

  • 100 ANT
  • 10 ANT
  • 1 ANT
  • 0.1 ANT
  • and so on

This would limit the total number ever in existence and people could provide an exchange service if we had atomic exchanges. You send me 10 x 0.1 ANT and I send you 1 ANT. No splitting or rejoining, just simple swapping like people do with coins and notes.

Limit the largest to like 100 ANT so there will not be a shortage because you made a 1 billion ANT denomination, or 100 Million or 10 Million. Maybe extreme cases but even 100 ANT maybe too large if we get 1 billion people using Autonomi.

The actual split will be important, and do we increase native so that 1 ERC20 ANT is 10 Native ANT. That way every human could at least in theory own 1 ANT. The actual total supply is just figures really as long as its proportional to MAID & ERC 20 ANT

3 Likes

true - one could think about reserving a certain address space for possibly later needed splits … just in case.

ooooh - or maybe we really would allow recombination (for the same coin) and there then would be marketplaces to swap part-token 1:1 for people to get parts of the same coin again to recombine.

splitting denomination by address space …

own address space for native token.

token0 occupies addresses:

1 + 10 + 10^2 + … + 10^18 == 1_111_111_111_111_111_111

so < 2e18 addresses needed

total token supply is 1.2e9

so <2e9

in total we’d need < 4e27 address spots as theoretical max

which is way way smaller than the address space of 10^77


(somehow I think maidsafe mentioned that solution in the past already … I don’t think this is really my own idea …)

so address 1-1.1111…e18 would be the first coin.

if broken up into pieces the first address would be marked “broken-up” and therefore the next 10 addresses are valid coin accounted to the previous owner of the first full coin … for recombining it you need to own all of the pieces of one fraction which enables you to stitch them together to one larger denomination again …

for validating that a part-coin is genuine you need to check the larger denominations if they’re marked “broken-up”. you could even group full coin together as 100ANT-Note if their addresses are in consecutive order …?


ps: we’d need to prevent people from using this splitting technique to spam a certain location and increase fullness of the network there … but I guess there’d be techniques to mitigate those risks … making every split cost something … addressing the space in reverse bit order so it has an order but “consecutive order” doesn’t mean it’s all at the same location in the network …

2 Likes

As you said and was always the problem with token as a data object, even back in the original days. If you have milli and micro ANT then it will be almost impossible to be able to put back together one token

That is why i suggested that instead of tracking splits and having multiple chains for one token, to have just it already split into separate units (denominations) and then you only have to keep track of sending address and receiving address (via keys for ownership I guess)

I don’t think there is a suitable solution to this unless there is a charge. But what do you charge to split 10^-17 into 10 x 10^-18 without people losing at least 10% of the split to the fee.

2 Likes

10^-18 is a dumb number anyway - in every reality - people should loose at least 10% on this operation :smiley:

1 Like

I had a weird and somewhat radical idea. Discussed with AI for a while and came up with this overview of it:

Summary

OneToken Technical Theory: Mechanisms and Security

Introduction

The OneToken concept represents a novel approach to value representation within the Autonomi Network, a decentralized data and communications infrastructure prioritizing privacy and autonomy. Unlike traditional tokenomics that rely on discrete, fungible units of value, OneToken abstracts ownership as a percentage of the network’s total abstract resource, conceptually fixed at 100.000000% across all participants. This technical paper explores the theoretical underpinnings of OneToken, focusing on its general operational methods and robust fraud prevention mechanisms. Designed for scalability and simplicity, particularly in resource-constrained environments like IoT and edge computing, OneToken offers a minimalist cryptoeconomic framework for resource coordination. This document aims to provide a clear, technical understanding of how OneToken functions and secures transactions without a real-time global total check, ensuring integrity in a decentralized system.

General Methods

Percentage-Based Ownership Model

At the core of OneToken is the representation of value as a proportional share of the network’s total resource, rather than discrete token units. Each account holds a fractional percentage (e.g., 0.0045%) of the conceptual 100% total, which represents the entirety of the network’s abstract value or utility, such as access to data storage capacity. This model eliminates the need for supply management—no minting, burning, or divisibility rules are required—simplifying accounting to a single number per account. Initial shares can be created through a burn mechanism of Autonomi Network Tokens (ANT), where users burn ANT to acquire a corresponding percentage of OneToken ownership, facilitating a transition or integration with existing systems. Ownership percentages are stored and managed using high-precision fixed-point arithmetic (e.g., 8-10 decimal places) to ensure accurate representation of minute fractions, critical for microtransactions in environments like IoT networks.

Transaction Mechanics and Universal Transfer Format

OneToken transactions are designed for uniformity and efficiency, using a single transfer format for all value movements, whether voluntary sharing between users or payments for services like data storage. Each transaction is a signed message with the following structure:

  • from: Sender’s address, derived from a cryptographic keypair in an infinite XOR-space for collision resistance.
  • to: Receiver’s address, similarly derived.
  • delta_percent: Percentage transferred (e.g., “0.000321%”), in fixed-point notation.
  • nonce: Monotonically increasing counter per account to prevent replay attacks.
  • signature: Cryptographic signature (e.g., ECDSA or Schnorr) verifying sender authenticity.
  • reason (optional): Metadata for context (e.g., “store_chunk:QmXYZ…”).

This universal format ensures that all economic interactions follow identical rules, reducing complexity compared to systems with multiple transaction types or smart contract logic. Transactions adjust the sender’s and receiver’s percentages directly, with no intermediate token tracking.

Stateless and Localized Validation

OneToken operates on a stateless design, avoiding a real-time global ledger or enforced total sum of percentages. Validators—nodes within localized groups of the Autonomi Network—process transactions using local state data. Validation involves three lightweight checks:

  1. Signature Verification: Confirming the transaction’s signature matches the sender’s public key.
  2. Balance Check: Ensuring the sender’s local state reflects ownership of at least the delta_percent via distributed hash tables or local storage.
  3. Nonce Validation: Verifying the nonce is the next expected value for the sender’s account, rejecting duplicates or out-of-order transactions.

This localized approach enables parallel processing, as validators handle transactions independently without network-wide consensus, enhancing scalability for high-throughput scenarios. Truncation of fractional percentages too small to represent ensures no inflation occurs, accepting minor drift below 100% as a passive deflationary feature.

Operational Flow

The operational flow for a OneToken transaction is streamlined for efficiency:

  1. Initiation: A user constructs and signs a transaction with their private key, specifying recipient and percentage.
  2. Broadcast: The transaction is sent to relevant validators based on XOR-space proximity or section assignment.
  3. Validation: Validators perform local checks (signature, balance, nonce); if successful, they update local state for both accounts.
  4. Confirmation: Outcome is communicated asynchronously to the user, confirming new ownership distribution without block confirmations.

This flow minimizes latency and computational overhead, leveraging the Autonomi Network’s decentralized topology for resilience and speed, critical for resource-constrained devices.

Fraud Prevention Without Global Totals

Core Security Mechanisms

OneToken’s security model prevents fraud at the transaction level without requiring a global total check for the conceptual 100% ownership, focusing on cryptographic integrity and local validation. Key mechanisms include:

  • Cryptographic Signatures: Each transaction is signed with the sender’s private key, ensuring only the legitimate owner can authorize a transfer. Validators reject invalid signatures, blocking forgery or unauthorized access.
  • Nonce-Based Ordering: A unique, increasing nonce per account prevents double-spending and replay attacks. Validators store the last used nonce locally, rejecting transactions that don’t match the expected sequence, ensuring each transfer is processed once.
  • Local Balance Validation: Validators check the sender’s percentage ownership against the delta_percent using local state data, preventing overspending without calculating a network-wide sum. This focuses security on individual account integrity.

These mechanisms ensure that fraudulent attempts—such as spending more than owned or reusing transactions—are blocked at the point of validation, negating the need for a global overview to detect anomalies.

Rationale for Avoiding Global Total Checks

A global total check, while theoretically useful to prevent systemic inflation, is unnecessary for fraud prevention in OneToken due to its transaction-level security:

  • Localized Integrity: Cryptographic signatures and balance checks ensure no value is created or overspent in individual transactions, addressing fraud at the source without requiring a network-wide tally.
  • Decentralized Validation: Multiple validators independently process transactions within localized groups, reducing the risk of systemic fraud through distributed oversight. Collusion would require compromising a majority of validators in a group, mitigated by the Autonomi Network’s node reliability mechanisms.
  • Market Adjustment for Drift: Rounding losses causing drift below 100% are accepted as passive deflation, with market forces adjusting the value of remaining percentages. This avoids the computational burden of enforcing a global invariant, maintaining statelessness.

This approach contrasts with blockchain systems like Bitcoin or Ethereum, where global ledgers ensure supply consistency, but at the cost of synchronization overhead. OneToken prioritizes efficiency, securing transactions locally.

Mitigating Potential Risks

While global total checks are not needed, potential risks from their absence—such as undetected localized discrepancies—must be managed:

  • Validator Reliability: The Autonomi Network’s reliability testing excludes malicious validators, ensuring local state integrity. Lightweight monitoring via periodic state sampling across groups can detect anomalies without full synchronization.
  • Transparency Tools: Optional client-side tools can estimate network-wide drift using aggregated validator reports, maintaining user trust without protocol-level enforcement.
  • Robust Nonce Storage: Distributed nonce persistence via hash tables prevents replay attacks even in segmented networks, ensuring sequence integrity across validators.

These measures preserve OneToken’s lightweight design while addressing edge-case risks, focusing on transaction security over systemic summation.

Conclusion

OneToken’s technical theory demonstrates a viable, minimalist cryptoeconomic system for the Autonomi Network, leveraging percentage-based ownership, stateless validation, and localized transaction processing for scalability and efficiency. Its general methods simplify value representation and transaction mechanics, eliminating supply management and global ledger overhead. Fraud prevention, rooted in cryptographic signatures, nonce ordering, and local balance checks, ensures security without requiring a global total check, prioritizing transaction-level integrity over systemic consistency. This approach positions OneToken as a novel solution for resource coordination in decentralized, resource-constrained environments, offering a scalable alternative to traditional tokenomics while maintaining robust security through localized mechanisms.

I’m not nearly as qualified as others here to say if it makes sense, let alone if it’s possible. But am curious if it has any merit.

Cheers

1 Like

unless you don’t need to trade explicitly… say the network would have a way to swap out 2 token of same denomination (verifiably) if I had 10 x 0.1 ANT I could request to get 10x 0.1 in consecutive order.

… issue is that for previous owners of those 0.1 ANT token they would need to be notified about the new address of their token … possibly for multiple redirections …
…another issue would be to make the swap safe and atomic …

I reads across it and I actually believe your suggestion there is a DAG structure as it currently is suggested by Maidsafe. only difference is that you say we don’t have 1.2 billion token but 100% == 1 as total supply … which is a shift in scale but doesn’t change anything in the mechanics behind it (feel free to correct me if I missed something)

1 Like

Then milli. Do they lose 0.001 in fees. Nothing lower

1 Like

Yeah … I felt it was probably too good to be true and AI isn’t very good at being critical, so it didn’t really spot that. Thanks for having a look.

2 Likes

oh you’re right xD oh well … that might be the fee then? :smiley: 10% on split … motivation to do swaps instead of splits :smiley:

(yeah you’re probably right - not ideal ..)

1 Like

it’s so annoying it’s always just trying to please you when asking a question instead of entering a genuine discussion …

1 Like