深度解析共识算法系列之Algorand平台开发实践 | Hacker Speaker 回顾 #10
共识算法(Consensus Algorithm)是保证区块链可信度和安全性的重要技术。目前,有多种主流的共识算法,如工作量证明(Proof of Work, PoW)、权益证明(Proof of Stake, PoS)等等,各有其优、缺点与适用对象。在区块链技术领域,不可小觑共识算法的重要地位。
我们与Algorand合作,共同为大家带来的硬核分享“深度解析共识算法”系列活动目前已进行到第三讲。在本期分享中,Algorand基金会Associate Director朱海潮,为诸位Hacker讲解Algorand平台开发实践。
在本篇回顾中,你将读到关于本次分享的全部核心内容和在线答疑部分。预计阅读时间30分钟。脑洞猫建议各位将这份干货十足的硬核分享回顾添加收藏,以便温故知新哦!
Algorand 这个名字既代表了一个创新的共识算法,也代表了一个基于该共识算法实现的公链平台。在前面的课程中我们已经学习了共识算法相关的所有内容。如果你确实完全跟着学习了前两个讲座的话,那么你对于共识算法的理解应该已经高于99%的小伙伴了。没来得及的朋友和可以去看看前两次讲座的整理文章。
今天我们会讲解在 Algorand 平台上开发是怎样一种体验。一般想要入门一个新的区块链平台,只需要搞懂四个概念就可以了:区块,交易,地址(也叫钱包或账户),以及该平台上的自定义资产(即 ASA,Algorand Standard Asset)。
今天的讲座我们就按照这个顺序来介绍。
交易的类型有三类:(1)ALGO 交易:用于发送 ALGO 代币(2)ASA 交易:用于创建,发送和配置 ASA 资产(3)参与共识交易:用于注册地址从而参与到共识当中。
这三类交易都使用了相同的交易体结构,在构造交易时可以选择不同的交易类型,并填写对应的交易信息。
创建交易和交易签名的过程都可以离线完成,签名之后的交易可以被发送到节点处进行验证和广播。
交易的 ID 是离线生成的,在构造完交易并签名后就可以立即获得交易 ID;而不是像以太坊一样需要等待节点返回交易 ID。
这里的好处是可以避免交易 ID 重复的交易被多次执行,同时也不需要使用类似以太坊中的 nonce 的机制,免去了钱包等客户端管理和记录 nonce 的工作。
该功能可以使用 SDK 轻松实现,下面使用 Python SDK 做一个示例:
这里的逻辑也非常简单:当多方进行交易时,为了实现所有交易的原子性(即要么都成功上链,要么都失败),只需要把几笔交易收集起来,计算一个组交易 ID 出来,然后再让所有人带着这个 ID 去签名自己的交易,就算是确认允许自己的交易在这一组交易中合法了;之后只需要把所有签过名的交易打包发送上链,就可以实现这一组交易的原子交易的功能了。
多签账户地址是由多个个人账户地址组成的地址。用户可以通过使用 SDK 将多个地址组合成一个多签地址,并指定至少需要其中 n 个地址的签名才能解锁该地址。
逻辑账户指的是一个由程序控制的账户。这种账户和普通账户一样可以存储 ALGO 和 ASA 资产,但不一样的是,从逻辑账户发出的交易并不是通过签名来实现的,而是使用该账户对应的逻辑程序来判断的。
- 必须是一组有两笔交易的交易组,其中一笔交易使用该逻辑账户的地址作为发送方,交易数量为 X 个 ASA 代币
- 交易组中的另一笔交易必须是给该账户发送 Y 个 ALGO 的交易
之后我们需要使用编译工具对上面的代币编译,可以得到一个 Base64 格式程序字符串和逻辑账户地址;接着就可以使用 SDK 来构造和发送交易。
ASA
Algorand 上的自定义资产 ASA 是由原生功能实现的,而不是像以太坊上的 ERC20 那样通过部署合约实现。
创建资产,设置资产信息,冻结资产,发送资产等这些功能都可以通过发送原生的交易实现,而不需要去调用任何的自定义合约。
需要注意的是,每个地址在接收 ASA 资产之前,都必须要进行一次注册(Opt-In),即通过向自己发送一笔数量为0的该 ASA 资产的交易,来告诉区块链,自己已经准备好接收这种资产了。
接下来就是发送 ASA 资产。过程与发送原生资产 ALGO 一模一样,只需要调用一个 SDK 函数构造一笔交易,填写好参数,再签名发送即可。
除此以外,Algorand 还提供了 ASA 的冻结和销毁等功能,具体的细节可以参考参考文档:https://developer.algorand.org/。
也许大家会注意到:Algorand 目前并没有提供所谓图灵完备的智能合约功能给开发者。这一点完全是从产品角度出发考虑后所作出的决定。
图灵完备的合约拥有着最大程度的灵活性,但获得这些灵活性来自于对安全性和便利性的妥协。当开发者能够使用更多的函数和功能时,就意味着他们需要更多的代码才能实现一个简单的功能,这就增大了攻击面,降低了使用的便利性。
同样是去中心化交易所中所必须的原子交易功能,Algorand 上原生自带,使用起来只需几行代码,安全性也更高;但在以太坊上则需要通过部署一个复杂的合约才能实现。
就好比 Windows 和 MacOS 上的应用程序:一个可定制性更高,但不知什么时候就会中病毒的招,各类弹窗广告也层出不穷;一个功能少但更简洁,满足需求的同时保证了安全性和便利性。
未来 Algorand 还会针对开发者的需要来不断扩充功能,保证在安全和便利优先的条件下,满足所有去中心化应用的开发需求。
同时还可以注意到 Algorand 将大部分的功能都放到了链下实现,只有需要验证,并且经过共识的信息才会发到链上。大部分的计算工作都不需要与链打交道,这就减轻了链的压力,同时也提升了开发的效率。
除此以外,同样是为了方便开发者,Algorand 提供了命令行工具 goal 和 Javascript,Java,Python,GO 四种语言的 SDK 来协助各位进行开发。
实际上如果细心观察的话,就可以发现今天讲座里的代码示例我就用了四种开发语言分别展示。更多的工具可以参考开发者文档:https://developer.algorand.org/。
总而言之,Algorand 致力于将开发门槛降到最低的这份心意,希望大家都能通过今天的这个讲座确实的接收到。
讲座的最后再布置一个作业,希望大家回去之后都能在 Algorand 上去发行一个属于自己的 ASA 代币。前十名发行成功并提供地址给我们的同学,我们将给予 100 ALGO 的奖励。想了解更多详情,请访问下方Github地址
https://gist.github.com/Mine77/23e513462ad55f9da2888996e4deeae5
去吧,Algorand 的大航海时代开始了!世界上的一切都放在那里,想要的话就去拿吧!
Q: ASA 和 ERC20 有什么不同?
A: ERC20 是以太坊上通过智能合约实现的,而 ASA 是 Algorand 区块链上原生的功能。原生功能的好处有两点。首先是用起来会简单很多,发行和管理 ASA 的操作都和操作原生代币一样。这也为 DeFi 打下了基础,比如以太坊上会需要 WETH 这种东西,它实际上是一个用 ERC20 替代 ETH 的币,与 ETH 1:1 抵押发行。需要它的原因就是在以太坊上操作 ETH 和操作 ERC20 代币有差别,所以只能通过把 ETH 变成一个 ERC20 代币,才能正常使用合约操作。第二个好处是节省合规和安全性审查的成本。一般的 ERC20 代币上钱包或者交易所的话,都需要提交第三方的代码审计报告。这样一份审计报告一般需要五万美元起,这对于小创业团队来说还是一份不小的负担。同时如果想要合规,也需要通过一些审查,这都是成本啊。但是 Algorand 上的 ASA 属于原生功能,已经是经过了审查的。所以 ASA 代币想要上钱包或交易所都不需要额外提交审计报告。Algorand 官方也正在准备合规框架,进一步减少发行合规 ASA 的成本。
Hacker Speaker 只聊硬核技术! 欢迎各位Hacker扫码添加脑洞猫为好友订阅我们,订阅用户将收到我们每一期Hacker Speaker分享活动邀请,无需重复审核入群,再也不用担心错过任何精彩活动和回顾啦!
DoraHacks是中国社区覆盖范围最广,全球最活跃的极客组织之一,成立5年来,DoraHacks联合600多家合作伙伴在8个国家15个城市燃起科技团战烽火,积累了3000余项目,辐射30万名开发者,并于今年7月发起“第四次工业革命”千人黑客马拉松。
DoraHacks的使命是连接全球极客,解决重要而迫切的问题,成为未来行业问题的最新解决方式。
了解更多关于DoraHacks“第四次工业革命”极客马拉松详情,请关注DoraHacks官方微信、新浪微博@DoraHacks #第四次工业革命极客马拉松#
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。