[閒聊] 這東西有人做過了嗎?

看板DigiCurrency (數位貨幣)作者 (闇黑聖飢魔)時間6年前 (2018/06/06 08:33), 6年前編輯推噓7(708)
留言15則, 6人參與, 5年前最新討論串1/1
UTXO架構的區塊鏈的智能合約 且能夠進行區塊鏈原生幣的轉移 請問這個東西有什麼團隊做過嗎? 講具體一點可能就是 一個比特幣上的智能合約架構 合約可以持有比特幣 可以轉錢到其他合約 或某人的收錢地址 也能接受其他合約或某人 轉來的比特幣 其實就是很像以太坊那樣 差別在於以太坊是account架構 不是比特幣的UTXO架構 (我知道以太坊的Design Rationale 有說明為何採用account架構啦 但我覺得privacy的重要性還是有討論空間) 是這樣的啦 小弟我現在碩二想寫論文混畢業 左思右想 所有我做過的東西裡 可能這東西勉強可以拿來說嘴 但不敢確定是不是沒人做過 我有稍微查一下現有的智能合約 Hyperledger是私有鏈 好像沒有幣 各種Altcoin大都是改進比特幣script 然後就說他是智能合約 但其實script無法實現上面說的 (最根本的問題應該是一個script只能控制一個output 所以無法控制要轉多少錢出去) 可能有某些冷門的幣或是論文是我漏掉的 因此還請各位板友開示 感激不盡 =============================================================================== 更新: 深入研究了一樓提到的Qtum 它的確實現了我要做的事情 但在細節上它採用的解法還是跟我有點差異 Qtum的合約 在VM裡執行到轉錢的指令時 會構造一個額外的交易 專門轉移合約的錢 這個轉移合約錢的交易 inputs就是從合約所擁有的outputs挑選 (與錢包構造交易時進行的coin selection是一樣的意思) outputs就是別的合約或是收款人地址 以及找錢給原來的合約 他這種解法的缺點 自然就是多了轉移合約錢的交易 佔用區塊空間 合約轉錢越多次 佔用區塊的空間也越多 而且他要在挖礦流程動點手腳 使得觸發合約執行的交易和轉移合約錢的交易被包在同一個區塊 而優點大概就是reorg比較容易復原UTXO吧 因為UTXO的改變都明確記錄在交易的input/output裡 所以不用多寫程式碼去復原UTXO 比特幣原本的程式碼會統一解決 而我的解法 基本上就是VM執行到轉錢指令時 直接讓VM去改變UTXO (首先做coin selection把屬於此合約的UTXO花掉 接著添加新的UTXO) 而不是另外構造專門轉錢的交易來改變UTXO 優缺點剛好跟上述Qtum的解法相反 簡潔不繞圈子 但要加點程式碼讓reorg時能復原UTXO 不過我覺得我的解法還是略勝一籌 只要加程式碼讓VM轉錢時留下UTXO變化的記錄 很容易就能接上比特幣原本的程式碼來復原UTXO 關鍵就是「讓VM可以改變UTXO 而不是只讓交易改變UTXO」這件事 這是我思考以太坊的運作 而領悟到的究極奧義 (比特幣的UTXO相當於以太坊的world state) 不知是否有團隊已經先行參透 並運用到UTXO架構的區塊鏈上了 參考: Qtum Team裡的人解釋如何讓UTXO model裡的合約轉錢 (https://forum.qtum.org/topic/48/how-qtum-makes-ethereum-contracts-run-on-the-utxo-model) Qtum白皮書 (https://qtum.org/user/pages/03.tech/01.white-papers/Qtum%20Whitepaper.pdf) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.232.231 ※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1528245227.A.095.html

06/06 08:47, 6年前 , 1F
量子鏈
06/06 08:47, 1F
太感謝了 related work + 1

06/06 08:59, 6年前 , 2F
bch的op code?
06/06 08:59, 2F
這是不是還沒出來呀 但可能也會實現差不多的功能

06/06 12:30, 6年前 , 3F
有蠻多計畫是要在bitcoin上面加上smart contract
06/06 12:30, 3F

06/06 12:31, 6年前 , 4F
不過因為bitcoin手續費太高,幾乎沒有任何意義了
06/06 12:31, 4F
所以題目是擴大範圍到UTXO架構的區塊鏈 比特幣只是拿來舉例而已

06/06 12:31, 6年前 , 5F
06/06 12:31, 5F

06/06 12:42, 6年前 , 6F
不過它並非轉移原生幣,而是counterparty自己的token
06/06 12:42, 6F
對 我看到FAQ說沒辦法轉移比特幣了 Can smart contracts work with Bitcoin 那段 https://goo.gl/pukcmw 我認為token在實作上只是合約程式碼裡面自訂的變數而已 token的轉移說穿了只是合約內部把某人扣掉多少 再把另一個人加上多少而已 所以應該是相對容易實現 但原生幣就比較麻煩 舉例來說 在比特幣上做的智能合約架構 如果要讓合約能夠持有比特幣的話 合約必須要有自己的UTXO集合 且不能讓別人花到 (這應該不trivial 因為合約不可能透過保管私鑰來持有UTXO) 一樓提到的Qtum好像能做到這件事 稍微看了一下它的解法 可能跟我想的自以為還算漂亮的解法 有87%相似 (雖然我是沒有要用Solidity和EVM 但總之最底層的概念應該一樣) 覺得有點難辦 當然我還是得再深入Qtum來確認

06/06 12:45, 6年前 , 7F
IOTA Qubic的智能合約?
06/06 12:45, 7F

06/06 12:45, 6年前 , 8F
不好意思文組沒能力分別,只能給你連結= =
06/06 12:45, 8F

06/06 12:45, 6年前 , 9F
他好像沒有教怎麼寫合約耶 應該是還沒做出來?

06/06 13:32, 6年前 , 10F
rsk 做很久了 https://www.rsk.co/
06/06 13:32, 10F

06/06 13:35, 6年前 , 11F
Qubic盡是宣傳資料,合約語言,VM,如何共識,如何存放,細節通
06/06 13:35, 11F

06/06 13:35, 6年前 , 12F
通不打算交待
06/06 13:35, 12F
稍微看了一下RSK 他應該是用側鏈做到轉移比特幣的 跟我說的直接在比特幣鏈實作一個智能合約架構來轉移比特幣不太一樣 不過我現在才知道原來側鏈就是用來做這件事 學習了 另外總覺得Qubic很難達成共識 畢竟每個full node處理tangle的交易的順序是不一樣的 很難讓每個full node的合約狀態一致

06/07 01:09, 6年前 , 13F
推 有意思
06/07 01:09, 13F
※ 編輯: kugwa (140.112.232.231), 06/08/2018 06:16:21

07/12 21:15, 5年前 , 14F
926字 * 8星 = 7408 PCH
07/12 21:15, 14F

07/12 21:26, 5年前 , 15F
文章代碼(AID): #1R5olh2L (DigiCurrency)
文章代碼(AID): #1R5olh2L (DigiCurrency)