IOTA 블로그의 The Tangle: an illustrated introduction Part 5: Consensus, confirmation confidence, and the coordinator의 번역본입니다.
Part 1: Tangle에 대한 소개,
Part 2: 트랜잭션 레이트, 처리 지연 시간, 랜덤 진행
Part 3: 누적 가중치와 가중치 있는 랜덤 진행
Part 4: 승인자, 잔고, 이중 지불
Tangle: 그림과 함께 하는 소개
Part 5: 합의, 확정 확신치, 조율자
지난주에 우리는 앨리스가 그녀의 돈을 한번 이상 쓰려고 시도하는 이중 지불 문제를 설명했습니다. 이 시리즈의 마지막이 될 이번 글에서 우리는 Tangle에서 이 문제를 어떻게 해결하는지, 어떻게 우리가 어떤 이력이 유효한 것인지 결정하는지를 보입니다.
문제를 보여주기 위해서 우리는 다음 이중 지불 시나리오를 검토할겁니다:
여러분이 볼 수 있듯이, 앨리스는 찰리와 밥 모두에게 주는 5i를 가집니다. 이는 명확히 문제입니다: 우리는 이들 두 트랜잭션이 유요하다고 다룰 수 없습니다. 우리는 탱클이란 용어를 사용하면서 앨리스의 계정에서 마이너스 잔고로 끝나게 된다면 그들 모두를 승인하는 그 이후의 트랜잭션을 가질 수는 없습니다.
우리는 가중치 있는 랜덤 진행 알고리듬을 사용해서 브랜치 중 하나가 결국 훨씬 더 커지게 될 것임을 배웠습니다. 그래서 하나의 합의는 어떤 트랜잭션이 유효한지를 구성합니다. 그러나 밥이나 찰리의 관점에서는 문제가 있습니다: 그들이 앨리스로부터 돈을 정말로 받을 수 있는지를 어떻게 알까요?
밥과 찰리가 디노사우르스 판매자들이고, 앨리스가 그들로부터 각각 티렉스를 샀다고 상상해보세요. 그들 모두가 탱글에서 그녀의 트랜잭션이 보인 후 바로 티렉스를 그녀에게 보낸다면, 그들 중 한 명은 결국 지불이 안됐음을 발견하게 될 겁니다. 그 도마뱀을 보내기에 안전한 때를 그들이 어떻게 알 수 있을까요?
여기에는 사실 한가지 심각한 문제가 있습니다. 비트코인은 2009년에 이를 성공적으로 이뤄낸 첫번째 기술이었습니다. 탱글이 이를 어떻게 풀었는지를 보이기 위해서 우리는 확정 확신치라고 부르는 컨셉을 도입합니다. 이 확신치는 나머지 탱글에 의한 어떤 트랜잭션의 허용 레벨치입니다.
어떤 트랜잭션의 확정 확신치는 다음과 같이 계산됩니다:
- 팁 선택 알고리듬을 100번 돌립니다.
- 100개의 팁들 중 얼마나 많은 팁들이 우리의 트랜잭션을 승인하는지를 셉니다. 이를 A라고 부릅시다.
- 우리의 확정 확신치는 "A 퍼센트"입니다.
다른 말로 어떤 트랜잭션의 확신치는 그를 승인하는 팁의 백분율입니다. 모든 팁이 동등하게 여겨지지는 않습니다: 더 그럴만한 팁들을 더 높은 중요도로. 이를 나타내기 위해서 우리는 시뮬레이션에 확정 확신치를 추가했습니다. 95% 이상의 확신치의 트랜잭션들은 더 두껍게 보여집니다.
위의 탱글에서 트랜잭션 9는 4개의 팁을 승인하고 2개의 팁에 의해 승인됩니다. 우리가 유니폼 랜덤 팁 선택을 사용했을 때, 정확히 50%의 확정치를 가졌었습니다. 그러나 확정치를 약간 올리는 그를 승인하는 팁들은 승인하지 않는 팁들보다 분명히 더 그럴 듯 했습니다.
지금 어떻게 밥과 찰리가 그들의 티렉스를 앨리스에게 보내기에 안전한 때를 말할 수 있는지 명확해 졌습니다. 앨리스의 트랜잭션이 어떤 높은 확신치의 한계치(95%라고 하자)에 닿으면, 합의의 밖으로 밀려나지 않을 겁니다. 우리는 조심해야 하고, 불가능하다기보다는 매우 그럴듯하지 않다고 말해야 합니다; 앨리스가 속이려고 한다면 그리고 충분한 컴퓨팅 파워를 가지고 있다면 그녀는 이중 지불을 시도할 수 있습니다.
그를 하기 위해서 그녀는 밥보다는 찰리에게 지불하는 트랜잭션을 올릴겁니다. 그녀는 찰리에게 하는 그녀의 지불을 참고하지 않는 두 오래된 트랜잭션을 그걸로 승인해야만 할 겁니다. 그리고나서 그녀는 그녀의 새로운 브랜치의 누적 가중치를 올리기 위해서 그녀가 할 수 있는 한 많은 트랜잭션을 올리기 시작할 겁니다. 그녀가 충분한 컴퓨팅 파워를 가진다면 그녀는 전체 IOTA 네트워크가 그녀를 믿고 그녀의 새로운 브랜치를 따르고 그래서 다시 이력을 작성하고 성공적인 이중 지불을 할 수 있습니다. 우리가 밥에게 하는 그녀의 트랜잭션의 확정치 레벨을 본다면 우리는 95%에서 결국 0으로 거부함을 볼 것입니다.
탱클에서 그 공격은 아래처럼 보여집니다. 시간은 아래로 흐릅니다:
이 시나리오는 앨리스가 다른 모두가 묶인 것보다 더 많은 트랜잭션을 보낼 수 있을 때 혹은 그에 가까울 때에만 위험 요소가 됩니다. 성숙하고 활동적인 네트워크에서는 큰 위험 요소가 아니지만, 오늘날의 IOTA에서는 현실적인 문제입니다. 집중된 이중 지불 공격으로부터 안전하게 되기 위한 시스템으로 나아갈 충분한만큼의 트랜잭션이 아직은 없습니다.
IOTA는 그 규모를 키우기 위해 우리는 보안 문제로 자발적 참여자를 고용하고 임시적으로 다른 합의 메카니즘,조율자를 사용합니다. 매 2분마다 하나의 마일스톤 트랜잭션이 IOTA 재단에 의해서 올라가고, 그에 의해 승인된 모든 트랜잭션은 즉시 100%의 확정 확신치를 갖는 것으로 여겨집니다. 조율자를 사용하면 앨리스의 두번째 트랜잭션은 처음에 절대 승인되지 않을 겁니다. 이는 IOTA 네트워크가 완전한 탱글 분산형 합의 알고리듬이 시작되는 곳에서 네트워크 보안을 100% 분권화된 방식으로 지키기 위해 필요한 채택으로부터 그 필요한 활동으로 커져가는 동안 보호 메카니즘으로서 동작합니다. 그 시점에 IOTA 재단은 조율자를 없애고 탱글은 그 자체로 진화할 겁니다. 이는 반복적으로 일어날 겁니다. 네트워크가 조율자를 통해 충분히 성숙해지면 또한 네트워크는 즉시 더 효율적인 규모가 될 겁니다.
이 시리즈를 따라온 여러분들에게 감사합니다. 쓰고 댓글과 질문에 답변하는 것은 정말 즐거웠습니다. 더 고급 주제의 포스팅을 따라오기 위해 요청해주시면 더 행복할 겁니다. 탱글의 공격 경로, 어떻게 알파를 정하는지에 대한 설명, 팁 선택 알고리듬의 실제 최적화 그리고 여러분이 원하는 다른 모든 것들이 될 수 있습니다.
아래 또는 Discord: @alongal#3938에 저에게 댓글다는 것, 환영합니다.
Part 1: Tangle에 대한 소개,
Part 2: 트랜잭션 레이트, 처리 지연 시간, 랜덤 진행
Part 3: 누적 가중치와 가중치 있는 랜덤 진행
Part 4: 승인자, 잔고, 이중 지불
Congratulations @dasomoli! You received a personal award!
Click here to view your Board
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness and get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit