Dapp이란 앞서 자주 언급했었지만 제대로 알아보자
Decentralized Application으로 중앙화된 기관에서 관리하는 보통의 서비스와 달리
운영기관 없이 Smart Contract상에서 운영되는 서비스다. (Defi가 대표적임)
Dapp의 장점으로,
특정 서비스가 중단돼도 365일 운영되는 이더리움 네트워크를 통해
서비스를 지속적으로 사용 가능하다.
단점으로는, 중앙화된 서비스의 장점을 이용할 수 없다는 점이다.
예로 고객센터인데, 유저가 서비스 사용 중 어려움이 있어 고객센터가 필요한 경우다.
서비스에 문제가 발생했을 때 책임질 사람이 없다. 가장 큰 문제다.
테라의 앵커 서비스같은 경우 스테이블 코인을 제공하지만
서비스 가치가 무너졌을 때 아무도 책임을 지고 있지 않은 경우가 발생하고 있다.
어떻게 Dapp은 24/7/365 서비스가 유지되는 것일까?
유저가 이더리움 네트워크의 Smart Contract를 호출하는 것이 Dapp 서비스의 기본이다.
호출 할 때 노드에 연결을 해서 동작을 하는데 기본적으로 이더리움 네트워크 같은 경우
해당 노드가 죽게되고 다른 노드에 접속하면 항상 동일한 데이터를 보장 받는다.
혹시 Defi 금융거래를 하고 있는데 대출을 받게 되면, 오늘까지 상환을 해야하는데
상환 서비스를 하는 서버가 죽었다, 근데 Smart Contract상에서
오늘 무조건 상환을 해야한다고 하면 Metamask에 접속을 해서
해당 SC에 있는 상환 호출을 통해 해결을 할 수 있다.

이더리움 네트워크에 접속만 가능하다면 누구든지 Dapp 서비스를 이용할 수 있다.
노드가 죽더라도 다른 노드로 바로 접속하는 이런 형태로 Smart Contract는
이더리움 네트워크 자체가 죽지 않는 이상 계속 유지할 수 있다.
일반적으로 Dapp 서비스를 이용하다보면 중앙화된 서버를 통해
연결된 앱을 이용하는 경우가 있다.
앱을 통해 Dapp 서비스를 이용하다가 중앙화된 서비스가 죽으면,
메타마스크(online wallet)을 통해 Smart Contract상에서
State를 변경할 수 있다.
꼭 탈중앙화성만을 이용하는 것이 아니라 중앙화된 서버를 이용해 보다
편한 서비스를 유저는 이용할 수 있다.
실제 개발자들은 Web3를 통해 접근한다.

이 자료는 web3 python을 통해 Tx을 전송하는 것인데,
w3 = Web3(EthereumTesterProvider())
w3.isConnected()
연결됨을 확인
연결이 되었기 때문에 누구한테 얼마만큼 보낼지 코드를 짠다

로또의 경우 항상 주작의 이야기가 나온다. 믿을 수 있는가?
이 점을 사용자가 모두 볼 수 있는 Dapp으로 만들면 모두가 의심 안 할 수 있다.
이 경우, 사용자가 번호와 금액을 Smart Contract에 입력하게 되면
일정 시간 이후에 Contract상에서 랜덤을 생성된 값을 기반으로
이 값과 해당 하는 사람들에게 금액을 자동으로 지급하는 그런 서비스를 제작할 수 있다.
사람들이 로또 번호를 추첨하는 시스템을 못 믿는게 당연하지만,
이더리움은 로또 번호 생성하는 과정 조차도 state변경이기 때문에 모든 기록들이
블록체인 상에 기록된다.
글로벌 노드 모두가 동시에 번호를 추첨하고 그 값이 같아야 state로 인정된다.
그래서 위변조 문제를 방지할 수 있다.
특히 대선 기간이나 이런 시즌에 투표가 조작됐다고 말이 많이 나오는데
이것도 SC 기반으로 투표를 진행하면 익명성을 이용해 비밀투표도 가능하고
투표 수에 대해서 투명하게 확인할 수 있는 장점이 있다.

투표 제안자가 Smart Contract를 만들어
유권자들이 투표를 Smart Contract상에 투표를 한다.
실제로 한 번 블록체인에 기록되면 위변조가 불가능 하기 때문에
이 신뢰로 투표를 진행할 수 있다.
실제로 미국에서도 몇 차례 블록체인을 통한 투표를 진행한 여러 사례가 있다.
Dapp과 Web3에 대해 알아봤는데
Dapp의 장점도 있지만, 단점 또한 확실하다.
사실 투표같은 경우에도 Dapp 유저와 유권자가 일치한 지도 확실하지 않고,
혹시라도 투표 권한을 잃어버렸을 때 그런 상황에서 다시 전 상황으로 복구 할 수 없다.
그래서 무조건적으로 탈중앙화된 서비스를 개발하는 것이 좋은게 아니라
서비스를 기획을 하면서 이것이 탈중앙화 서비스에 적합한 지가 매우 중요하다.
출처)) 자료 및 내용: 패스트 캠퍼스