Network Steward Vote

우리는 어떤 무책임한 권한이 얼마나 자비로울지라도 결국 부패, 비효율성 또는 혁신 부재로 망할 것이라는 보편적인 사실로 여깁니다. 이로 인해, 네트워크 관리자가 역할을 수행하지 않을 경우를 대비하여 PKT 블록체인 솔루션에 내장했습니다. PKT의 보유자는 네트워크 관리자를 탄핵하고 대신에 새로운 관리자를 선임할 수 있습니다. 탄핵은 중요한 사건이며, 발생하려면 총 PKT 총량의 적어도 50%가 그것에 찬성해야 합니다. 그러나 탄핵이 발생하면 자동적으로 투표가 진행되고 네트워크 관리자가 변경됩니다.

네트워크 스튜어드

투표 방식

투표는 VoteFor와 VoteAgainst 두 부분으로 구성됩니다. VoteAgainst는 탄핵을 위한 투표이며, VoteFor는 탄핵이 발생할 경우 네트워크 관리자로 선임될 후보에 대한 투표입니다.

네트워크 관리자는 트랜잭션 출력 스크립트로 표현되며, 스크립트 인코딩된 키로 표현되지 않습니다. 특정 주소의 스크립트를 얻는 간단한 방법은 해당 주소로 일부 자금을 지불하고 그 후 해당 출력을 탐색하고 스크립트를 복사하는 것입니다.

코인베이스 트랜잭션을 탐색하면 네트워크 관리자에게 지불된 출력을 볼 수 있습니다. https://explorer.pkt.cash/address/ 이 출력에 대한 스크립트는 다음과 같습니다. 0020d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2

$ ./bin/pktctl getrawtransaction 505d2750577a3d3c739c2a650ec0e03a7ddb1f81080c820ab1a317575020745b 1
{
  "hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff10022913000b2f503253482f706b74642fffffffff03cac2a6ee0000000
01976a9147d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae88ac362f5f3b00000000220020d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2b000000000000
0000326a3009f91102ffff7f20c70542e4ca2363ce0149e845305f25564e7ce81e33411ad570df0f56f387462021cd01000000000000000000",
  "txid": "505d2750577a3d3c739c2a650ec0e03a7ddb1f81080c820ab1a317575020745b",
  "hash": "505d2750577a3d3c739c2a650ec0e03a7ddb1f81080c820ab1a317575020745b",
  "size": 203,
  "vsize": 203,
  "version": 1,
  "locktime": 0,
  "vin": [
    {
      "coinbase": "022913000b2f503253482f706b74642f",
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 40.0390625,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 7d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a9147d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae88ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX"
        ]
      }
    },
    {
      "value": 9.9609375,
      "n": 1,
      "scriptPubKey": {
        "asm": "0 d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2b",
        "hex": "0020d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2b",
        "reqSigs": 1,
        "type": "witness_v0_scripthash",
        "addresses": [
          "pkt1q6hqsqhqdgqfd8t3xwgceulu7k9d9w5t2amath0qxyfjlvl3s3u4sjza2g2"
        ]
      }
    },
    {
      "value": 0,
      "n": 2,
      "scriptPubKey": {
        "asm": "OP_RETURN 09f91102ffff7f20c70542e4ca2363ce0149e845305f25564e7ce81e33411ad570df0f56f387462021cd010000000000",
        "hex": "6a3009f91102ffff7f20c70542e4ca2363ce0149e845305f25564e7ce81e33411ad570df0f56f387462021cd010000000000",
        "type": "nulldata"
      }
    }
  ],
  "blockhash": "c77d9026867de1455e573eb47bd3322548fd537b29ed9296a004a00f43d1da18",
  "confirmations": 3,
  "time": 1566221646,
  "blocktime": 1566221646
}

pktd를 쿼리하여 네트워크 관리자가 무엇인지 확인하는 것으로 확인하면 지불된 스크립트가 표시됩니다.

$ ./bin/pktctl getnetworksteward
{
  "script": "0020d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2b",
  "votesagainst": 0,
  "totalpossible": 21985819476623360
}

예를 들어 네트워크 관리자를 https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX , 로 변경하려면 해당 스크립트에 투표해야 합니다 76a9147d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae88ac, 물론 현재 네트워크 관리자에 대한 반대 투표도 진행해야 할 것입니다.

투표 방법

투표는 지갑을 구성하여 수행되며, 자금을 사용할 때마다 지갑은 PKT 지불의 각 향후 투표를 포함합니다. 투표 과정을 가속화하려면 지갑을 구성하여 투표하고 모든 PKT를 다른 지갑으로 이전하여 모두 투표될 수 있도록 할 수 있습니다.

지갑을 다음과 같이 구성하여 https://explorer.pkt.cash/address/pGzmtW4Q2v4AWHcX8TYGqG5c1Eh5Ykg6fX https://explorer.pkt.cash/address, 에 투표하려면 다음 작업흐름을 사용하십시오:

$ ./bin/pktctl --wallet getnetworkstewardvote
{}
$ ./bin/pktctl --wallet setnetworkstewardvote default 76a9147d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae88ac 0020d5c1005c0d4012d3ae2672319e7f
9eb15a57516aeefabbbc062265f67e308f2b
{}
$ ./bin/pktctl --wallet getnetworkstewardvote
{
  "votefor": "76a9147d9df4279212fd7def4c47abf2d5f3a6c6eaf4ae88ac",
  "voteagainst": "0020d5c1005c0d4012d3ae2672319e7f9eb15a57516aeefabbbc062265f67e308f2b"
}