bsv鏈上雙人玩剪刀石頭布

鏈上玩剪刀石頭布(Rock Paper Scissors)

無需依賴外部Oracle,無需依賴可信第三方,我們即可以在Bitcoin SV區塊鏈上進行雙人剪刀石頭布遊戲。流程如下:

  1. 玩家A發起合約,壓2bsv,並附帶公開hash(a | pubkey)。a是R、P、S之一;pubkey 是A的未公開的公鑰。

  2. 玩家B花費如上utxo,追加1bsv,並公開b。b是R、P、S之一。

  3. A發起結算,合約需驗證A的公鑰和簽名:

    獲勝規則爲:P > R > S > P,如果相同則平局。

   if a > b :
      A win,得3bsv
      B lose, 得0bsv
   else if a < b:
      A lose, 得1bsv
      B win, 得2bsv
   else:
      A draw, 得2bsv
      B draw, 得1bsv

實現

玩家A可以發起抵押任意額度的bsv到合約,玩家B當前只需追加1半額度。但爲了提高玩家A結算的積極性,可以適當降低玩家B的抵押比例。

合約源碼:rps.scrypt
部署代碼:rps.js

測試網發佈測試

  1. 玩家A發起合約,抵押0.001 BSV:tx-init

  2. 玩家B參與,出“布”,並追抵押A的一半,0.0005 BSV:tx-follow

  3. 玩家A結算,自己出“石頭”,輸了,玩家B得0.001 BSV:tx-finish

注意事項

玩家A的pubkey一定不能在玩家B參與之前公開。上面測試網Tx沒有嚴格按這個約束,當前部署代碼已作調整,無此問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章