PG Channels — 鏈下技術如何應用於 Pig World

XiXi Huang
May 19, 2018 · 5 min read
Image for post
Image for post

前言

虛擬貨幣近年來隨著使用者越來越多,交易量、使用率也越來越大、高,漸漸引發出各個區塊鏈「等待」的問題,因此研究員們紛紛提出各種可以應付這些問題的方法,其中主要幾種的解決方式:

  1. 改變區塊容量大小(擴容)

這些所謂的“方法”五花八門,也產生出很多的事件。例如:比特幣現金(BCH)的出現,就是因為比特幣(BTC)的擴容事件所引發的。

通道(State Channels)

其中通道技術的發明是為了加快幣的交易確認速度,透過把交易挪到檯面下,等到最後要結算時再丟回區塊鏈驗證,實作方法因情況不同而有些差異,但以 Ethereum 實作的話主要方法如下:

情況:小明與小白短期內會有高頻交易的情況出現,
前置作業:已經有部署一個通道的智能合約可以開啟,關閉,驗證,挑戰 通道
1. 開啟一個通道(鏈上)

兩人各自轉 5 ETH進入這個合約,這時通道開啟,裡面鎖住總共 10 ETH
2. 彼此之間透過通道快速交易(鏈下) 「開始」:小明先傳給小白 1 ETH,雙方餘額為(4,6),小明私鑰簽(4,6)
「中途」:小白傳給小明 1 ETH,雙方餘額為(5,5),小白私鑰簽(5,5)
「結尾」:小白傳給小明 1 ETH,雙方餘額為(6,4),小白私鑰簽(6,4)
這些過程都不用等待區塊鏈驗證,只需要使用私鑰加簽後,收件方自行驗證其結果。
實作方式可能透過APP、網站來進行。
3. 某方認為已經結束了,可以把最後的結果丟回區塊鏈(鏈上) 小白認為他跟小白不會在使用通道了,就把「結尾」上傳至通道的智能合約,合約會驗證「結尾」是否為正確的,並等待一段時間。如果時間順利通過沒有人挑戰,將依照最後的「結尾」返還幣給小明與小白。4. 如果某一邊認為結果有誤,可以進行挑戰(鏈上) 假設白目的小白,只傳送「中途」那筆記錄給智能合約,想要隱瞞「結尾」那個交易。
這時小明要趕緊再挑戰期間內,把「結尾」上傳至智能合約來導正。

這只是一個模型,實務上萬一小明把最後一筆交易弄丟了,那怎麼辦?

Pig World 的 PG Channels

透過瞭解 State Channels 技術,Pig World 改良出 PG Channels 技術。使得玩家可以立即得到遊戲結果,不需等待區塊鏈驗證,而 PG Channels 也有挑戰窗口,如果玩家發現結果不對,可以挑戰,挑戰成功 Pig World 罰三倍

以下說明 PG Channels 如何產生,並且如何拿到博弈的 Seed:

Image for post
Image for post
1. 莊家產生「亂數(莊)」,並將「亂數(莊)」進行雜湊,公佈「亂數 Hash (莊)」2. 玩家產生「亂數(玩)」,並將「亂數(玩)」進行雜湊,公佈「亂數 Hash (玩)」3. 玩家公布:賭注4. 雜湊:「亂數 Hash (莊)」、「亂數 Hash (玩)」、賭注,得到與公布「Hash(全)」5. 莊家使用私鑰簽章:「Hash(全)」,並公布6. 玩家使用私鑰簽章:「Hash(全)」、「亂數(玩)」,並公布7. 莊家公布「亂數(莊)」8. 將所有亂數加總並 Hash 後,成為開獎依據的 Seed

*由於莊家在一開始不能得到「亂數(玩)」,再加上「Hash(全)」產生於固定的順序,因此亂數結果是隨機的,除非玩家事先透露「亂數(玩)」給 Pig World。

實作

目前 PG Channels 已經順利運行於 Pig World 的遊戲中,而且 Pig World 跟其他虛擬貨幣博弈網站最大的不同點是,我們會把所有記錄上傳至區塊鏈上,達到沒有任何人能作弊。

但如果每一場遊戲的結果,上傳智能合約後都需要再驗證一次,那會耗費掉不少 Gas,因此我們實務上將記錄的上傳分成兩段。

  1. 記錄上傳:直接依照 Pig World 給的遊戲結果來分配PICO。

挑戰時,我們就會將該遊戲所有用到 PG Channels 的步驟再走一遍。
請參考 Github 內的遊戲合約。

結論

目前因為信任問題,僅適用一位玩家。Pig World 將於未來推出 PG Channels 2、PG Plasma,讓 Pig World 的遊戲可以多人一起進行遊玩。

發想

PG Channels 多人的困境,是一個很簡單的邏輯問題,但不好解答:

假設我有五位玩家,一起建立 PG 通道,萬一有人不公布他的亂數那怎麼辦?

電報群:https://t.me/pigworldcasino

Github:https://github.com/pigworld

粉絲專頁:https://www.facebook.com/PigWorldCasino/

PigWorld

PigWorldCasino

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store