이더리움의 무작위 값 찾기, VDF

in #kr6 years ago

혹시 코딩이라는 것을 할 때 제일 어려운 것이 무엇인지 아시나요?

바로 주사위 던지기입니다

throw_dice.jpg

랜덤의 무언가를 뽑는 것은 각각의 언어나 환경마다 매우 잘 만들어져 있지만 정확하게 랜덤이라고 하기보다는 유사난수라는 것을 이용한다고 합니다.

현재의 시간을 이용한다거나 CPU 칩 자체의 고유 숫자를 이용을 합니다

만약 현재의 시간과 칩자체의 고유의 값을 알아낸다면 아무리 열심히 난수를 만들어도 예측 가능한 값이 될겁니다.

하지만 해당 값을 알지 못하기 때문에 추측을 하지 못하는 것 뿐이라고 합니다

그런데 이더리움 위에서 게임을 만든다면 어떻게 될까요?

일반적으로 코딩을 한다면 랜덤함수를 이용하여서 만들 수 있을 겁니다.

그런데 이더리움 위에서는 블록이라는 것이 존재합니다.

블록을 생성하기 위해서는 현재 마이너가 마이닝이라는 것을 해야하고 만약 주사위 게임에 마이너가 참여를 한다면 어떻게 될까요?

이미 경기의 결과를 알고서 네트워크 상에서 경기가 이루어진다?

그렇다면 이건 너무 불공평한게 아닐까요?

그래서 나왔던 것이 Randao와 Dfinity 라는 것입니다.

하지만 이것 또한 완벽하지는 않습니다.

지난 데브콘에서는 이 주제로 하나의 세션이 열렸습니다.

VDF, Verifiable Delay Function

그렇다면 마이너가 아닌 다른 곳에서 값을 결정한다면 어떨까요?

VDF ASIC 이라는 전용칩이 단지 랜덤값만 준다면,

그리고 수백 수천개의 값으로 다시 재계산해서 새로운 값을 도출해낸다면 과연 누가 그 값을 알수가 있을까요?

asic_group.jpg

이것이 VDF로 제시하는 randomness(무작위성)입니다

다음 컨텐츠는????

  • POS?? POW??
  • ERC Token ???
  • Swarm ???
  • Whisper ???
  • IPFS ???

Donation

기부는 사랑입니다.

  • Ƀ BTC : 16MdVNJgvGYbVuaC6KrjGNy2RCrNsaPaZz
  • Ξ ETH : 0x5debb97a6Cc1Fdf686a3C6aA804a623a21deD73c