一文读懂Visa提出的「账户抽象」:如何把以太坊改造成自动支付系统?_区块链:以太坊

随着区块链采用率不断提高,人们对于卓越用户体验和支持实际用例的产品需求也变得越来越大。Visa已经为客户提供了便捷的自动扣款和定期自动付款功能,但像以太坊这样的区块链来说,实现这一功能似乎仍存在难度。以太坊是支付量最大的区块链网络,对于某些类型的链上数字钱包来说,定期从用户帐户中自动提取付款仍是一项“大工程”。对此,Visa提出了账户抽象概念,并以此探索如何用智能合约来实现自动化可编程支付,以及演示如何为支持自动提取资金的自托管钱包编写智能合约。用例场景

考虑一个场景:假设今天是2月25日,爱丽丝要去阿尔卑斯山度假,她将于3月10日返回,但又必须在每个月的5日之前支付房贷、有线电视费和水电费,问题是她在休假前并没有足够的钱去付款,不过在3月1日领到薪水时就会有足够的钱。现在问题来了,爱丽丝如何在不拖欠付款的情况下享受她的假期?

卡巴斯基:1/3美国加密投资者或是黑客盗窃受害者:金色财经报道,根据网络安全公司卡巴斯基最新研究报告显示,估计约有30%的美国加密投资者成为黑客盗窃的受害者,他们丢失资产的平均价值接近10万美元,甚至有15%的受访者承认丢失的加密货币价值高达100万美元。数据显示,大部分受害者年龄在18-24岁,55岁以上受害者比例为8%。(cryptopotato)[2023/3/27 13:29:33]

没错,答案就是——自动扣款。事实上,如果爱丽丝有一个银行账户,自动扣款是个非常简单的过程,只需将其扣款账户与Visa卡做个关联绑定即可。不过在区块链上,执行这样一个操作并不那么简单,然而作为一种新技术,值得我们探索上述场景的区块链智能合约解决方案。在进入正题之前,让我们先了解一下以太坊账户的概念,目前以太坊网络上有两种类型的账户:1、外部拥有账户,通常被称为“用户账户”2、合约账户,通常被称为“智能合约”由私钥控制的用户帐户可以发送交易,而智能合约需要关联代码才能执行,但智能合约无法“自己发起交易”,因为交易必须始终源自用户帐户并由用户签名,这些交易包括:以太坊区块链上用户账户之间的简单代币转移,或是触发一系列通过智能合约执行许多不同操作、更复杂的交易。那么,如何在以太坊区块链上实现自动支付呢?

Glassnode:矿工在5万美元区间抛售BTC或是上周比特币价格下挫原因:金色财经报道,据区块链上分析公司Glassnode数据显示,由于过去几周BTC价格徘徊在5万美元附近,其中一些矿工已经开始卖出他们的部分比特币来锁定利润,上周矿工余额中大约有2900枚BTC被卖出,如果按照每枚比特币5万美金的价格,相当于1.45亿美元。据分析,抛售比特币的可能是为了获得法币用以支付运营成本,也可能有一部分被指定用于设施扩建,以及购买二手矿机或采购新的ASIC矿机。或因抛售影响,上周比特币价格出现大幅下跌,本文撰写时为46121.68美元,7天跌幅为10.7%。[2021/9/13 23:20:32]

让我们回顾一下爱丽丝的状况。假设爱丽丝在以太坊区块链上拥有一个用户账户,并且把自己的薪水存放在账户里并用来支付房贷、有线电视费和水电费。今天,为了支付她的账单,必须发起一项交易,将代币从她的“外部拥有账户”转移到收款人的用户帐户。详细点说,爱丽丝的“外部拥有账户”有一个只有她本人才知道的密钥/私钥,也只有她可以使用这个私钥生成椭圆曲线数字签名算法(ECDSA)签名,这个前面对于创建有效交易至关重要。然而如果爱丽丝外出度假,谁来生成这个签名并创建费用支付交易呢?目前有一种解决方案,就是让爱丽丝使用托管钱包,即让第三方控制爱丽丝的私钥。换句话说,爱丽丝信任第三方来保护她的资金并在她想交易或将资金发送到指定账户,这么做的好处是爱丽丝可以通过资金托管方来生成为预定自动付款创建交易所需的签名,但坏处是她必须完全信任这个第三方。那么,如果爱丽丝因为担心风险不想使用托管钱包,而是使用自我保管的钱包并安排自动付款,该怎么做呢?接下来,让我们引入另一个概念——账户抽象。什么是账户抽象?

分析 | Bittrex超4.8万枚BTC转账或是正常的钱包管理:北京链安链上监测系统发现,北京时间10月29日,05:30,交易所Bittrex发生了一笔48571枚BTC的转账,这笔巨额BTC从交易所冷钱包转入到Bittrex主力热钱包后,于凌晨06:13将43652枚BTC转入一个于9月23日创建的Bittrex控制的地址,接着其主力热钱包又将5000枚BTC转入3QiX3x开头地址,从该地址行为表现来看应为服务于用户提币的热钱包,这一系列行为也是Bittrex正常的钱包管理策略。

此前交易所官方渠道已经通知了相关信息,事实上在过去几个小时,Bittrex其它币种也发生了多次大额转账,都属于正常的交易所行为。[2019/10/29]

账户抽象是一项尝试通过使用户账户像智能合约一样运行、并且将用户账户和智能合约合并为一个全新以太坊账户类型的提案。未来,账户抽象将能使我们为自动支付设计一个简洁的解决方案,而且在链上验证交易过程中具有更大的灵活性,比如:1、可通过多重签名验证启用多所有者帐户。2、允许使用后量子签名来验证交易。3、允许一个所谓的公共账户,任何人都可以通过完全取消签名验证来进行交易。本质上,账户抽象允许可编程的有效性来验证和确认任何区块链交易,基于以太坊协议的交易不必完全基于有效性条件的硬编码,而是可以基于“定制化”方式将一些条件写入账户智能合约中。更重要的是,由于可以设置不再包括签名验证的有效性规则,账户抽象支持自动支付,下面就让我们来看看如何实现吧。可委托账户——用账户抽象来实现以太坊链上自动支付功能

动态 | 多位交易员称 OKEx 期货合约系统存在“限价漏洞” 或是昨夜市场异动原因之一:据ChainNews消息,11月14日晚间,比特币价格出现大幅下跌,当比特币价格跌至5800美元价位时,OKEx 上比特币期货合约下跌显著,引起连环爆仓。多位交易员透露,市场出现异常变动一个可能原因是 OKEx 交易系统存在“限价漏洞”,当价格出现下跌之时,该系统限定用户只能发出高于实际市场成交价格的卖单,导致用户无法实时减仓,并出现爆仓;而在市场快速反弹的时候,又相反地使得用户不能发出正常市场上能够成交的限价单,发单价格被卡在远低于市场水平,也无法实现成交。一家加密资产对冲基金交易员表示,这样的漏洞造成的结果就是,当价格出现大幅波动下跌之时,OKEx 的用户无法卖出合约,无法减仓只能导致爆仓。[2018/11/15]

Visa的以太坊自动支付解决方案是利用账户抽象概念并创建一种新型账户合约——可委托账户,其主要想法是扩展交易的可编程有效性规则以包括预先批准的允许列表。简单来说,账户抽象可以将用户账户发起的自动支付操作委托给预先批准的自动支付智能合约。首先,商户需要部署自动支付智能合约。当拥有可委托账户的用户访问商家网站时,他们将看到批准自动支付的请求——类似于Visa接受的账单。此时,用户可以看到自动支付合约将以用户的名义执行操作,其中能够按照用户需要设定参数,比如每月只能向用户收费一次、收费不能超过设定的最大金额等。最重要的是,由于这是一个智能合约,用户可以确信自动支付合约不会以其他方式被执行。如果用户同意批准自动支付,钱包会将自动支付合约的地址添加到用户可委托账户的允许合约列表中。

去中心化稳定币市场HaloDAO筹集350万美元:金色财经报道,去中心化稳定币市场HaloDAO宣布筹集了350万美元的种子轮融资,由Parataxis Capital及许多顶尖天使投资人领投,QCP Soteria、Genesis Block Ventures、Spartan Group、NGC、CMS Holdings、LedgerPrime、Genblock、Petrock Capital等参投。[2021/5/22 22:30:58]

接下来,商户通过调用自动支付合约的charge函数触发支付。自动支付合约就会触发用户的账户发起一笔推送支付交易,这笔交易将是有效交易,因为已被预先添加到允许列表中。

除了经常性支付之外,该解决方案还可以满足现实世界里的其他不同应用,Visa委托账户解决方案未来甚至可以扩展到第三方账户恢复等服务。在StarkNet上实施账户抽象

由于以太坊尚不支持账户抽象,Visa已经在StarkNet上实施可委托账户解决方案,StarkNet是Layer2区块链,建立在以太坊区块链之上,以提高交易吞吐量以及其他功能以改善底层区块链结算层能力,由加密初创公司StarkWare开发。StarkNet的账户模型就是Visa目前所说的账户抽象,抽象账户则会检查交易是否来自给定地址。对于具体账户,如果有人向用户账户发送代币,会与代币合约交互,代币合约会检查用于签署交易以进行此传输的身份是否记录为代币的当前所有者。对于抽象账户,如果有人向您的账户发送代币,也会与代币合约交互,代币合约会检查用于进行此转移的身份是否被记录为代币的当前所有者。对于抽象账户,重要的是谁在执行交易,而不是如何执行交易。借助StarkNet账户模型,Visa能够实施可委托账户解决方案,从而为自托管钱包启用自动支付功能。结论

作为世界上最大的支付网络之一,Visa正在积极探索智能合约创新解决方案,以推动实现可编程货币和支付。自动支付是现有区块链基础设施所缺乏的核心功能之一,但利用账户抽象的概念可以为自托管钱包提供自动定期支付功能,甚至可以将自动支付之外的其他现实世界应用引入区块链,继而为传统支付渠道和新兴支付渠道创造更好的用户体验。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-3:868ms