Tangle: 그림과 함께 하는 소개 Part 4: 승인자, 잔고, 이중 지불

in iota •  7 years ago 

IOTA 블로그의 The Tangle: an illustrated introduction Part 3: Cumulative weights and weighted random walks의 번역본입니다.

Part 1: Tangle에 대한 소개,
Part 2: 트랜잭션 레이트, 처리 지연 시간, 랜덤 진행
Part 3: 누적 가중치와 가중치 있는 랜덤 진행

나머지 글들도 차례차례 진행할 예정입니다.

Tangle: 그림과 함께 하는 소개

Part 4: 승인자, 잔고, 이중 지불

지금까지 우리는 DAG와 랜덤 진행, 여러 팁 선택 메카니즘에 대해서 이야기했습니다; 이번주에 우리는 돈에 관해 이야기 할 겁니다. 트랜잭션 A가 트랜잭션 B를 승인한다고 말할 때의 의미에 대해서 설명할 시간이 왔습니다.

이 시리즈의 첫번째 글에서 설명한대로, 각 트랜잭션은 "앨리스가 밥에게 10 IOTA를 주었다" 형식의 정보를 포함합니다. 처음에 앨리스가 주려는 그 10 IOTA를 정말로 가지고 있었는지를 확인하는게 승인자의 일입니다.

여러분인 이 시점에 아마 이런게 궁금할겁니다: 이 IOTA는 어디에서부터 오지? 답은 tangle에서 제네시스 트랜잭션(genesis transaction)이라고 부르는 최초의 트랜잭션에서 그들 모두가 생성되었다는 겁니다. 추가적인 IOTA는 더이상 생성되지 않습니다. 제네시스로부터 IOTA는 프로젝트의 원래 투자자들의 계정으로 그들이 투자했던 양만큼 전송되었습니다. 그 후에 그들은 다른 사람들에게 그들의 IOTA의 일부를 팔았고, 결국 트레이딩 네트워크가 만들어졌습니다.

앨리스와 밥으로 돌아가서, 간단한 예를 보죠. 박스는 트랜잭션 하나를 의미합니다. 편의를 위해서 우리는 앨리스와 밥의 계정의 트랜잭션이 일어나기 전과 후의 잔고를 쓰겠습니다. 우리는 처음에 앨리스가 밥에게 줄 10i를 가졌었고, 그 후에 밥이 10i를 가지고 앨리스가 아무것도 없음을 봅니다.

그 후, 찰리라고 부르는 누군가가 그의 지불이 일어나기를 원합니다. 그는 팁 선택 알고리듬을 실행합니다. 그리고는 그가 앨리스의 트랜잭션을 승인할 필요가 있음을 알게 됩니다. 이를 하기 위해서 그는 앨리스가 정말로 그녀가 지불한 10i를 가지고 있었는지를 검증해야만 합니다. 찰리는 이 작업을 신중하게 하는게 좋습니다: 나쁜 트랜잭션을 승인하면 그의 트랜잭션은 승인되지 않으니까요!

확실히 하려면 찰리는 앨리스의 트랜잭션에 의해 제네시스로 돌아가는 모든 방법의 직접적, 그리고 간접적으로 승인된 모든 트랜잭션의 리스트를 가져야 합니다. 그는 다음처럼 보이는 긴 리스트를 만듭니다:

  1. 제네시스가 15i를 만든다
  2. 제네시스가 밥에게 2i를 준다
  3. 제네시스가 앨리스에게 8i를 준다
  4. 제네시스가 찰리에게 5i를 준다
  5. 찰리가 도나에게 3i를 준다
  6. 밥이 앨리스에게 2i를 준다

이는 코스의 한가지 옵션일 뿐입니다. 앨리스의 계정의 10i와 밥의 계정의 0으로 된 어떤 리스트도 가능합니다. 찰리는 그 시스템의 모든 다른 계정이 0 아래로 가지 않음을 확인하기 위해서 모든 다른 계정을 추적해야만 합니다: 어떤 계정이 "전"과 "후" 부분이 마이너스였다면, 그 트랜잭션은 잘못된 겁니다.

앨리스가 그녀가 가진 것보다 더 많은 IOTA를 주려고 시도하는 경우를 한번 보죠:

앨리스는 그녀가 10만 가졌음에도 불구하고 100i를 밥에게 줍니다. 앨리스의 트랜잭션과 이를 승인하는 어떤 이후의 트랜잭션은 네트워크에 의해서 잘못된 것으로 처리됩니다. 마이너스 잔고는 허용되지 않습니다.

이 상황은우리가 하나 보다는 두 트랜잭션을 승인할 때 더 재밌어집니다:

앨리스의 트랜잭션을 승인할 때 둘 모두 0 이하로 내려가지 않도록 그녀가 그녀의 계정에 충분한 돈을 가지고 있었기 때문에 밥은 맞았었습니다.

그녀가 가진 것보다 총합이 더 크다면 어떻게 될까요? 아래에 보입니다. 이런 경우, 밥은 앨리스의 트랜잭션 둘 모두 승인할 수 없습니다. 그게 앨리스의 마이너스 잔고를 만드니까요. 밥이 이렇게 하면 그는 IOTA 프로토콜의 룰을 깨고 있고, 아무도 그의 새로운 트랜잭션을 승인하지 않을 겁니다.

이 마지막 경우를 앨리스가 그녀의 돈을 두번 지불하므로 이중 지불(double spend)라고 부릅니다. 그녀가 각 개별 트랜잭션에 충분한 돈을 가지고 있었기 때문에 그녀가 프로토콜을 깬 것이 아님에 주의하세요. 그녀가 이중 지불을 뜻하지 않고 실수로 그녀의 트랜잭션이 두번 보내졌을 수도 있습니다. 그러나 그녀는 tangle에 서로 붙일 수 없는 두개의 브랜치를 생성했습니다. 이는 IOTA의 정직한 사용자에게 문제를 만듭니다: 그들이 어떤 브랜치를 승인해야 할까요?

이 문제의 답은 한번 더, 지난주에 우리가 배웠던 가중치 있는 진행입니다. 결국 브랜치 중 하나는 다른 브랜치보다 더 크게 자랄 겁니다. 이는 트랜잭션이 올라간 후에 어떤 승인자들이 있더라도, 결국에는 폐기될 브랜치의 일부일 수
있기 때문에 즉시 확정될 수 없음을 의미합니다. 여러분의 트랜잭션을 확정됨을 확인하기 위해서 여러분은 그 확정 확신치(confirmation confidence)가 충분히 높아질 때까지 기다려야 합니다. 이는 다음주 글의 주제가 될 겁니다.

언제나처럼 여기 혹은 Discord @alongal#3938로 질문을 주시면 더욱 환영합니다.

Part 1: Tangle에 대한 소개
Part 2: 트랜잭션 레이트, 처리 지연 시간, 랜덤 진행
Part 3: 누적 가중치와 가중치 있는 랜덤 진행

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

이런 좋은글이 묻히고 있다니
앞으로 iota 설명 기대하겠습니다~
kr태그와 coinkorea태그도 붙이시면 한국분들이 많이 볼 수 있을 것 같습니다.