正在閱讀
【Web3藝術產業入門指南】附上使用說明書的程式碼 – 智能合約工程內容大揭密

【Web3藝術產業入門指南】附上使用說明書的程式碼 – 智能合約工程內容大揭密

【A Beginner's Guide to the Web3 Art Industry】Codes with Instructions Attached - Unveiling the Secrets of Smart Contract Engineering

「智能合約」(Smart Contract)是以太坊提出相當重要的區塊鏈應用,將交易的條款透過電腦化來落實。合約內透明公開地把使用說明和規範標示出來,就像該程式碼的「使用說明書」。也因此工程師和智能合約,無疑是整個區塊鏈專案的基石,他們建構起該專案需要合約執行的規範和規則,以確保所有動作將會自動、不受干擾的運行。

前言

Web3或是NFT的專案都需要一個合約工程師,他們往往肩負著重要的角色。在Web3的世界裡,智能合約成為一個不能不知道的詞彙,感覺想要發起一個Web3的相關專案,不了解一點智能合約是不行的。每當專案出現問題時,我們總把關注的焦點投向智能合約工程師,放大檢視他們的合約有沒有漏洞,卻不得其門而入,也搞不懂「智能合約」所為何物。

本文特別邀請了目前在泰卓鏈(Tezos)生態中,相當活躍的智能合約工程師——NakoOn,帶領我們一起探索並揭開智能合約工程的神秘面紗。

合約工程師NakoOn小檔案

NakoOn目前是akaSwap的首席智能合約工程師,也是台灣少數投入且活躍在泰卓鏈的合約工程師,經手Tez Dozen區塊火車(blocktrain)、白晝之夜和阿妹的ASMeiR NFT等專案,撰寫合約的功力也引起國外fxhash或是objkt.com等知名NFT平台的關注。相比其他擅長撰寫以太坊合約的工程師,NakoOn更專注在泰卓鏈的數位藝術生態,透過他的觀察我們將為大眾揭開泰卓鏈上智能合約的神秘面紗。

NakoOn在踏入區塊鏈藝術生態圈之前,主要在製作VR和沉浸式體驗的相關專案,引用他本來的原話是「從元宇宙的基礎建設轉向了另一種基礎建設」。大學就讀於資工系,研究所則投入虛擬實境體驗的相關研究。在轉換跑道之前,多半在執行VR放鬆體驗,或是博物館的沉浸式體驗。主要工作內容是根據體驗需求的改變,撰寫不同的程式,來協助執行機制的串連,幫助使用者更有效地進入體驗過程,也希望透過機制的建立,來擴大建構VR所呈現的感官世界。後來因為公司的願景和轉型,加上對於區塊鏈世界的好奇和對「機制」的熱愛,轉向開啟了「合約工程」之路。

blocktrain是一個可以自由組裝的NFT藝術專案。(c2x3提供)

什麼是智能合約?

智能合約(Smart Contract)一詞是由學者Nick Szabo於1990年代初期提出,倡議可以將交易的條款透過電腦化來落實,在當時並沒有得到太多迴響,但是隨著區塊鏈技術的興起,以太坊(Ethereum)的出現,強調「智能合約」是這條區塊鏈的特色,一舉將智能合約推向了一個新的層次,讓大眾注意到智能合約的重要性,也成為了區塊鏈上的主要技術和應用。

不過確切來說,使用「合約」這個語彙來形容「智能合約」容易讓我們產生誤解,因為「智能合約」既不「智能」也不完全是份「合約」。它比較像是一段附上使用規範的「程式碼」,透過程式碼,我們可以用來執行我們希望應用的動作。

正如上述所說,智能合約是以太坊提出相當重要的區塊鏈應用,充分利用了區塊鏈公開透明記錄的特色。在《寫給未來社會的新帳本——區塊鏈》一書指出,智能合約必須包含三個要素:

1. 自治:合約一經啟動就會自動運行,無法透過任何人為干預。

2. 自足:智能合約將自主控制其計算所涉及的資源,比較明顯的例子就是「自動分潤」這類的機制。

3. 去中心化:通過分散式的節點來自動運行,非依賴中心化的單個伺服器。

「自動化」、「無法透過人為干預」會是智能合約的重要特性,加上區塊鏈公開透明的性質,非常適合在執行應用動作的代碼加上預設的規則、條款等協議。這種不可更動性,產生了類似「合約」的性質。不過這些智能合約的本質就是一用以執行某些動作和應用的程式碼。

以akaSwap為例,購買NFT就是使用一份智能合約,合約動作包括了:執行買家支付一筆費用,再從賣場將該NFT轉到買家錢包,並依照分潤規則將所得費用分配給賣家、作者和平台方。拍賣、發售等動作同理也會由不同的智能合約來完成。我們可以視智能合約就是一連串動作的集合,並透明公開地把使用說明和規範標示出來,就像是該程式碼的「使用說明書」。

如何檢測一份好的智能合約內容

也因此工程師和智能合約扮演了相當重要的角色,無疑是整個專案的基石。他們建構起該專案需要合約動作執行的規範和規則,以確保所有動作將會自動、不受干擾的運行。那我們可以根據什麼條件來觀察一個智能合約撰寫(或是合約工程師)的好壞呢?

首先,我們可以觀察這條合約是否浪費我們無謂的瓦斯費(gas fee),好的智能合約應該是需要更有效率的執行動作,不會因為無效率的程式執行,導致使用者浪費原本不應該產生的瓦斯費。其次,我們可以觀察該合約是否有漏洞,可能是合約工程師在撰寫過程中,機制設計不良或是思考未有縝密,導致了一些不良使用者,可以透過這些漏洞來獲取不公平的利益。那最後,也可以深入確認這樣的漏洞是無意使然,還是工程師在撰寫合約時,刻意給自己留下的後門或是缺口,便於自己圖利。倘若發現這樣的情況,那勢必是一份最糟糕的智能合約。幸好這些合約協定都公開透明的呈現在鏈上,多少限制了不肖工程師出現的可能性,畢竟每一動作都會在鏈上被記錄下來,供大家放大檢視。

社群和程式之間,「公正」該如何平衡?

公平和公正,往往是專案執行中最在意的事情,也是智能合約在執行過程,最需要好好建構的一環,而「公平公正」的精神也需落實在專案執行的每一個環節。NakoOn向我們提及,之前在執行Tez Dozen專案時,大戰黃牛機器人的精彩事蹟,可以作為一個範例。

Tez Dozen專案是當時非常搶手的PFP專案。(c2x3提供)

Tez Dozen是早期在akaSwap相當成功的PFP專案,一共分成12輪發行,每輪皆在一個區塊(30秒)內完售,亮眼的銷售成績和炙手可熱的二級市場,引起部分黃牛機器人的關注。機器人透過程式指令執行,總是能比「正常人類」購買到較多的數量,或是更快搶到。雖説在區塊鏈專案上,大家各憑本事的搶購是司空見慣的事情,但透過機器人購買還是有點超出了「公平正義」的那條線。在聆聽社群意見和團隊討論後,他們決定針對這些黃牛機器人提出應對措施。

首先,泰卓鏈上各專案都會有各自的黑名單。當時,NakoOn先跟objkt的工程師索取了一份泰卓鏈生態圈的黑名單。另外,就是觀察較少互動、金流流向可疑,或是交易動作可疑的假帳號。由於合約內容是公開透明,有心人士往往會針對合約內容並利用機器人鎖定合約位址來進行搶購。也因此,NakoOn和團隊決定在最後一刻更換合約,讓自動化的黃牛機器人反應不及。較勁的結果反映在搶購結果上,該輪搶購成功的都是循規蹈矩,從前端網頁操作的使用者。這次行動也說明了「合約執行」的公正,不一定完全符合人性和社群期待,在社群大眾期待的「公正」和機制死板執行的「絕對公正」中間是有非常多的討論空間,需要靈活的彈性和對於社群需求的深入觀察。在這樣的前提下,來善用合約工具,而不只是墨守成規。

日新月異的區塊鏈和合約工程,我們需要什麼能力?

最後,NakoOn與我們分享合約工程師,整體使用的程式語言和處理指令的方式,沒有真的與過往的學習相去甚遠。但是在轉職的過程中,由於當時台灣沒有太多泰卓鏈的資訊,比較沒有人可以跟他討論分享智能合約的種種細節,他還是需要爬梳大量的資料和範例來精進合約撰寫的能力。且區塊鏈的變化日新月異,合約工程師必須不斷地更新自己的知識,才能夠了解得更全面。常常專案一開始到撰寫完,鏈上又多了許多功能可以使用,如果沒有常常更新鏈上知識,便很容易被淘汰。

另外,認識社群上的其他角色,觀察其他平台的合約是如何撰寫,多多參與各種面向的討論,都會是身為合約工程師相當重要的功課。指令的執行沒有討論的空間,但是專案服務的對象基本上都是以人的需求為主,在這個過程中,如何找到指令和服務需求的平衡,將會是非常重要的一件事,也區塊鏈和合約工程執行的過程中最有趣的地方。

c2x3|區塊鏈藝術媒體( 19篇 )

由一群區塊鏈藝術觀察者和收藏家所組成,長期關注於生成藝術的發展,並對於 NFT 藝術市場和生態圈感到興奮與好奇。近年嘗試透過書寫,記錄數位藝術在區塊鏈發生的事情、挖掘新興萌芽的藝術創作、剖析創作技巧與科技應用,並針對特定主題作品進行收藏。c2x3 希望可以作為科技─ 藝術─ 群眾之間的橋樑,陪伴大家跨越科技冰冷的高牆。