Drugwars as a blockchain-based game - verifiability and irreversibility

in #utopian-io6 years ago (edited)

Repository

https://github.com/FutureShockco/drugwars.io

This suggestion is reported here: https://github.com/FutureShockco/drugwars.io/issues/51

Components

  • Transaction verifiability
  • Inventory (drug/weapon/alcohol/units) log system
  • "Official" fight alarm app
  • Others (authorization, fight)

Proposal Description

Last week was a roller-coaster ride both for Drugwars players and team members. Probably the titles of the following notices say the most of it:

Whew!

While I'm not an actively engaging player, as a blockchain researcher, I've done some analysis on the game in terms of token economy and technology. Surprisingly I found one (or two) very important thing missing in Drugwars as a blockchain based game.

Realistic token economy? Not really. I mean this isn't a problem per se. Well, this is debatable, but we all know that not everyone can get profits from this game. Unless Drugwars advertised or insinuated that way, that's fine. You should admit that it's not a principal-protected financial product, but a game. You bought an item in the game. That's it! Of course, they still should not change the system too abruptly which they tried without enough grace period. I'm glad to see that they stepped back and promised (not by smart contract or so though :) the gradual reward scheme transition from STEEM toward FUTURE tokens.

Then what?

Verifiability! and irreversibility

Some of main benefits (or characteristics) of blockchain-based games are verifiability, irreversibility, and incentive.

  • Incentive: while an incentive itself is not a requirement, it is usually provided, since nobody may want to play otherwise. Drugwars does have it. Done.
  • Irreversibility: Blockchain is basically irreversible. But the only data written on the blockchain is irreversible. Strictly speaking, many things of Drugwars are off-chain, so not irreversible. But to me this is fine. Without smart contract, we still have no choice but to believe the game owner. Almost everybody believe that Drugwars operate their game honestly (regardless of the fact that the current system is good enough or not). Thus I believe the following verifiability is more important.
  • Verifiability: Any transaction or game item inventory should be verifiable.

Let's say when I log in the game and found all my items gone, even though nobody attacked me. Or Pantheon is being upgraded! which is apparently useless (except for the possibility that makes others jealous) but still takes costs!

But due to the recent change to fight against macro and bot, any transaction except for fight (and sign-up probably) is encoded in the form users cannot decode.

Now, transactions except for attacks (and sign-up) are encoded without opening the encoding spec.

In this way, there is no way for both parties (player and game owner) can prove who's right. How likely we are in the situation isn't the point here. We're talking about the blockchain-based game.

At which time, which transactions should be verifiable depends one the implementation and the game policy. For instance, it we allow almost transaction verifiable, then obviously users who can do programming has too much advantages.

However, they must be verifiable in some way, for instance, delayed verifiability, which I mean transactions can be verified after a certain time. For instance, many dice games are operated this way. The transaction is verifiable after the game.

Inventory (drug/weapon/alcohol/units) log system

Another practical suggestion is the inventory (drug/weapon/alcohol/units) log system. While transaction (if internal transaction is included) verifiability provides the way to verify the inventory at a given time, it needs the replay of all transactions from the beginning, which is inefficient. For instance, a user suddenly came to think the inventory is incorrect, then to verify it, all transactions (including other users to examine the attack) should be examined.

One way to resolve this problem is including the hash of previous "block" as we do for the blockchain itself, but this may be too much for the game. Thus, providing the snapshot of the inventory periodically might be enough.

"Official" fight alarm app
As explained, the only transaction without encoding is fight. I believe the reason why attack isn't encoded is that they want to give a user (who will be attacked) some time for defense. Obviously it's not difficult for users who can do coding to make an attack alarm bot. (I can make a telegram bot easily too if I want.) But this again make other novice users disadvantageous. Thus, such an alarm app should better to be provided "officially."

Other miscellaneous suggestions

  • Steem keychain should also be supported (I believe this is already suggested, but I'd like to emphasize one more unless Steemconnect itself is upgraded so that the posting right authorization is not needed.)
  • No animation and sound in fights? We're living in the 21st century. Even a previous game, Steemmonster provides quite a nice animation and sound. After waiting more than 10 minutes and the just result?

Mockups / Examples

Transaction verifiability

Drugwars should provide certain verifiability for all user-initiated transactions (e.g., upgrade) and internal transactions (e.g., change of reward parameter).

While one way to do this (for user-initiated transactions) is to use custom_json tx without encoding, this may be too much disadvantageous for real human users.

  • (If too much advantages for users using programs is undesirable) transactions should be verifiable. The main idea is the "delayed verifiability."
custom json
required_auths  []
required_posting_auths  
0.  blockchainstudio
id  drugwars
json    {data:"U2FsdGVkX1xMl3Jk5niycpBC01LXhohcZ....", clientseed:"CLIENTSEED"}

user transaction with a clientseed

custom json
required_auths  []
required_posting_auths  
0.  drugwars
id  drugwars
json    {serverseed:"SERVERSEED"}

the server announces the server seed after a certain period time.

After the server seed is announced, all previous transactions since the last server seed can be verifiable with using client seed and the current server seed.

Inventory (drug/weapon/alcohol/units) log system

Verifying the current inventory still requires the replay as explained. To mitigate this burden, providing the following inventory log system would be enough in practice.

One easy way to do this is using encrypted memo.

ex of encrypted memo

Benefits

  • Trust! Without verifiability, why using blockchain?
    Of course, not many people think Drugwars team run away with earned STEEM (even though now many people realize that the reward scheme can change without a enough notice. But again we also know that user feedback can be received :) or manipulate the numbers. However, bugs can happen all the time. Then who can prove which is right? Transactions should be verifiable.
  • Inventory check without login
    Another advantage of the inventory log system is a user can check the inventory even when the drugwars server is busy or without login to their server.

ps. This suggestion is inspired by @emrebeyler's comment on my recent post.
https://steemit.com/drugwars/@emrebeyler/re-blockchainstudio-drugwars-macro-is-prohibited-now-20190323t015724301z
Special thanks to @emrebeyler. Hope Heisenberg will survive in some way.

GitHub Account

https://github.com/economicstudio

Sort:  

Hello, @blockchainstudio. It has been a while. :slightly_smiling_face: You've made such a helpful suggestion for this project. Although I've never played the game before, however, I've seen several users complaining of several things. I will check it out someday perhaps and see for my self what makes the game very interesting and what makes it not enjoyable. The "no sound and animation" on the game makes it boring to play, but I trust that they have something to cover that up. :D

Thank you for using Utopian.

I'm looking forward to your next Idea contribution.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Chat with us on Discord.

[utopian-moderator]

Hi @knowledges, thank you for your review. If you haven't started, it might be already late to start :) But still worth to try since no money is needed to start. Just don't spend steem :) Drugwars teem will hate me :(

Thank you for your review, @knowledges! Keep up the good work!

한글: 드럭워즈 관련 글 몇개 써드리면서 저도 좀 살펴본 김에 블록체인 게임으로써 드럭워즈에 빠진 트랜잭션 검증가능성과 비가역성 부분에 대한 제안을 했습니다. 특히 현재 봇방지를 위해 트랜잭션을 인코딩하면서 사실 서로가 검증할 방법이 없게 되었습니다. 물론 드럭워즈는 할 수 있지만 그걸 플레이어가 믿어야할 이유는 없죠. 아 물론 이론적으로 말입니다. 어차피 스팀이 스마트컨트랙트를 지원하는 것도 아니라서 어디까지나 신뢰기반으로 하는 것이죠.

사실 heisenberg라는 이름의 파이썬 스크립트 만든 emrebeyler가 봇 금지되었다고 알려드린 제글에 남긴

"A blockchain game bans blockchain transactions, what a joke"

를 보고 블록체인 게임이 가져야 할 성질은 무엇일까 나름 갑자기 문득 생각이 나서 급 작성한 글입니다.

사실 블록체인기반으로 하면서 손해보는 점이 많죠. 대표적인게 UX입니다. 아주 반응속도 느리고 영 별로죠. 그럼에도 쓰는 것은 사실 첫째는 보상(incentive)이고 (사실 엄밀히 말해서 블록체인 기반 게임아니어도 보상은 가능하죠) 그리고는 비가역성, 검증가능성 등이 중요요소라고 생각합니다. 물론 탈중앙화는 기본이고요. 어느날 갑자기 먹튀 불가를 위해(물론 이는 스마트 컨트랙등이 보조가 되어야 진정으로 가능해지지만).

어느날 문득 게임 아이템이 사라졌다? 예시된대로 난 누른적도 없는데 죽어라 판테온 업글중이다! 이런 상황을 서로가 확인이 가능해야겠죠. 아무튼 그에 대한 제안입니다.

물론 이전처럼 막 너무 쉽게 다 보이면 봇을 안쓰는 유저가 너무나 불리해지게 됩니다. 이런 점을 방지하기 위해 지연된 검증가능성을 도입하자는 이야기입니다. 일정 시점이 지나서는 검증 가능하게끔.

그리고 검증도 처음부터 다 검증할 필요가 생기면 피곤하니 inventory snapshot도 제공되면 좋은데 이는 암호화 송금메모로 보내준다던지 하는 방법을 쓰는 것도 한 방법입니다.

Thank you for your interest in Drugwars. This post is dope and we wanted to show our gratitude for your involvement with an upvote. Hope that you’ll keep enjoying the game and we have much more surprises for the Drugwars players. Don’t hesitate to report bugs, give suggestions and feedbacks.
See you on Drugwars as a friend or an enemy…

Join us now!

Join our discord!


miti님이 blockchainstudio님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
miti님의 My daily Manual curation report (2019-03-25)

...n/tasteem-cad49a">LINK10%blockchainstudio/td><a href="https://steemit.com/blockchainstudio/dr...

Hi @blockchainstudio!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

믿고 보는 @blockchainstudio님 글.분석하시다가 마약왕되시나용~

곰돌이가 @dakeshi님의 소중한 댓글에 $0.015을 보팅해서 $0.008을 살려드리고 가요. 곰돌이가 지금까지 총 3812번 $45.121을 보팅해서 $47.238을 구했습니다. @gomdory 곰도뤼~

ㅋㅋㅋ 그러게요 원래 증인시리즈물을 쓰려다가 어쩌다 마약에 손을대서ㅋㅋ 사실 이게 저의 첫 블록체인 기반 게임이어서요ㅎㅎ 스몬이 두번째. 사실 둘다 플레이한다고 말하긴 그렇네요. 말나온김에 업글하러가야겠다ㅋㅋ

아래 한글 요약에 써뒀지만 엠레증인이 남긴 커멘트때문에 문득 생각해보게 되었습니다. 감사합니다.

future 토큰이 발행된 obyte에도 @blockchainstudio님의 관심이 쏟아질 날을 기대해봅니다.

하하 안그래도 가장 먼저 떠오른분인데 obyte는 어떤식으로 참여하고 계신중인가요? 번역쪽만 하시는건지 다른 일도 하시는지요. 전 obyte에 파비안도 관련이 있나했는데 그렇진 않을가봐요. 단지 친분이 있고 공식멤버는 아닌건가. obyte 실제 사용사례가 어떻게 되나요? 언제 한번 포스팅해주세요. 사람들이 퓨처때문에 관심 많겠네요. 사실 전 토큰 이런거에 별로 관심이 없어서 스팀헌트도 예전에 줄때 뭐 그때는 스파도 너무 미미해서 받아도 얼마안됐겠지만 까먹고 안했고(구경은 해보고 싶긴했는데) 사실 바이트볼한창 할때도 안받았습니다. 하도 리퍼럴 광고글이 많이 보여서 더 안했던듯ㅎㅎ

가장 먼저 제가 떠오르던가요? ㅎㅎ obyte 프로젝트는 utopian에서 번역 리뷰하다가 obyte 코어 팀에서 user acquisition manager를 담당하시는@punqtured 님 통해서 접하게 되었어요. 이후 obyte에서 발행하는 뉴스레터 번역 맡아서 하고 있고 한국 커뮤니티에서 사용자들 도와주고 있습니다. obyte는 제가 접한 암호화폐 프로젝트 중에서도 가장 특이한 프로젝트인거 같습니다. 우선, 성취도에 비해 국내외에 잘 알려지지 않았습니다. (미스터리에요..ㅎㅎ) obyte는 이미 인프라 구축이 다 끝난 상태고 지금은 mass adoption과 비지니스 영역과의 융합에 초점을 맞추고 있는 단계거든요. obyte에서 초기에 비트코인 보유자를 대상으로 배포를 진행했기 때문에 한국에도 홀더 분들이 꽤 있습니다. fabien 같은 경우 obyte에서도 다양한 공헌을 해서 주요 공헌자로 분류됩니다. obyte.io 를 구축하기도 했고 obyte.js를 만들었죠. obyte는 요즘 IoT 쪽에서도 성과가 조금씩 나오고 있고(최근에 bosch와 합동으로 부스차려서 IoT 결제 시스템 선보였습니다. IOTA가 obyte의 성과물에 긴장하고 있다는 소문이...), prediction market이나 조건부 결제(conditional payment)를 이용한 다양한 사례들(스포츠 베팅, 보험, 항공기 지연 등)이 많이 있습니다. 개인적으로는 solidity를 모르더라도 너무나 쉽게 스마트 계약을 만들 수 있고 오라클 역할도 개인이 쉽게 할 수 있다는 점이 가장 큰 매력인 것 같습니다.

자세한 답변 감사드립니다. 기회되면 좀 더 살펴보도록 해야겠습니다.


@blockchainstudio님 넘치는 사랑 감사합니다~

zorba님이 blockchainstudio님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
zorba님의 [2019/3/11] 가장 빠른 해외 소식! 해외 스티미언 소모임 회원들의 글을 소개해드립니다.

...an님, 태국에서 jisoooh0202님, 미국 캘리포니아에서 livelyshawnee님, 영국에서 blockchainstudio gomdory님, 일본에서 sizuko님, 프랑스에서 eric66님, laylador님, 네덜란드에...

jjm13님이 blockchainstudio님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
jjm13님의 2019/3/26 JJM holder list

...9 jack8831 freegon banjjakism solnamu ryanhkr kevindeby blockchainstudio
virus707에서 이어 받아서 정리하기 위해 다시 포스팅합니다.
JJM에 관심을 가져주셔서 너무...

Hey, @blockchainstudio!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!