Content pfp
Content
@
0 reply
0 recast
0 reaction

datadanne ↑ pfp
datadanne ↑
@datadanne.eth
I don't think this is a good solution since it makes delegation slow, but couldn't you work around the flaw by not allowing an NDT to vote until proposalUpdatablePeriodInBlocks + votingDelay + votingPeriod blocks has passed since it was minted? That way you can't swap -> mint -> vote for any prop that is created
3 replies
0 recast
3 reactions

Spencer Perkins pfp
Spencer Perkins
@spencerperkins.eth
Interesting idea, but I don’t think it really solves. It just pushes out the attack by 1 voting cycle (which is good). To prevent the attack with this design, someone would need to actively swap and remove delegation for every pooled Noun before every prop.
1 reply
0 recast
1 reaction

datadanne ↑ pfp
datadanne ↑
@datadanne.eth
True unless you don’t allow stale NDTs to vote at all (invalidate if the noun is transferred), or add a list of known pools addresses to the delegation contract and disallow NDT voting if the noun is owned by a pool!
1 reply
0 recast
0 reaction

Spencer Perkins pfp
Spencer Perkins
@spencerperkins.eth
During the attack, the attacker can take ownership of the pool nouns one at a time and vote. The problem is you can’t invalidate on transfer because there is no transfer hook. Could try to disallow stale NDTs by checking the current Noun owner was the one at the time of NDT delegation. But, this can still be true during the attack: https://warpcast.com/spencerperkins.eth/0xa3bda16b For the same reason, I don’t think having a disallow list would work (since during vote, Noun can be held by attacker).
1 reply
0 recast
1 reaction