introduction to beam hash iiibeam hash iii basic properties implementation aspects we start with 448...

12
Introduction to Beam Hash III Wilke Trei

Upload: others

Post on 27-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

Introduction to Beam Hash III

Wilke Trei

Page 2: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

PoW Landscape

Sha256

2

Blake2B

RandomX ProgPow /

X-Family

KAWPOW

Ethash

Equihash 200 / 9

Equihash 150 / 5BeamHash I BeamHash II

BeamHash IIIBeamHash III

Cuckoo FamilyEaglesong

Sha 3

Compute Heavy Memory Heavy

ASIC Friendly

ASIC Un-Friendly

Page 3: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

Aspects of ASIC friendliness

Multiple different aspects to consider

• Benefit of ASIC over common hardware

• Development effort

• Expected chip size

• Stability of PoW

Not one Type of ASIC

• Single chip ASICs

– Often much quicker

– Larger chip size

• Multi chip ASICs

– Smaller chips with distinguished function

– Cheaper, but slower

3

Page 4: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

Beam PoW Strategy

Why not change the PoW every 6 month?

● Avoid disruption of mining ecosystem

● Mining is important – but it is not everything

● Stable consensus is only path to mass adoption

4

Beam PoW Stragegy

● Give GPU miners a head start

● Make mining as relaxing as possible

● When first ASICs come: make them “cheap”

Page 5: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

Some Equihash Basics - Generation

5

Work, Nonce, IndexWork, Nonce, Index

Blake 2B

Bitstring at IndexBitstring at Index

Page 6: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

Some Equihash Basics - Matching

6

… 10110 1100… 10110 1100 … 01100 1100… 01100 1100

XOR

… 11010 0000… 11010 0000

Page 7: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

Some Equihash Basics – Growing Index Tree

7

Round 1

Round 2

Round 3

...

Index AIndex A Index BIndex B Index DIndex D Index CIndex C

Index ABIndex AB Index DCIndex DC

Index ABDCIndex ABDC

For BeamHash I / II:

● We match 25 bits each rounds (50 in the last)

● 5 Rounds total – so 32 indexes that give a 0 xor

Page 8: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

What could be better?

Implementation Aspects

● The number of bits moved changes every round

● The index tree is scattered

● Massive filtering of invalids required

Algorithmic Aspects

● Blake2B is quite compute heavy

● The elements to be load / stored are rather small

8

Page 9: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

BeamHash III Basics - Generation

9

Work, NonceWork, Nonce

Blake 2B

Long Bitstring at IndexLong Bitstring at Index

IndexIndexSipHash 2,4

Page 10: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

BeamHash III Basics – Mixing before Round

10

… 10110 1100… 10110 1100 Index tree for elementIndex tree for element

Mix

… 10110 1011… 10110 1011

XOR

… 01101 1011… 01101 1011

Page 11: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

Beam Hash III Basic Properties

Implementation Aspects

● We start with 448 bit element length and decrease this so the total number of element bits + index tree fits 64 byte

● The index tree is part of mix and is no longer scattered→ This gives a very simple memory layout

● No more filtering of invalids midway

Algorithmic Aspects

● The generation is much less compute heavy

● Each load / store is 64 byte and fits well the L2 cache architecture of currently state of the art GPUs

11

Page 12: Introduction to Beam Hash IIIBeam Hash III Basic Properties Implementation Aspects We start with 448 bit element length and decrease this so the total number of element bits + index

Conclusion

Beam Hash III ...

● … is easier to implement then Beam Hash I / II

● … fits well into 5G memory (4G and 3G are possible)

● … is made to utilize the memory bandwidth of all current GPUs better then any other Equihash

● … is single chip ASIC “resistant” for the next years

● … allows affordable multi chip ASIC designs

… is a good PoW for Beam to go with

12