Slide 13
Slide 13 text
중복 투표 방지방안 - 2) Checkpoint After Transfer
Address []Checkpoint
A
Block 1000 1004 1010
Value 500 400 300
B
Block 1004
Value 100
struct Checkpoint {
uint blockNumber;
uint value;
}
mapping(address => Checkpoint[])
checkpoints;
- 각 참여자들의 투표권 수가 변경될 때만 기록하는 방식
- 투표권 조회 시, 각 참여자들의 과거 Checkpoint 를 탐색하여 원하는 시점의 투표권 수 조회 (이진 탐색)
- 투표권이 변경될 때마다 저장이 필요하며, 투표권 조회 시에도 이진 탐색을 위한 연산이 필요함