3 articles explaining scaling issues to be considered in the Tokenized Smart Contract service

3 articles explaining scaling issues to be confronted by the Tokenized Smart Contract service:

  1. Youtube video https://www.youtube.com/watch?v=BAjn2BZG6fA with Craig Wright & Ari Kuqi saying we should avoid creating non mining full nodes and instead we should use SPV and to beware of centralized middle services like Moneybutton and Paymail which don’t scale yet.
  2. coindesk spv-support-billion-bitcoin-users-sizing-scaling-claim !!! EXCELLENT ARTICLE !!! Seems to support BSV approach
  3. gsd.di.uminho.pt/members/cbm/ps/dbloom.pdf
    This is about Scalable BloomFilters

So it seems like over the long term (just my personal hunch), depending on Tokenized talking to a full node is a non starter (over the long term), although it could be viable for another year or so while BSV traffic remains small.
SPV is the wise recommendation and because SPV lives mostly in wallets, it seems to imply that all of the Tokenized GO code has to be moved into an SPV wallet in order to be able to leverage the SPV link to the SPV supporting server nodes which serve up the Merkle trees via Bloom Filters.
**BUT standard Bloom Filters are NOT Scalable, and thus we hope that Article 3. ScalableBloomFilters will eventually be implemented in the SPV wallet.

I think when they say “avoid non mining full nodes” they mean nodes that don’t create enough value to afford the cost of scaling. We expect one of 2 scenarios.

  1. Smart contract hosting will be a paid service offered by full nodes.
  2. Full nodes will at least offer a paid service that supports running a smart contract.

Tokenized plans to scale our service to keep up with BSV scaling and will be running full nodes and offering smart contract hosting.

Regarding bloom filters. Bloom filters are designed to provide privacy so SPV wallets don’t need to provide specific addresses or transaction IDs when querying full nodes for information. That is, in my opinion, another overkill of the BTC community. There will be many services available to provide privacy without bloom filters. It will be comparable to paying for a VPN to hide your internet activity from your ISP. Most people won’t care and will just send addresses and transaction IDs to their local full node service, but for a price you will be able to get information through more private channels.

1 Like

Thank you for clarifying some of the vision / roadmap about scaling.
OK so you have explained that an SPV Wallet does not necessary require Bloom Filters.
Decoupling Bloom Filters from SPV is very helpful.

Despite your plan so far to work through Full Nodes, is it still a sensible alternative to put the Tokenized Code into the SPV Wallet and thus avoid the need for maintaining a Full Node?

To be clear, Tokenized wallets can absolutely be run in SPV. Tokenized is a client/server like design. Token holders are clients and token administrators are like servers. Token holders submit requests on chain to smart contract agents, then the smart contract agent approves or denies the request.

The wallets are clients and can definitely run in SPV. They simply need to see transactions on the smart contract address as well as their own, or use a service to provide them with up to date smart contract information.

Smart contract agents are a bit more complex and need more information to verify all of the rules are being followed in order to properly approve the requests that they receive. While it may be possible, in a future state of the bitcoin network, to run a smart contract agent in a less than full node capacity, it is not currently.

That is an eye-opener.
Many thanks for the explanation.

1 Like

I suppose you are alluding to the points and BIPs discussed here


" If wallets mutually adopt paymail, BIP 270 (with some extensions, including BIP 271, BIP 272 and BIP 273), and Miner ID, no wallets will need to run a node, and every wallet will be substantially less expensive to operate at scale.

Every wallet will be able to scale to arbitrarily large block sizes at a cost that depends only on the number of transactions for that wallet, not the number of transactions for the entire network."

Not exactly, BIP-0270 and related BIPs provide a system for giving the transaction directly to the recipient. It reduces the need for bitcoin network services like address scanning. Miner ID will hopefully fill the gap and provide any needed network services.

Tokenized wallets will still require some address scanning, though for a limited number of addresses. Address scanning is far less expensive than running a full node. Eventually there will likely be additional systems for handing transactions directly from the smart contract to the recipient.

What is address scanning more precisely? Is it scanning transactions which reference a given wallet address? That has the help of an index, right?

Yes, address scanning is parsing each transaction and determining which addresses it relates to and if it relates to an address relevant to you. This can be done by the wallet, or a service can scan transactions and build an index that can be queried by wallets.