全球區塊鏈監管查詢平台

繁體中文
下載WikiBit

Visa提「帳戶抽象」,如何把以太坊改造成自動支付系統?

Visa提「帳戶抽象」,如何把以太坊改造成自動支付系統? WikiBit 2022-12-25 08:00

作為世界上最大的支付網路之一,Visa正在積極探索智慧合約創新解決方案,以推動實現可程式設計貨幣和支付。

  隨著區塊鏈採用率不斷提高,人們對於卓越用戶體驗和支援實際用例的產品需求也變得越來越大。Visa 已經為客戶(尤其是年輕客戶)提供了便捷的自動扣款和定期自動付款功能,但像以太坊這樣的區塊鏈來說,實現這一功能似乎仍存在難度。以太坊是支付量最大的區塊鏈網路,對於某些類型的鏈上數位錢包來說,定期從使用者帳戶中自動提取付款仍是一項「大工程」。

  對此,Visa 提出了帳戶抽象(AccoutAbstraction)概念,並以此探索如何用智慧合約來實現自動化可程式設計支付,以及演示如何為支援自動提取資金的自託管錢包編寫智慧合約。

用例場景

  考慮一個場景:假設今天是 2 月 25 日,愛麗絲要去阿爾卑斯山度假,她將於 3 月 10 日返回,但又必須在每個月的 5 日之前支付房貸、有線電視費和水電費,問題是她在休假前並沒有足夠的錢去付款,不過在 3 月 1 日領到薪水時就會有足夠的錢。現在問題來了,愛麗絲如何在不拖欠付款的情況下享受她的假期?

  沒錯,答案就是——自動扣款。事實上,如果愛麗絲有一個銀行帳戶,自動扣款是個非常簡單的過程,只需將其扣款帳戶與 Visa 卡做個關聯綁定即可。不過在區塊鏈上,執行這樣一個操作並不那麼簡單,然而作為一種新技術,值得我們探索上述場景的區塊鏈智慧合約解決方案。

  在進入正題之前,讓我們先瞭解一下以太坊帳戶的概念,目前以太坊網路上有兩種類型的帳戶:

  外部擁有帳戶(ExternallyOwnedAccounts),通常被稱為「用戶帳戶」

  合約帳戶(ContractAccounts),通常被稱為「智慧合約」

  由私密金鑰控制的使用者帳戶可以發送交易,而智慧合約需要關聯代碼才能執行,但智慧合約無法「自己發起交易」,因為交易必須始終源自使用者帳戶並由使用者簽名,這些交易包括:以太坊區塊鏈上用戶帳戶之間的簡單 Token 轉移,或是觸發一系列通過智慧合約執行許多不同操作、更複雜的交易。

那麼,如何在以太坊區塊鏈上實現自動支付呢?

  讓我們回顧一下愛麗絲的狀況。

  假設愛麗絲在以太坊區塊鏈上擁有一個用戶帳戶,並且把自己的薪水存放在帳戶裡並用來支付房貸、有線電視費和水電費。今天,為了支付她的帳單,必須發起一項交易,將Token從她的「外部擁有帳戶」轉移到收款人的使用者帳戶。

  詳細點說,愛麗絲的「外部擁有帳戶」有一個只有她本人才知道的金鑰 / 私密金鑰,也只有她可以使用這個私密金鑰生成橢圓曲線數位簽章演算法 (ECDSA) 簽名,這個前面對於創建有效交易至關重要。然而如果愛麗絲外出度假,誰來生成這個簽名並創建費用支付交易呢?

  目前有一種解決方案,就是讓愛麗絲使用託管錢包,即讓協力廠商控制愛麗絲的私密金鑰。換句話說,愛麗絲信任協力廠商來保護她的資金並在她想交易或將資金發送到指定帳戶,這麼做的好處是愛麗絲可以通過資金託管方來生成為預定自動付款創建交易所需的簽名,但壞處是她必須完全信任這個協力廠商。

  那麼,如果愛麗絲因為擔心風險不想使用託管錢包,而是使用自我保管的錢包並安排自動付款,該怎麼做呢?接下來,讓我們引入另一個概念——帳戶抽象(AccountAbstraction)。

什麼是帳戶抽象?

  帳戶抽象是一項嘗試通過使用戶帳戶像智慧合約一樣運行、並且將用戶帳戶和智慧合約合併為一個全新以太坊帳戶類型的提案。未來,帳戶抽象將能使我們為自動支付設計一個簡潔的解決方案,而且在鏈上驗證交易過程中具有更大的靈活性,比如:

  可通過多重簽名驗證啟用多所有者帳戶。

  允許使用後量子簽名來驗證交易。

  允許一個所謂的公共帳戶,任何人都可以通過完全取消簽名驗證來進行交易。

  本質上,帳戶抽象允許可程式設計的有效性來驗證和確認任何區塊鏈交易,基於以太坊協定的交易不必完全基於有效性條件的硬編碼,而是可以基於「定制化」方式將一些條件寫入帳戶智慧合約中。

  更重要的是,由於可以設置不再包括簽名驗證的有效性規則,帳戶抽象支援自動支付,下面就讓我們來看看如何實現吧。

可委託帳戶——用帳戶抽象來實現以太坊鏈上自動支付功能

  Visa 的以太坊自動支付解決方案是利用帳戶抽象概念並創建一種新型帳戶合約——可委託帳戶,其主要想法是擴展交易的可程式設計有效性規則以包括預先批准的允許列表。簡單來說,帳戶抽象可以將用戶帳戶發起的自動支付操作委託給預先批准的自動支付智慧合約。

  首先,商戶需要部署自動支付智慧合約。當擁有可委託帳戶的用戶訪問商家網站時,他們將看到批准自動支付的請求——類似於 Visa 接受的帳單。此時,用戶可以看到自動支付合約將以用戶的名義執行操作,其中能夠按照使用者需要設定參數,比如每月只能向用戶收費一次、收費不能超過設定的最大金額等。最重要的是,由於這是一個智慧合約,用戶可以確信自動支付合約不會以其他方式被執行。

  如果用戶同意批准自動支付,錢包會將自動支付合約的位址添加到用戶可委託帳戶的允許合約列表中。

  接下來,商戶通過調用自動支付合約的 charge(收費)函數觸發支付。自動支付合約就會觸發用戶的帳戶發起一筆推送支付交易,這筆交易將是有效交易,因為已被預先添加到允許列表中。

  除了經常性支付之外,該解決方案還可以滿足現實世界裡的其他不同應用,Visa 委託帳戶解決方案未來甚至可以擴展到協力廠商帳戶恢復等服務。

在 StarkNet 上實施帳戶抽象

  由於以太坊尚不支援帳戶抽象,Visa 已經在 StarkNet 上實施可委託帳戶解決方案,StarkNet 是 Layer2 區塊鏈,建立在以太坊區塊鏈之上,以提高交易輸送量以及其他功能以改善底層區塊鏈結算層能力,由加密初創公司 StarkWare 開發。StarkNet 的帳戶模型就是 Visa 目前所說的帳戶抽象,抽象帳戶則會檢查交易是否來自給定位址。

  對於具體帳戶(concrete accounts),如果有人向用戶帳戶發送 Token ,會與 Token 合約交互, Token 合約會檢查用於簽署交易以進行此傳輸的身份(金鑰)是否記錄為 Token 的當前所有者。對於抽象帳戶(abstract accounts),如果有人向您的帳戶發送 Token ,也會與 Token 合約交互, Token 合約會檢查用於進行此轉移的身份(合約)是否被記錄為 Token 的當前所有者。對於抽象帳戶,重要的是誰(位址)在執行交易,而不是如何(簽名)執行交易。

  借助 StarkNet 帳戶模型,Visa 能夠實施可委託帳戶解決方案,從而為自託管錢包啟用自動支付功能。

結論

  作為世界上最大的支付網路之一,Visa 正在積極探索智慧合約創新解決方案,以推動實現可程式設計貨幣和支付。

免責聲明:

本文觀點僅代表作者個人觀點,不構成本平台的投資建議,本平台不對文章信息準確性、完整性和及時性作出任何保證,亦不對因使用或信賴文章信息引發的任何損失承擔責任

  • 通證換算
  • 匯率換算
  • 購匯計算
/
當前匯率
可兌換金額

0.00