Research meeting - april 6, 2023

agenda

genesis ID

  • questions
    • we compute genesis id as hash(genesis_time, genesis_extra_data), and take 20 bytes from that
    • golden atx is equal to that previous value, but padded with 12 empty bytes. which is just looks strange
  • expected outcome
    • final spec for genesis ID

gas table

  • UPDATED proposal Gas cost for precompiles
  • Iddo, Noam, Wojtek please review ahead of meeting
  • expected outcome
    • a finalized approach to calculate gas table

post param

  • data from 3 sets of params
  • gpu-post bug: Vulkan POST implementation is broken
  • N=8192 is needed for asic resistance
  • mainnet param & determine whether it’s more cost-effective to rent gpu or run a gpu farm than storing data
  • expected outcome
    • decide initialization time and unit size

post update path

  • there is no known way to change network post params after mainnet launch without network-wide re-initialization
  • feasibility of supporting multiple version of post params
  • feasibility of network-wide re-initialization and how
  • expected outcome
    • a plan for post param update

discussion on vm design

  • ppl are not on the same page wrt spacemesh L1 & L2 separation plan
  • perhaps Iddo can outline the plan verbally for us first, follow by a Q&A/discussion
  • expected outcome
    • team on the same page on spacemesh’s L1/L2 separation and beyond
1 Like

meeting summary

gas table

  • adopt Gas cost for precompiles proposal with tweaks
  • spawn (updating 2 accounts) is more expensive than self-spawn (updating 1 account)
  • gas for multisig accounts (1/k, 2/k, 3/k) should be a function of k
  • 1000 smidges / gas unit to allow for more granularity
  • at genesis, smapp set minimum gas price to 1000 smidges (configurable) and miners will not accept txs lower than this minimum gas price
  • use first-price auction (miners select txs with highest gas price) for genesis (already implemented). but this is not the end-game. it will need to be adjusted post-genesis.
  • AI:
    • Dmitry create issues for implementations for the proposal

genesis ID

  • use unix timestamp (uint64) instead of timestamp string literal.
  • genesis data contain some last-minute revealed data like bitcoin block hash
  • golden atx use the original 32 byte hash instead of hash32->hash20->pad0
  • AI:
    • Dmitry already made PR

discussion on vm design

  • ppl ARE on the same page wrt spacemesh-specific L1/L2 separation
  • AI:
    • Iddo follow up on discussion with Dmitry about evm compatibility

use fixed-precision math in consensus code

post update path

  • some params don’t require network-wide re-initialization (k2)
  • change to N iteration will require re-initialization
  • by design, difficult can be adjusted by reducing label size from 16 byte to <1 bit per label (a.k.a labelsperbit). but this is not currently supported
  • delay the discussion on update path after more info on Vulcan bug fix (multiple fronts)
  • AI:
    • do nothing

post param

  • unit size 64 GB, min unit size 4.
  • there is a gap btwn theory and actual data. for adversary that choose to store 70% of data, the chance of failure should be 99.9%, but is not according to Bartosz data. for K1-279, K2=300, adversary only needs 21K nonces, while it should be 1million nonces
  • segment size of AES output selection
  • launch test net with K1: 279, K2: 300, K3:65 to make it difficult for re-calculating
  • AI:
    • Iddo follow up discussions
1 Like