블록체인 - 3
블록체인 위의 정보를 위조하려고 해보자
1. 타인이 자신에게 어마어마한 돈을 송금했다고 위조하기 -> 송금자의 signature이 없으므로 불가
2. 자신이 타인에게 송금했다고 위조하기? -> 송금내역을 알리면 송금이 되어버리는거임 사기치려다 돈뺏김..
3. Alice가 Bob에게 송금하는 내용이 담긴 블록을 Bob에게만 보내고 다른 이들에게는 보내지 않기
3번의 경우만 살펴보면 된다
착한 Bob은 자신이 Alice에게 돈을 받은 내용이 담긴 장부를 가지고 있지만
자신 외의 모든 사람들은 그 내용을 담고있지 않게 되는 것이 가능한가?
엘리스가 운좋게 proof of work를 찾아서
Bob에게 송금한다는 내용이 담긴 block을 Bob에게만 통보한다
다른 Miner들은 블록이 생성되었다는 것을 모르기에
Prev hash가 포함된 블록을 생성하는 것을 멈추지 않는다
이때 프로토콜에 의해
Bob에게는 다른 Miner들에 의해 Alice가 보내준 것과 같은
Prev hash를 가지고 있는 block이 추가된다
Alice는 연산력이 다수의 Miner들보다 딸리므로
Alice에게서 오는 block길이가
Miner들한테서 오는 block길이보다 짧아질 수 밖에 없다
물론 Alice가 50%이상의 연산파워를 가지면
Bob에게 위조된 blockchain을 믿게할 수 있다
이렇게 되면 먼 훗날 Bob이 자신의 송금내역을 통보할때
이 송금요청이 기각당하게 된다
근데 이때 Bob이 자신의 기다란 blockchain을 사람들이게 알리면?
사람들의 장부가 모두 Alice가 Bob에게 송금했다는 내용이 담긴 내용으로 바뀔것이다
50%이상의 연산파워를 장악하는 경우에 대해서는 다음에 다루겠다
근데 26% 25% 25% 24% 이렇게 되는 경우는?? 3집단이 동시에 사기를 치는 경우에는
결국 사기를 치는 집단을 모았을때 76%이므로 50%를 넘는 것이다
즉 정직한 집단이 50%를 넘기는 것이 중요하다
이런식으로 갓 도착한 블록은 나눠질 수 있기에
신뢰하기 어렵지만
이전에 블록들은 나눠질 가능성이 희박해지므로
올바른 내용이 담겨있음을 신뢰할 수 있다