Go-Ethereum
納稅智能合約的最佳實踐是什麼?
我剛剛被介紹到乙太坊智能合約,並且我有一個與教師相關的項目,暗示了它們的使用。
這個想法是創建一個 DApp,允許客戶(個人)向公共機構納稅(在乙太坊中)。
我的問題是我無法決定哪個高級版本的智能合約遵循最佳實踐:
- 全球智能合約
- 機構創建它
- 機構向其添加客戶
- 有機構地址
- 有一個客戶列表(唯一標識符)
- 檢查付款條件(例如支付的金額==稅款,付款人在客戶列表中,收款人是機構)
- 每個客戶的智能合約
- 機構根據客戶資訊創建
- 持有機構地址
- 持有一個客戶(唯一標識符)
- 檢查付款條件(例如支付的金額 == 稅款,付款人是客戶,收款人是機構)
- 通用智能合約
- 機構創建它
- 檢查付款條件(例如支付的金額==稅)
上述想法在乙太坊 - 智能合約環境中是否可行?
如果是,哪一個是正確的?
如果不是,根據我的想法,正確的智能合約應該是什麼樣子?
很難知道您需要多麼徹底的方法。但是,讓我為您提供一種選擇:
- 機構創建契約
- 機構將人員對象列表添加到契約中
- 一個人對象包含以下數據:
1)乙太坊地址(每個人都必須有一個與他個人綁定的乙太坊地址)
2)需要支付的稅額(以乙太幣計)
之後,契約確保人們以某種方式繳納稅款。在日期 X 之後,機構向契約發出交易,以
makeSureTaxesArePaid
確保所有稅款都已支付。如果沒有,就會發生一些事情。支付給契約的所有稅款可以稍後由其所有者(創建者)從契約中提取。所以這非常接近你最初的想法。
從我的角度來看,我毫不懷疑:第一個解決方案是最佳實踐。
它確保所有需要的行動,除了納稅之外,都由機構負責,這將受益於金錢,即不向誰支付額外工作或額外支出的稅款;此外,它是自然協調的(相反,第二種需要機構和所有納稅人之間的協調);此外,不需要僅為客戶端地址複製 N 個不同的合約。請記住,您為每個部署的單個合約和區塊鏈中佔用的任何字節支付 gas:解決方案 2 中的重複次數過多!
第三種解決方案確實很差,而且並不便宜。
如果任何客戶需要支付不同數量的稅款,Lauri 提出的解決方案可能會很有用,但您的問題並未向我們提供有關此事的資訊。
簡而言之:使用第一個解決方案!
希望這可以幫助!