※ 本文轉寄自 ptt.cc 更新時間: 2023-12-18 14:31:13
看板 DigiCurrency
作者 標題 Re: [Coin] 銘文Token合約
時間 Sun Dec 17 20:25:44 2023
很久沒發技術文了,因為這波就是沒什麼新技術啊,meme幣整天博傻,動物園都快蓋好了。
就算是最近被吹上天的BRC-20講的好像BTC的Defi summer,
但實際上類似的東西,10年前的BTC在還未有ETH生態系就玩過了。
mastercoin可以玩代幣,counterparty還可以玩智能合約咧。
BCH之前也早就玩過SLP token了,USDT甚至有在SLP上發行咧。
https://i.imgur.com/g9zbGoe.png
https://tether.to/en/transparency/#usdt
但這種代幣玩法實際上就是劣化版的ERC-20,更不用談什麼defi summer了。
既然原PO講到了,就來講一下技術上BRC-20與ERC-20上的不同。
ERC-20是由圖靈完備的EVM所執行的程式語言代幣標準,EVM是由礦工執行與驗證的。
所以ERC-20上的mint, transferFrom等方法當然都是由礦工執行與驗證的。
而且因為最新的state都是已經和智能合約儲存在區塊鏈上了。
所以所有的代幣參與者都可以從區塊鏈上取得最新的"共識"。
所以所有的代幣參與者都可以從區塊鏈上取得最新的"共識"。
整個交易安全都是由區塊鏈確保的,因為礦工已經幫忙驗證過了,所以不用重新驗證。
更重要的因為是由EVM所執行的,所以自訂化程度很高,也可以和後續的DeFi相容。
像是DEX交易,staking,AMM等DeFi玩法,要更詳細的資訊可以看下面文章。
https://www.toptal.com/ethereum/create-erc20-token-tutorial
ERC20 Token Tutorial | Toptal®
This Ethereum tutorial demonstrates how you can create and deploy your own ERC20 token in under an hour. ...
This Ethereum tutorial demonstrates how you can create and deploy your own ERC20 token in under an hour. ...
而BTC並不支援圖零完備智能合約,
所以從以前到現在的玩法就是把BTC的區塊鏈當作資料庫使用。
以前用OP_return可以在BTC上寫入額外的資料,
不過Luke等開發者不想讓BTC太好用就限縮了OP_return的使用,免得spam attack
https://www.panewslab.com/zh_hk/sqarticledetails/4nl41tx7aw2u.html
直到Bitcoin Core用萬能的soft-fork完成了taproot升級。
被人發現taproot有bug,不~~是feature。可以用taproot程式碼繞過交易大小限制。
可以把整個區塊用taproot交易的程式碼區段塞滿滿,當然也就可以塞資料進去
https://web3plus.bnext.com.tw/article/271?
https://i.imgur.com/WronFGn.png
這種方式就是ordinal協議,可以在區塊鏈上附加任何資訊,既然可以加上圖片。
那當然也可以也可以附加純文字檔。
就有人想到程式語言的通用資料格式json用來附加交易資訊。這時BRC-20就誕生了。
https://domo-2.gitbook.io/brc-20-experiment/
brc-20 - brc-20 experiment
Read every word if you decide to test. These will be worthless. Use at your own risk. ...
Read every word if you decide to test. These will be worthless. Use at your own risk. ...
譬如創建一個BRC-20代幣ORDI就是上面那個json指令。把各個欄位定義好就行。
https://i.imgur.com/rFibDxB.png
其他的操作也是簡單到有點簡陋了。
https://i.imgur.com/yEw1kYd.png
https://i.imgur.com/owNLKej.png
比較特別的就transfer是直接用UTXO機制,ordinal的UTXO跑到哪邊就是誰的,
所以只需要填數量就好。
那為什麼說這其實是劣化版的ERC-20呢?
因為上面的這些操作指令"礦工不驗證",所以其實可以亂寫都沒差。
譬如說我只有1 ORDI,但是我transfer寫我傳1000 ORDI都可以被"礦工確認"。
譬如說我只有1 ORDI,但是我transfer寫我傳1000 ORDI都可以被"礦工確認"。
所以就需要靠額外的index server去"驗證"那些BRC-20交易是"真的有效"。
這問題就導致了中心化index server的產生,
一般人只能去"相信"這些index server是誠實不作惡的。而非trustless。
就算server誠實,但這也會是安全性的single point of failure。
要入侵單一server比入侵整個區塊鏈網路簡單太多了。
https://twitter.com/0xmetazen/status/1723734111704244487
另外一個問題就是這些index server會變成整個系統的效能瓶頸。
這問題以前在BCH SLP上就發生過了,index server常常會overload或是離線。
那就不要只跑一個index server,去中心化跑很多個就好了啊~~~
然後你又會得到一個新問題,可憐啊~~
https://abmedia.io/asset-security-brc-20-version-discrepancy
資產安全|BRC-20 版本出落差,部分平台暫停相關交易 | 鏈新聞 ABMedia
BRC-20 代幣出現多重版本同時在多家交易所運行,可能造成雙花問題 (Double Spending) 導致用戶資產損失,鏈新聞建議用戶此時不要進行交易。 ...
BRC-20 代幣出現多重版本同時在多家交易所運行,可能造成雙花問題 (Double Spending) 導致用戶資產損失,鏈新聞建議用戶此時不要進行交易。 ...
這本身已經是劣化版的ERC-20在劣化的區塊鏈BTC上,問題只會更嚴重。
永恆牛市需要永恆mempool
https://jochen-hoenicke.de/queue/#BTC,24h,weight
然後就有這種玩法:
https://news.cnyes.com/news/id/5412431
https://twitter.com/evilcos/status/1735685957662441563
用低BTC手續費卡住mempool,漲價了就用tailTodd發明的RBF加速交易。
跌價了就ToTheMempool,等它自然被踢出mempool就好。
也難怪Luke把這東西當作bug,還寫到CVE list裡面了。
https://tinyurl.com/brjms38t
Bitcoin Developer Luke Dashjr Registers Ordinal Inscriptions Workaround as a Vulnerability – Bitcoin News
Luke Dashjr registered the method that allows Ordinals to embed data directly on top of the Bitcoin blockchain as a vulnerability. ...
Luke Dashjr registered the method that allows Ordinals to embed data directly on top of the Bitcoin blockchain as a vulnerability. ...
因為這種做法問題實際上很多。
所以BCH後來就用CashToken這種礦工驗證的代幣標準來取代SLP標準了。
回到正題,假如真的要用ETH智能合約寫BRC-20這種玩法可以怎麼寫呢?
首先當然就是摒棄ERC-20標準,因為ERC-20標準裡的方法與資料結構都是礦工驗證的。
我們只需要把區塊鏈當作資料庫使用就好。
下面就隨便寫一個把智能合約當作字串資料庫的程式碼,
沒經過任何驗證檢查,只是要方便講概念。
pragma solidity ^0.8.0;
contract LongStringArray {
string[] public strings;
function write(string memory newString) public {
strings.push(newString);
}
function read() public view returns (string[] memory) {
return strings;
}
}
有最簡單write和read function可以讀寫這個字串資料庫。
所以只要用write(newString)寫入BRC-20標準的json字串進去理論上就可以使用了。
index server則是用read去讀這個字串陣列資料庫去驗證交易並且得出所有餘額。
不過BRC-20有些操作必須改一下,就是因為ETH等EVM鏈是account模式。
所以mint與transfer的操作必須加上地址欄位。
可以額外寫這些function,
讓合約操作者方便呼叫這些function就可以把這些json格式的指令寫入到strings中。
後面就不寫了,在EVM鏈上做這種事情真的是沒有意義的事情。
有興趣的人自己研究吧。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.80.199 (臺灣)
※ 作者: DarkerDuck 2023-12-17 20:25:44
※ 文章代碼(AID): #1bVkZA-D (DigiCurrency)
※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1702815946.A.F8D.html
※ 編輯: DarkerDuck (114.27.80.199 臺灣), 12/17/2023 20:48:10
※ 編輯: DarkerDuck (114.27.80.199 臺灣), 12/17/2023 21:13:14
--
※ 編輯: DarkerDuck (114.27.80.199 臺灣), 12/17/2023 21:13:14
推 : 持續關注技術1F 12/17 20:54
推 : 推推2F 12/17 20:58
推 : 推3F 12/17 21:13
推 : 推4F 12/17 21:19
推 : 看不懂還是默默推了5F 12/17 21:26
推 : Eth 上已經有了,叫 ethscriptions ...真的莫名其妙lol6F 12/17 21:28
推 : 推~~~7F 12/17 21:53
推 : 在EVM上發銘文就是一件很瞎的事情,但是幣圈就是有一個怪現8F 12/17 22:05
→ : 象,越沒用的東西越能夠賺錢
→ : 象,越沒用的東西越能夠賺錢
推 : 原來BRC-20不只是垃圾,還是垃圾中的垃圾10F 12/17 22:17
→ : 這不修掉對BTC不是好事,畢竟是加密貨幣龍頭,
→ : 鍊上都是垃圾是怎樣
→ : 這不修掉對BTC不是好事,畢竟是加密貨幣龍頭,
→ : 鍊上都是垃圾是怎樣
推 : 現在鏈上卡了一堆垃圾 Gas高礦工爽 打銘文的遲早要歸零13F 12/17 23:20
推 : 換句話說ERC20做成銘文就是放棄礦工驗證,給莫名的in14F 12/17 23:35
→ : dex server驗證XD
→ : dex server驗證XD
推 : 推 這波亂噴一波16F 12/17 23:36
推 : 推 不過賭徒無所謂安全不安全 有人當流動性能下車就行17F 12/18 00:17
推 : Luke XDD18F 12/18 01:04
※ 編輯: DarkerDuck (122.121.132.61 臺灣), 12/18/2023 01:11:35推 : 推19F 12/18 03:05
推 : 現在風氣就是管他什麼內涵 反正fomo進去 然後翻了幾倍20F 12/18 05:17
→ : 財富自由
→ : 財富自由
推 : 推22F 12/18 09:54
推 : 也不是不能衝 也不一定賺不到錢 但你要明白銘文就23F 12/18 10:13
→ : 是垃圾 拿你的真錢衝垃圾 值不值得 風險會不會大
→ : 就自己判斷了
→ : 是垃圾 拿你的真錢衝垃圾 值不值得 風險會不會大
→ : 就自己判斷了
推 : 加密貨幣就是充斥一堆垃圾 才讓一般人不敢進場26F 12/18 10:37
推 : 推27F 12/18 12:21
推 : EVM版的銘文甚至不用寫到storage 用calldata還更省gas28F 12/18 13:06
推 : 用evm捏銘文幣某種程度上也算一種行為藝術了lol29F 12/18 13:43
--
※ 看板: DigiCurrency 文章推薦值: 0 目前人氣: 0 累積人氣: 25
作者 DarkerDuck 的最新發文:
- 83F 20推 3噓
- Gary Gensler這個幣圈人的眼中釘下台啦。 接替者Paul Atkins被認為是加密貨幣友善的官員。 BTC也隨著美股創新高破十萬美元的歷史紀錄。354F 225推 11噓
- 目前BTC繼續強勢往上,不過ETH仍然維持穩定,剛剛才小拉一下。 總算讓BTC+ETH價格破十萬鎂,也算是個里程碑了。 MSTR交易量最近異常龐大,甚至超越NVDA達到美股第一,又是個里程碑。 ET …232F 142推 4噓
- 24F 5推
點此顯示更多發文記錄
回列表(←)
分享