2021-04-03 感应合约 “1+9” + AMA 简记

2021-04-03 感应合约 “1+9” + AMA 简记

April 3, 2021
Retrospective
Sensible Contract, Presentations


4月2日晚 20:00,我们在 sensible-public 做了一场 AMA,这里是简单的回顾。

原计划时间:

20:00 sensible intro
20:05 swap/volt
20:10 metacoin/showapp/sensiblescan
20:15 satoplay/overshoot
20:20 sensible api
20:30 AMA (30mins)

原计划的大致安排:

  • 我先起个头,花 5 分钟介绍一下感应合约的来龙去脉,提供一些参考。
  • 前半个小时大家介绍下自己的项目,说明一下与方案的结合点。
  • 后半个小时是自由提问时间,我们这边参与感应合约的开发人员,会回答各位提出的问题 (回答者将主要是蒋杰,cc,王宇,旺仔,王福强王总,冯新宇冯总和我)。

后来问答一直进行到 21:30。



感应合约相关 #

关于感应合约的简短历史,大家可以在官网的首页下方找到。
作为简史,这里面忽略了大量的细节。对其中某一个想法,是如何产生的,在东澳岛的 Bootcamp 上,我们时间相对充裕,可以有深入的探讨。

我先介绍下感应合约的两个核心: 溯源 & 协作

其中,

  • 溯源用于低成本确认合约的有效性,是 FT/NFT 等各类价值单位得以实现的前置条件。
  • 协作则用于合约之间彼此确认身份,匹配及响应,是各类 Dapp/Defi 得以实现的前置条件。

有了这核心的两点,我们有理由期待,以太坊上各类已实现的 Dapp,在 BSV 上将有机会被实现得更好。

所有这些,从成本角度,以人民币计价,交易成本低至 ¥0.1-¥0.5,是以太坊的百分之一。而且,不管代码优化,还是费率优化,都还有极大的改进空间。

现在我先带大家走马观花,看一下我们的核心协议和组件。

FT & NFT #

在 FT 和 NFT 这一块,我们与对标的以太坊协议尽量保持一致,以便于以太坊上开发的同学能以最小的成本迁移过来。

我们可以看到 BCP03 是 Unique Contract,这个是一个特别的对链上全局状态进行管理的协议。

这个协议有很大的应用领域,最典型的比如swap,等下王福强王总应该会有讲。

Angus 同学曾问,通过 utxo 来管理全局状态,会不会不是很好。这一点对后续各类 Dapp 开发会有重大的影响,值得分析一下。我把当时在开发群回复 Angus 同学的聊天记录补在这里,大家感兴趣可以读一下。这里时间有限,就不展开了。

总得来说,这些协议,实际上类似设计模式或范式 (Paradigms),是我们期望形成的 BSV 上合约模型的最佳实践。

我们希望这些造好的轮子可被直接用于生产环境。后续我们也会逐步增加更多的基础协议,应对不同的情况下的范式。

satotx #

核心工具这块,我介绍一下蒋杰实现的默认签名器 satotx。

这个签名器非常小巧。可以部署在 aws 的 lambda 上,具体的部署文档可以看这里:

https://sensiblecontract.org/docs/sensible/docs/2021-03-31-aws-lambda-deploy/

satoblock #

satoblock 这个是对区块进行分析,提供合约相关的交易的识别,用途是比较广泛的。

它既可以被用于旺仔的 MetaSV 接口提供,也可以被用于 SensibleScan 的各类资产及合约浏览器。

其他的工具和服务,时间关系,我就不逐一介绍了。

“1+9” 中的 9 大应用 #

请注意,时间及篇幅关系不再提供当时的各自截图。

项目 Volt/TokenSwap 的分享 (王福强) #

TokenSwap     TokenSwap

TokenSwap 基于 Sensible Contract 打造的去中心化 Swap 及交易系统, 是 Bitcoin SV 上的 AMM & DEX。

Volt     Volt

volt.id 是一款不需要助记词的钱包,依靠人脸识别保证资金安全和钱包的简单易用,只要会用手机的都能容易上手钱包,而且不用担心助记词的备份和丢失。Volt 钱包正在集成 Sensible 方案的 FT/NFT,将在后续版本中开放。


以下部分是王福强的分享:

Volt在做Sensible token的钱包集成,月内上线正式版

Sensible 和BTP 合并之后的方案可以更好的满足DeFi应用的开发,这也是我们一直期望在BSV上出现的东西

(以下图略,后同)

如上所示,Volt钱包的api/sdk会开放给第三方开发,任何基于sCrypt的Dapp都可以用Volt的方案完成搭建以及用户登录,付款,和合约的复杂交互等等

用户将可以在Volt里面管理Dapp,查看授权情况,随时和Dapp切断链接和授权,防止过度授权

下一步是在TS上测试更复杂的功能,如:swap,流动性提供等等

限于时间,我暂时分享这么多 @顾露

项目 MetaCoin/ShowApp/SensibleScan 的分享 (冯新宇) #

MetaCoin     MetaCoin

MetaCoin 是一个由开放元网基金会发行的,用于激励用户使用 MetaID 相关应用,创造 MetaID 交易的通证。

ShowApp     ShowApp

ShowApp 是一个基于 MetaID 的社交软件和钱包,将支持 Sensible Contract 作为其 token/NFT方案,也将支持用户 P2P 交易 Sensible 方案的 token/NFT。

SensibleScan     SensibleScan

SensibleScan 是一个 Sensible 通证和智能合约浏览器。用户可以查看基于 Sensible 方案的各种通证发行和转移情况和各个智能合约详情。


以下部分是冯新宇的分享:

Hi,大家好

我想先说一下我们决定支持/采用Sensible方案的背景

我们其实之前一直在计划基于MetaID的Token方案,同时也在考虑Tokenzied作为备选方案,直到我们在元旦期间第一次看到Sensible方案。Sensible在我们看来,是技术上最接近最优解的方案,可以实现ETH上大部分功能,将是一个Game Changer产品。里面有很多天才性的创新,所以我们决定抛弃我们原来计划 ,全面转向和其他团队一起开发/完善这个方案。

现在我们团队负责Sensible方案的一些周边配套工具,以及我们MetaID和Show系列应用都会全面支持Sensible方案 我接下来会介绍下我们未来一个月会陆续推出的产品

首先,我们会基于Sensible推出一系列的Token产品

比如MetaCoin。可能这里有些朋友每天已经在努力获取MetaCoin了:)

MetaCoin是一个由于开放元网基金会发行的,用于激励用户使用MetaID相关应用,创造MetaID交易的通证。每日发行一次,采用PoMF的分配机制。发行总量8亿枚。

接下来我们还会基于Sensible发行MetaCoin的 NFT纪念版

这个将每张卡都是全球唯一的NFT卡

还有ShowCoin,这是ShowApp发行的用于激励用户使用和分享ShowApp的一种Token,也是完全基于Sensible方案

另外,我们ShowApp也在全力适配Sensible方案,可以在上面实现Sensible方案的接收、转发、管理等工作

我先分享一些界面,这些功能预期4月份上线。

这个是Sensible相关token的转账界面,到时可以发送到所有支持Sensible方案的钱包

这个是Sensible Token的管理界面

更重要的是,我们支持了Sensible方案的P2P交易

用户可以直接通过对话界面,向对方发送Sensible token的交易请求

另外,我们也很荣幸能参与到Sensible方案的一些配套工作的开发上

比如Sensible方案的第一个智能合约浏览器SensibleScan就是我们负责开发

SensibleScan是一个Sensible相关Token和智能合约的浏览器,在这上面可以查看Sensible智能合约的一切信息。

只是很可惜,由于我们开发任务太多,这个项目估计要再迟几天才能上线,不过欢迎大家先关注 sensibleScan.com

我们show团队的介绍就到这里,谢谢各位。@顾露

项目 MetaSV 的分享 (何启明) #

MetaSV     MetaSV

MetaSV 是基于AWS云服务搭建的的区块链数据服务商,正在支持基于感应合约的 NFT 和 FT 相关的数据查询。


以下部分是何启明的分享:

大家好,我是旺仔

我今天介绍一下MetaSV对Sensible的一些支持计划

MetaSV是基于AWS云计算搭建的BSV数据服务商。主要面向开发者和创业团队,提供快捷便利的数据服务

MetaSV计划针对Sensible 合约提供数据查询,spv证明,utxo索引,签名机等服务。依托MetaSV现有云计算基础设施,希望开发合约的应用可以高效自动化地管理区块链数据,提供稳定高可用的商用级区块链云服务。

MetaSV提供了合约应用所需要的基础功能,包括utxo查询,交易广播,生交易状态等常用功能,

未来计划基于现有全量数据和大数据处理框架,推出针对sensible合约的定制化的数据服务。

另外,MetaSV在现有sensible签名机的机制上,提出一套基于证书的签名机管理机制,可以解决当前合约无法追加和回收签名机的问题,希望以后可以作为高级功能集成和使用到合约中。

概括一下,MetaSV主要面向开发者,提供稳定高可用的区块链合约服务。为应用方提供便利,降低开发成本,提高开发效率,是我们的主要目标

限于时间,今天暂时介绍这么多。谢谢@顾露 ,很高兴看到一个方案有众多的团队一起协作

项目 Overshoot/Satoplay 的分享 (郭嘉) #

Overshoot     Overshoot

《狙击大作战》是首款基于 BSV 的 3D 射击真人竞技游戏,使用了 Sensible Contract 作为其内部 Token/NFT 方案。

Satoplay     SatoPlay

SatoPlay 是一个基于 BSV 网络构建的游戏平台,已集成 Sensible Contract 作为其 Token/NFT 方案,并借助其实现了 NFT 交易。


以下部分是郭嘉的分享:

感谢,那这边就加快一下速度

顾老板这个阶段忙的两只手都不够用,小聪平台我就顺带和狙击大作战一起介绍一下了

游戏和游戏平台,都是应用中更具体的一种产品,与专注功能的应用相比,游戏产品的元素组成更复杂

当然这复杂不是在科学家角度的复杂,虽然啥都用的不会那么深,但却啥功能都希望能用一点,对基础建设的完整性依赖度是非常高的

游戏应用需要承载的内容量级,数据交互的广度和深度的要求都比较高,这也是最早期小聪定位在BSV网络的原因,大区块的契合

不过在早期,基础设施相对比较匮乏,我们在这个摸索过程,也是有啥用啥,变着法子来达成想要的效果,即便有些环节不那么去中心化

从平台不同时期上线的产品来看,我们游戏产品和区块链的结合是越来越紧密,这不仅是现象,也是产品研发团队的需求,虽然一直是在前进,但总感觉还是比较受限

产品就不逐个详细介绍了,简单列一下

第一阶段,单机小游戏为主,游戏内容和区块链关联不大,用钱包作为道具支付与排行奖励发放的途径

第二阶段,2D多人竞技小游戏,真人互动,账号信息、资源资产、道具铸造、市场交易,NFT1.0

第三阶段,3D多人竞技小游戏,也就是当下的Overshoot,更深入的内容尝试,更可视化的NFT内容,更明确的市场交易驱动,游戏活跃通证OVT的尝试,底子依然是NFT1.0

其实在第三阶段的时候,还有很多想法想尝试,但一直有受限的地方,如一些更复杂的数据组合玩法与链上信息保存和更新,群里也经常听到很多玩家说能不能做点XXX玩法呀,其实很多我们也考虑过,也想列入计划中

这儿开个玩笑,即便是NFT1.0的狙击大作战的正常运作的上链频率,要放到ETH上的话,按近期这手续费的高度,能把团队和玩家都玩到破产

合成一个五星武器需要发起多少次请求,玩过的玩家相信都比较清楚~

上面看起来是在诉苦,其实也并不然

正是在这个环境、需求、压力下,我们等来了感应合约,也就是我们游戏近期在说的NFT2.0的重要基础

在接下来的规划中,我们会在这个新的基础上做更多的尝试

限于时间,以及近期也会对游戏的计划和更新另行公布,这次这儿就不详说了

@顾露  麦交回给你,看看对于NFT2.0和大伙感兴趣的技术层面,你可以做下补充呗

这里我补充了两句:

好的,感谢郭嘉的介绍~

郭嘉的内容密度很大,有机会我们再请他分享 :)

我本来是想补充下我们的 Sensible NFT 与冯总的 metaid 结合擦出的火花来着,不过时间有限,下次再分享~

项目 Sensible API 的分享 (蒋杰) #

Sensible API     Sensible API

Sensible API 提供合约相关的数据查询服务。

大家好,我是开发者蒋杰。

我来介绍一下我们Sensible数据API相关内容。

由于现有浏览器API只服务于p2pkh类型的交易查询、构造,为方便Sensible数据查询,交易构造,我们设计开发了satoblock API服务。

satoblock涵盖完整的区块信息查询API,目前已对接识别Sensible已发布的NFT/FT合约。

[图片]

这是openapi文档截图

下面是数据识别的关键点:

使用sCrypt开发的脚本包括一个数据部分,目前我们主要通过约定数据部分的格式来识别Sensible的合约脚本;同时我们会计算脚本代码部分的codehash。

Sensible合约一个关键特点是拥有一个唯一溯源ID,我们称为GenesisID,或者SensibleID。通过识别脚本合约为Sensible并获取GenesisID,我们可以区别统计Sensible相关的数据。

每个Sensible脚本我们会使用codehash + GenesisID来特征识别。在此基础上再加上业务需要的用户地址识别(address)就完成了FT/NFT数据需求。

这个是我们初步的浏览器截图。

[图片]

冯总那边正在完善sensible专用的sensibleScan,也是浏览器的一部分。

由于Sensible的主要作用是合约协作,Sensible方案使得链上合约可以获得需要的锁定脚本数据,合约之间也可以通过codehash和GenesisID来识别目标合约。

合约设计时通过将部分功能权限授权给同Tx中的另一个合约,就可以在不改变已有合约的情况下,非常灵活地扩充合约功能。

我们基于这一点实现的FT,可以增加Swap、Sell功能而不用改动FT核心。

由于Sensible方案只是一种提供基础支持的中间件,基于Sensible是能够实现我们现在还没有想象到的特殊用途的。我们非常期待大家一起来了解、理解、丰富这个生态。

我目前分享就到这里

@顾露

补充了一下 sensible 和 metanet 的结合 #

顾露: 趁着间隙,我介绍下上面说到的 sensible 和 metanet 的结合。

首先,所有的 sensible contract 交易可以输出一个收据 receipt,这个 receipt 可以用于简化交易双方及第三方的的快速识别。

这个 receipt 可以是 metanet 结构,这样自动就会形成每个人自己的账本,无需任何应用和第三方。

其次,NFT 道具可以用 metanet 来管理内部状态更新,这样非常灵活,合约关心所有权转移,而 metanet 关心状态变更,可以很有效地配合。

这是我们实现的两个有趣的用例,供大家参考。

AMA 问答环节 #

刘晔律师的问题(全文见下) #

问题较多,不好意思,主要是感应合约太重要了。 五个问题:1、感应合约能否控制发行人的滥用权利和欺诈比如预留、超发等? 2、感应合约能否实现token 的销毁、冻结与没收? 3、感应合约是否为将来的司法执行预留接口或者如何执行司法命令比如冻结令? 4、感应合约是否能够为持币人提供了反制约措施,比如投票、动议等机制,以控制发行人滥权或违约? 5、感应合约是内置在每个钱包里么,那么不同钱包之间如何实现合约及token的互通?

顾露: 我快速回答下:

1, 2,3 能。是探讨过的话题

  1. 这个方向我们似乎确实没讨论过

  2. 只需使用上面蒋杰说到的协作机制即可互通

飞龙: 5. 合约是以比特币脚本存在utxo上,所以任何钱包只要愿意都能处理,就像处理bsv一样

刘晔律师: 谢谢顾总。第四个问题似乎涉及到感应合约能否实现选票功能?

蒋杰: 4是持币人进行“社区治理”是吧,我感觉是可以实现的

顾露: 投票如果是指类似 dao 这样的机制应该是比较好实现的,我看了 ada 的投票和激励,包括更早先的 eos 应该是不难实现的

刘晔律师: 对,就是社区治理,最大的社区当然是国家政治级别的选票

cc: 1 token在发行时,发行者可以选择是否保留增发的能力,外人是能够从链上的tx查询到的,同时token已发行的数量都是链上能够查到的。因此token是否增发,以及已发行数量,任何人都是可以看到的。

刘晔律师: sensible contract本身不涉及身份系统吧?

顾露: 可以不涉及,也可以挂钩,取决于需求。

刘晔律师: sensibleID是合约编号吧,相当于平时工作为每个合同编的号,与人的身份没关系吧?对么

蒋杰: 对,这是合同溯源编号,和身份无关

刘晔律师: 我已经对感应合约完全充满信心了,我的关注点都有答案了。

metaid和sensibleid有什么关系吗? #

王宇 (metaid): 就像上面说的那样子,metaid可以给sensible的收据带上id模式,这样给sensible带来了更多的组合可能, 和metaid可以很好的结合

冯新宇: 是一个松散耦合的关系,但基于metaid的sensible会有更好体验

能不能发个token转账的txId? #

顾露: 现在去搜主网上的非标交易,你会感到惊讶的。

蒋杰: https://whatsonchain.com/tx/be25b0bffa123cc76dbd8cca991b6fcb279b1b3a4ad5b5c23efe8e41f32d4c7d 这个是小聪发的nft

顾露: 龙哥应该说的是 FT

蒋杰: ft可以看这个 https://whatsonchain.com/tx/83a1d69d99797aee3936ced2908a59428e33db1fdaeee4125f278a3815b64403

李龍: 挺好的有点小bug,交易手续费计算有问题。

李龍: 21k也算可以

王福强: 什么问题?

李龍: [图片]

王福强: 这不算问题吧,费用多少只要矿工接受就行

王福强: mapi最低接受0.25sat/b,非标交易稍微高点

李龍: 在我们这里算是bug。应该正好等于500

王福强: 你说的是费率吗?

李龍: 标准费率设置成500,交易发出去后,浏览器这里应该显示0.5000

蒋杰: 这里我们暂时没有精确处理

李龍: [图片]

蒋杰: 可以拿到合约size,参与计算一下

请问下 运用起来了 会像eth那么卡和那么贵吗? #

飞龙: 完全不卡,现在费用大概是它的百分之一

顾露: 理论上 bsv 的上限和承载能力更高(天花板更高),实践来看目前各种基础设施还有待增强(需要大量的建设)

感应合约是一种合约标准吗,类似erc20 erc 1155的? #

STONE LAU: 感应合约是一种合约标准吗,类似erc20 erc 1155的

顾露: 它包含了若干内置标准(而且还会逐步增加)

顾露: 目前的焦点在于蒋杰上面提到的,我们会建设更有效的合约间的通信协议,这是我们目前阶段非常重要和关键的一块。

随意发nft,会不会出现那种高仿账号,发跟你一样的通证来影响市场? #

田野: 随意发nft,会不会出现那种高仿账号,发跟你一样的通证来影响市场

顾露: 很遗憾,确实会。按我目前理解,区块链技术只能保证所有权,不能保证代码不被fork 或复刻,如果被山寨引起纠纷,应该是法律问题而不是技术问题。

但值得注意的是,大量的山寨往往发生于草莽阶段。成熟的商业环境下,光拿到资源本身没太大意义,别人的运作能力,外部资源,业务环境等等是拿不走的。

王凯: 对的,就像现在的网站源代码

顾露: 就好像微软代码泄漏,很多程序员自己去编了一份,然而并搞不出第二个微软,是一样的

飞龙: 这个可以通过合约id来识别的

刘晔律师: NFT 有唯一编号,仿造其实很难的

STONE LAU: NFT目前现在还是依靠中心化发行商去授权,目前社区还有一些争议

冯新宇: NFT价值在于发行人身份,metaid可以增强这一点

基于sensible会发一个通用的币吗? #

冬: 基于sensible会发一个通用的币吗?

顾露: 目前的焦点在于蒋杰上面提到的,我们会建设更有效的合约间的通信协议,这是我们目前阶段非常重要和关键的一块。

顾露: 目前暂时还没有这个计划~

里尔登: 我有一个提议,目前阶段各个项目方不要急于发行自己的代币。能否给予metacoin更多的赋能,把bsv的区块变大起来,让很多人看到bsv大区块的可行性。同时metacoin形成赚钱效应,带来人气,为bsv上面的代币经济开一个好头。。

有什么机制确保oracle不欺诈吗? #

DAOYI: 旺仔的文章写到目前BSV不能实现类似ETH的纯一层合约,成熟的方案是一层+oracle,为什么感应合约说可以不依赖于链外状态?如果感应合约也需要oracle,有什么机制确保oracle不欺诈吗?

飞龙: 旺仔写文章的时候还没有包括感应合约,感应合约也还不是纯一层的,但它的oracle是最轻量级的无状态的签名器

同一个NFT是否支持随着使用留下指定规则下的使用痕迹的或着主动对自己的NFT做修改?比如,磨损的纪念卡是否曾经就是崭新的?狙击枪用一段时间是否可能需要保养? #

烁: 同一个NFT是否支持随着使用留下指定规则下的使用痕迹的或着主动对自己的NFT做修改?比如,磨损的纪念卡是否曾经就是崭新的?狙击枪用一段时间是否可能需要保养?

Labb: 这个会是集成了感应合约后我们重点尝试的方向之一,“痕迹”也可以理解为一个NFT的“江湖日记”,应用领域这个只是功能信息,游戏和NFT领域这个可以转化为内容的一部分,比方一把从来PK都没胜利过的屠龙刀#137,不仅可记也会可查,接下来会从点到面、从小到大去展开这一块的价值

Can it work without a protocol change? #

荣哥理财师: Joshua在问:Can it work without a protocol change?

飞龙: 本来就在用了,签名器方案

蒋杰: 签名器方案需要签名器维护者保证签名私钥安全,这在工程上可以work,但是不如修改protocol完美

张国庆: 修改的是协议吗,还是实现

蒋杰: 具体说是改动不会影响到脚本部分的实现,但依然需要节点共识后才能修改

张国庆: 任何硬分叉都是需要节点共识的,建议还是说修改实现比较好,直接说修改协议不太好

张国庆: 或者重新实现

蒋杰: 实现上需要加入一些数据到签名中,会影响到解锁时tx签名的结果

张国庆: OP_PUSH_TX好像需要重新实现

蒋杰: 需要对应修改被签名的msg格式,其他部分保持一致

张国庆: 好像之前说过,这种是不需要改TXID的,还有另外一种是改TXID升级的

史诺比🌕: sensible 完全不需要 nchain改协议对吧

张国庆: 如果要用的话,就没今天的事情了,只不过改实现后会更优雅

蒋杰: 对的,使用签名器方案,不需要节点做任何修改。现在我们工程上已经在用。我们计划是当生态丰富之后,nchain再修改节点实现,理由应该会充足一些

现场未回答的问题 #

王炜杰: 在感应合约里,可否接入BSV各种钱包协议给用户自由选择支付交易?

(这里补一下回答)

可以的,合约本身只关心自身条件是否达成,不关心你用什么方式支付费用。

对于使用了感应合约的应用,完全可以对接各个不同的钱包的支付接口。




Gu Lu
2021-04-03