Patract 为波卡 Wasm 合约生态的平行链和 DApp 开发提供解决方案。Patract 帮助社区平行链设计和开发链上合约模块和 Runtime 支持,并且为 DApp 开发者提供覆盖开发、测试、调试、部署、监控、数据提供和前端开发等阶段的全栈工具和服务支持。 Contracts Pallet 是 Parity 新开发的基于 Wasm 的新合约模型。它比 EVM 合约模型更加先进,支持开发者编写高复杂度、高性能和低成本的智能合约。Wasm 虚拟机的结构、指令完备性及执行效率远胜于 EVM 虚拟机,将成为合约开发的新引擎。 Polkadot Hackathon 是 Parity 官方举办的首届 Substrate 开发者创业大赛,我们很欣喜的看到这次 Hackathon 出现不少使用 Wasm 合约的参赛团队。一起来看看他们是如何基于 Wasm 智能合约开发他们的项目吧(以下信息来源于 ParityAsia/hackathon-2021-spring)。inkBridge 使用 Wasm 合约技术构建转接桥。可以部署到所有支持 Wasm 合约的平行链,把多条公链(BTC, ETH 等)的转接桥下沉为平台,而不是单一应用。社区项目方可以调用合约形态存在的已有功能,还可以使用合约改造已有功能。我们仅提供转接桥的基础功能,支持自定义格式的跨链交易验证,交由上层应用自由发挥产品。以比特币转接桥为例,任何人都可以提交比特币区块头,inkBridge 合约可以根据 PoW 难度验证并得出最长链。任何人都可以申请比特币交易验证,合约可以根据 Merkle 证明验证是否在最长链上,并且得出确认块数。交易内容本身交给上层合约应用来定义和解析。在 inkBridge 的架构中,主要包含有 inkBridge 合约、Relayer、前端、上层应用这四个部分。inkBridge 合约是本项目中最为核心的部分,主要提供链信息存储和上层应用接口。inkBridge 合约是一个实现在合约层的轻节点,接受relayer提交的区块信息,对其中的区块难度等进行校验。校验成功后更新自身存储的最新区块并对 Relayer 分发奖励。inkBridge 合约允许上层应用验证交易和区块,获取区块链的区块和交易信息。项目方可以提交交易哈希和对应的 Merkle Tree 信息来验证交易的合法性,从而实现自身的应用逻辑。inkBridge 合约会对接入的项目方收取部分费用来支付Relayer和运营方维护的成本。Relayer获取转接目标链的最新区块,将其提交给 inkBridge 合约。为了激励 Relayer 提交区块,会给予提交成功的 Relayer 奖励,但是只有最先提交的 Relayer 会拿到合约的奖励。前端会实时向 inkBridge 合约请求内部存储信息,向用户展示 Bridge 中存储的区块链最新块头和来自其他项目方的验证请求与结果。上层应用通过调用 inkBridge 合约的接口来获取目标链的区块和交易信息,对相关信息进行验证来实现自身的逻辑。inkBTC 是我们提供的示例 Demo,为项目方和开发者演示了如何通过和我们的inkBridge交互来将BTC转移至波卡网络。inkBTC 的获取步骤如下:1.用户通过我们提供的前端向 inkBTC 合约发起一个获取 BTC 充值地址的请求。合约会返还给用户一个 BTC 地址。
2.用户向获取到的地址发送的 BTC。
3.在交易被打包后用户将交易的哈希发送给 inkBTC 合约进行验证。
4.合约收到交易验证请求后会向 inkBridge 合约发起交易验证请求,确保用户提交的验证交易已经被打包且不可逆。
5.inkBTC 在确认交易的真实性后将对应的 ERC20、BTC 发送给用户想要充值的地址。
1.btc-relayer 上传区块头到 ink! 合约 向节点获取区块信息后分离出关键的区块头信息,直接在relayer代码中调用 Bridge 合约。2.ink! 合约对 BTC 区块头进行校验,并确认区块和最长链 将比特币客户端的校验和分叉处理的功能通过 ink 来实现,判断最长链后存储。每次收到区块校验后都检查最长链是否更新。3.ink! 合约实现 SPV 功能,对用户上传的交易和 Merkle Proof 进行验证 开发了工具可以根据比特币交易hash在链下获取交易的原文以及merkle证明,用户只需要将交易原文和证明信息上传到合约,合约可以验证交易的有效性。4.ink! 合约实现了对 btc 交易脚本解析,可得到交易的详细信息 开发了no_std 的比特币交易解析库,可以用于在ink!合约中解析交易。 Sublend 是基于 Substrate ink! 实现的借贷合约模块,可以部署到所有支持 Wasm 合约的平行链。
通过提供一种信用委托式的贷款,区别于超额抵押借贷模式,类似于白条和亲密付的结合体,提高储备资金的利用率。同时提供固定利率贷款,满足一些传统金融机构对可预测财务支出的需求。可有效解决 DeFi 借贷协议中储备金流动性的问题和财务支出不可预测的问题。本项目采用了资金池模型设计,提供抵押借贷和无抵押借贷两种方式。
抵押借贷,用户需要首先将其拥有的加密资产作为抵押品存入对应的资金池中,然后从资金池中借出其需要的其它加密资产。加密资产也支持 NFT 作为抵押品,增加 NFT 市场的资金流动性。 无抵押借贷,用户无需抵押资产,只需获得其他用户授权的信用额度,即可从对应的资金池中借款,也可以称为信用委托借贷。 使用 Patract 提供的 Redspot Wasm 合约开发套件实现借贷合约。
项目结构图 项目模块 - 使用 React JS 开发的用户操作页面,支持存款,提现,信用委托借款,还款等操作。
- 使用 Redspot 开发的 Wasm 智能合约,实现用户借贷操作,以及利率的调整。
- 部署 Patract 测试网络等智能合约平行链的部署脚本。
- 在 ink !合约开发中遇到一些数值计算的问题,采用 Patract 提供的 Wasm 合约开发工具尽可能提高开发效率,以及部署到其提供的智能合约测试网络,方便进行测试。
- 合约和 Runtime 进行交互获取链下价格的问题,集成波卡生态中智能合约平行链的预言机。
SkyePass ,参赛类别:智能合约,NFT,社交网络
SkyePass 是一个基于 IPFS 和 Substrate Wasm 智能合约的去中心化密码和身份管理方案(IAM)。表层上旨在构建一个开源,去中心化和可拓展的 1Password/Lastpass 替代品。深层上希望可以实现链下公共身份和私有身份的提供方案。为了管理用户的访问权限,SkyePass 包含的角色分别有:Write、Read,以及 Owner。因为每次更新数据库(即保存新密码)时,IPFS CID 都会更新,所以管理访问很容易。所有者可以添加成员的地址以 Approved 更改智能合约中的 URL,并负责在客户端更新数据库时更新所有 CID。而那些在智能合约中具有 Horcrux 但不具有的人 Approved List,则由于无法更新元数据,因此无法更新数据库。到目前为止,SkyePass 已经讨论了一种安全地创建、共享和管理极简分散式基于文件的数据库的系统,可以对数据库文件本身做更多的工作。如果我们考虑区块链钱包应用程序,它们是存储一些私钥并调用 API 的 Web 应用程序 Web3.js。借鉴 Ledger 的灵感,为了使密码管理器变得无比有趣,SkyePass 将为开发人员提供一些 API 进行扩展(例如,Applications for Ledger 的构想)。由于保管库可以与其他人共享,因此用户可以与其他人共享整个工作区,包括所有敏感信息。这些扩展可以在桌面应用程序或浏览器扩展中进行。- Crypto Wallet:共享热钱包。保管库的所有者可以安装 Ethereum 扩展并随其存储私钥。当然,还有 DApp 浏览器。
- SSH Login Tool:整个团队可以轻松地将登录凭据共享到其服务器。
- Shared Phone Number:Google Voice 可以存储已注册的共享 Google 帐户,整个家庭都可以接收服务的验证码。
基于对 NFT 基本性质的一些思考。密码管理器是传递 Token 化数字身份的理想媒介。因此,SkyePass 将每个用户名-密码-OTP组合视为一个原子令牌,将金库视为这些身份的集合,并将其 Extension 视为注入了身份的服务。- 假设所有身份 Token 都具有两种状态:“公共身份”或“私人身份”。公共句柄是用户的公共身份。(例如,Twitter 、Github 或 Venmo 处理程序等。)因此,我们正在构建一种解决方案,以链接到某人的公共链下配置文件。同样,我们可以实现类似 ENS 或 @username 样式的句柄系统。
- 简单的共享行为(假设女朋友共享我的 Spotify 帐户)可以采取两种形式:如果她拥有使用此密码管理器的帐户,则 Simple @her,设置一些使用(或不使用)该密码的规则,然后按 Share。如果没有,则将发送一个一次性共享链接,她的浏览器将生成一个临时密钥对,该临时密钥对将用于加密该条目,并将加密的密码条目发送过来,并使其很快自毁。
- 对于团队或家庭,他们使用的是共享身份。他们可以链接其个人资料并获得类似的句柄 @team,而团队将使用一些秘密共享模式进行特权管理。
Ares 是基于 Substrate 框架开发,支持混合 Babe 和链下工作机的随机安全预言机解决方案。融合波卡最新的链上治理,将前沿的 Optimistic Rollup 挑战模型带入预言机领域,支持 ink!合约,给 DeFi 生态带来更优质的预言机体验。Ares 是一个去中心化跨链预言机服务协议,一个实现数据链上验证的预言机服务协议,并且首创为数据使用者因使用预言机数据遭受业务损失时开辟补偿通道。作为连接现实世界和区块链网络的基础设施建设者,面向 Web3.0 时代的宏大愿景,为万链互联和数字经济发展提供安全可信的数据服务。Ares Protocol 的架构设计中包含如下几部分:
正常情况下,报价矿工会处理网络上的价格请求,矿工与分布式数据源进行加密链接从而获取价格,并将价格按聚合算法提交到链上,这是一级价格过滤。当链上收集够足够的矿工报价后,会通过聚合算法剔除掉非法数据并生成可用的价格,这是二级价格过滤。正常情况下流程到此已经结束,当网络中出现恶意报价矿工时,挑战者将发起价格挑战,将恶意报价数据和真实数据传递到仲裁机构。仲裁机构中的仲裁成员一般为声誉值较高的矿工,仲裁成员在收到价格挑战时,向自身连接的分布式数据源提出请求,去查询价格的正确性并给出自己的投票结果。最后拿到结果后如果挑战成功,将惩罚恶意报价的节点,罚没矿工一大部分质押资产,并将其从报价矿工成员中剔除。罚没的一部分金额将给予挑战者和仲裁机构作为奖励,还有一部分会流入国库,对于造成价格损失的 DeFi 使用方进行数据补偿,这是价格的3级过滤。Highway 是基于 Substrate 的高兼容组件化联盟链 ,基于 Substrate 灵活的组件化架构,希望通过 Substrate 来构建一个能够满足以上需求的联盟链解决方案。问题:因为 Substrate 升级导致程序异常。问题:Substrate 或 polkadot-js 文档更新不及时导致程序异常。以上是5个参赛项目的基本设计方案,预祝他们在本次 Polkadot Hackathon 决赛中都能取得好成绩。我们期待未来更多的开发者基于 Wasm 合约开发各类 DApp 以及其他合约应用,从而繁荣 Wasm 合约技术生态。Polkadot Hackathon 是首届 Parity 官方 Substrate 开发者黑客马拉松创业大赛,由 Parity 与 OneBlock+ 社区共同主办。线下 Demo Day 将于3月21日下午在上海市长宁区举办,将仅开放50个现场观众席位!时间:2021年3月21日 13:00-18:00
关于本次 Hackathon 更多项目信息,请查阅:
How to join Patract
1.对于合约开发者,可以访问官网 (https://patract.io),熟悉测试链和工具套件。欢迎加入官方开发群 Element( https://app.element.io/#/room/#PatractLabsDev:matrix.org)以及官方Discord(https://discord.gg/Y5dF2N57mN)。2.对于用户,欢迎加入官方 Telegram(https://t.me/patract),或关注官方 Twitter(https://twitter.com/PatractLabs)。
3.对于求职者,我们在招聘 Substrate 链开发、Wasm 开发、合约开发和审计、前端开发、项目管理、产品经理、运营经理等岗位,可以联系 sean@patract.network。