移动区块链去中心化应用(DAPPS):IPTM区块链证书验证系统的案例研究

煤油灯科技2022-11-01 07:45

引言

各种移动设备和应用程序已将区块链解决方案的可用性传播给52.7亿以上的独特手机用户(Kepios,2021)。2021年3月比特币价格上涨至50000美元,使得许多区块链移动钱包和智能合约DAPP在当前和未来的加密货币和数字资产管理投资中大受欢迎。为了理解这一趋势,本章将介绍使用Android Studio和以太坊的智能合约作为数字资产管理工具的移动区块链DApps的设计和实现。Java Android和以太坊的Web3 Java API将作为移动DApp的实际部署进行演示。移动DApp的逻辑和决策将作为智能合约进行演示和编码。移动DApps和智能合约的源代码在Github中发布,作为对构建和运行项目感兴趣的人的开源代码。

为了深入了解区块链技术的现状,本章介绍了一个案例研究,以评估区块链DApps的可用性和实用性。案例研究将演示如何使用区块链技术验证学术证书或证书。此证书验证DApps使用以太坊的智能合约设计,并使用Solidity编程语言进行编程。这个智能合约,即“IPTM_BlockchainCertificate.sol”,可以在开源许可证下从GitHub存储库下载。使用Android Studio实现了一个用于检查证书有效性的客户端,即“IPTM_Certificate”,它也可以在GitHub存储库中根据开源许可下载。为了促进证书验证DApps的整个生态系统,iExploTech共享了两个开发者工具和一个可供公众访问的系统管理手册,即“IPTM_certificate_DB_Tool.jar”、“IPTM_certificate_Generator_Tool.jar”和“IPTM_admin_manual.pdf”。这些工具和管理手册将帮助大学IT部门建立和部署整个系统。图1说明了IPTM证书验证系统的组件和交互。

在本章聚焦于案例研究之前,读者应该掌握区块链技术的发展现状。因此,本章分为八节,便于读者理解和理解知识。导言部分概述了本章的内容。第二部分,相关工作回顾了区块链和分布式账本技术(DLT),以及Vitalik Buterin的以太坊智能合约的首次历史。第三部分,IPTM背景,揭示了Institusi Pendidikan Tinggi Malaysia(IPTM)区块链网络的动机和背景。第四部分,IPTM证书设计对整个IPTM证书验证系统的设计有一定的启示。第五部分,IPTM证书实验设置详细阐述了以最低部署成本测量IPTM证书验证系统性能的范围和实验设置。第六部分,实验结果给出了以IPTM的区块链封包节点的应力为中心提供读写证书请求的实验结果。第七部分,讨论反映了实验结果。最后一节,结论总结了区块链在证书和认证验证系统中的应用潜力。

图1.iExploTech为马来西亚大学提供的IPTM证书验证基础设施概览

相关工作

第一个区块链协议和基础设施被实现为比特币(Nakamoto,2009)。比特币依赖于椭圆曲线加密(ECC)安全性(secp256k1曲线),作为所有比特币交易的数字签名方案。在交易或数据作为合法交易写入区块链之前,必须使用标准散列算法256(SHA256)对这些数据进行编码和散列。比特币的所有者将使用他的私钥为每笔交易使用唯一的随机数对SHA256哈希进行签名。几乎所有比特币交易都用于将比特币转移到其他账户以及他的账户(拆分交易)。

签署交易后,所有者(使用比特币客户端)将使用对等协议向所有可访问的比特币节点广播其交易。在其他比特币节点批准(写入)此交易到最新的比特币挖掘区块之前,他们将使用交易所有者的公钥以及唯一的随机数验证已签名的交易。如果交易通过所有者数字签名(条件1)以及足额支付比特币交易费(条件2)以及足量比特币转账(条件3)成功验证,则交易将被停放或存储(挖掘)在最新区块中。从这里可以观察到,比特币在很大程度上依赖于加密技术来实现任何比特币交易的安全性和可信度。

在以太坊(Buterin,2013)推出之前,Vitalik Buterin与他的比特币开发团队讨论了一个新的区块链功能。他建议升级比特币网络,允许用户在比特币网络中编写一段代码。然而,他的建议被拒绝了几次,他最终决定通过修改比特币客户端来实现他的绝妙想法。这是区块链网络中智能合约实现的最重要开端。与比特币协议相比,以太坊协议使用相同ECC的secp256k1曲线作为数字签名,但以太坊选择了Keccak256(而不是NIST-SHA3)(Yaga等人,2019年)作为哈希算法。为了让人们能够在以太坊网络中编写代码,Gavin Wood设计了一种特定的编程语言,用于编写智能合约,即Solidity(Wood,2014)。他帮助Vitalik Buterin实现了允许每个人使用Solidity语言在区块链中编写代码的想法。

前面两段中的倒叙让我们深入了解了创始人打造当今区块链技术的决心。本段将进一步探讨与实施证书或证书验证智能合同相关的现有工作。有相当多的研究出版物讨论了使用区块链技术的证书验证,然而,大多数出版物在没有对主题的深入理解和实践经验的情况下进行表面讨论。这些新手作者发表的大部分论文都是基于他们通过阅读一些区块链出版物所学到的知识。作者在一份新的研究出版物中重新表述了他的发现,并提出了如何将区块链和智能合约技术结合起来的基本想法或框架。凭借初级的知识和技能,他们试图通过添加区块链技术来解决他们认为是现实世界问题的问题。他们没有意识到,大多数需要进一步研究和调查的区块链实际问题都可以在开发者讨论聊天室和邮件列表中找到,比如比特币、以太坊和Hyperledger开发者网站。

本段列出了区块链证书验证方法的初级质量出版物。作者(Cheng等人,2018)通过扫描二维码并通过网站验证,展示了区块链证书验证的框架和快照。然而,作者没有提供任何证据、代码或实验结果来表明该提案已实际实施。作者(Poorni等人,2019年)提出了与(Cheng等人,2018年)几乎相似的观点,但(Poorny等人,2018年)实现的多样性是使用Java Swing的API为桌面应用程序输入证书数据的GUI。作者(Nurhani等人,2020;Vidal等人,2020)建议采用区块链作为一种方法,为存储注册表记录和证书提供防篡改能力。作者(Gayathiri等人,2020;Xie等人,2020)展示了一个不使用QR码的区块链证书验证框架和快照,与(Cheng等人,2018)相比,后者更差。作者(Zhao等人,2020)建议将证书颁发机构(CA)与区块链技术集成,用于存储公钥基础设施(PKI)的证书。本段中列出的所有出版物均未提供任何重要的实际工作、编码或实验结果,以表明他们的建议或建议是一个具体陈述,而不是仅仅是假设性陈述。

本段列出了重要的出版物供参考。作者(刘国,2019)已经为证书验证系统部署了超级账本的链码。根据作者的实验测试平台,Hyperledger中交易的性能为每秒180-250个交易。没有提供示例代码,并且作者误解了Hyperledger是一种区块链技术(在特定时间范围内对交易进行分组),实际上超级分类器基于有向无环图(DAG)技术。作者(Bousaba & Anderson,2019)已经部署了以太坊智能合约,并通过Web界面执行证书的智能合约API。智能合约允许任何拥有足够以太币的人上传认证信息,从而通过用户密码加密此信息。要阅读证书信息,必须通过网站提供正确的密码。被提议的系统不允许公共证书验证,因为它受用户密码的限制,无法解密证书数据,并且没有适当的方法来验证上传的证书数据是否是大学颁发的真实证书。作者(Mishra等人,2020)已经在以太坊的Rinkeby测试网中部署了一个证书智能合约,并测量了在Rinkeby网络中执行添加(写入)新证书的gas成本。在权威证明共识(Rinkeby的PoA,每个块15秒)下,每个证书写入(挖掘)的平均时间为16秒。作者(Gundgurti等人,2020)演示了使用Remix IDE将数字证书文件上传到星际文件系统(IPFS)中。数字证书文件的哈希值被添加到智能合约中,作为真实数字文档的证明。

参考上述所有作者和文献,他们都没有遵循专业从业者和社区建议的以太坊智能合约的标准实践。最重要的原则是向公众展示或公开智能合同的代码(或向所有利益相关者展示有限的观点),这是显示数字合同的团结性和可信性的义务。这将允许某人验证区块链中部署的二进制blob,它与源代码(智能合约)相同。以下声明引用了要求智能合约作者公开代码以供公众意见的道德规范:“当期望一个人使用所写的智能合约,无论是用于资金转账还是数据存储,期望他们以数字方式签署可能产生重大后果的交易。在将这种期望强加给合约用户之前,应该将相同的源代码上传到Etherscan,这样至少可以给用户一个机会它是独立验证将执行的代码是否实际执行了所说的操作的代码。”((Emmons,2018年)

IPTM背景

马来西亚设计学院 (IPTM) 分布式账本技术 (DLT) 网络或 IPTM-DLT-Net 是马来西亚研究人员之间的开放式合作,如图2所示。合作的核心目标是建立测试网和主网,以实现马来西亚大学之间能够合作研究,开发和维护DLT和Dapps应用程序。 CyberSecurity Malaysia和iExploTech被任命为协调合作工作的秘书处。IPTM成员的主要合作工作之一是建立一个区块链证书验证系统,该系统在本章中作为案例研究呈现。

图2.马来西亚大学研究人员合作建立各种DLT网络

IPTM的证书设计

参考图1,iExploTech设计、开发和集成了七(7)个组件。最重要的组成部分是智能合约,因为它控制证书验证系统的逻辑和决策。图3显示了为读写证书操作执行的最频繁的函数调用,即和。函数有一个修饰符,该修饰符提供对只有注册器地址才能执行此函数的限制。这一限制对于确保只有大学的注册官才被允许上传真实的证书信息非常重要。函数是一个可公开访问的函数,用于验证映射到真实证书持有者(所有者)的证书号。任何使用Android IPTM的DApps的人都可以调用此函数来验证证书所有者。要进一步探索七(7)个组件以及设置整个基础设施,可以参考iExploTech的GitHub存储库。

图3.IPTM_BlockchainCertificate中的两个重要功能。注册商和最终用户经常访问的sol智能合约

IPTM证书实验设置

本节介绍了以最低成本测量马来西亚大学部署的IPTM证书验证系统性能的范围和实验设置。实验的范围是测量IPTM-DLT网络中IPTM密封器节点的读写证书操作性能。表1显示了实验的试验台配置。

表1.实验试验台配置

图4.实验试验台设置

参考图4,测试IPTM的密封器节点,以处理10000个证书读写操作。IPTM_Certificate_DB_Tool。jar被部署为在测试机的MariaDB数据库中生成10000个伪证书记录。之后,IPTM_Certificate_Generator_Tool。jar被部署为从MariaDB数据库读取10000个证书记录,然后使用addCertificate()函数(逐个证书)将所有证书记录发送到IPTM Sealer节点。10000个证书成功写入智能合约(区块链)后,IPTM_Certificate_Generator_Tool。jar被再次部署以使用readCertificatePublic()readCertificatePublic()函数读取10000个证书。在此读取操作期间,测试机通过单线程和多线程请求执行了此功能。iExploTech_Performance_Measurement_Server。在测试addCertificate()addCertificate()和readCertificatePublic()readCertificatePublic()函数时,部署了IPTM Sealer节点中的jar来测量CPU使用率。

实验结果

本节介绍addCertificate()addCertificate()和readCertificatePublic()readCertificatePublic()函数处理10000个伪证书的性能。在执行addCertificate()addCertificate()函数之前,成功执行了SQL查询,从MariaDB数据库读取了10000条记录。执行过程花费了不到2秒的时间来收集所有证书记录。此后,addCertificate()addCertificate()函数被执行10000次,以使用对智能合约的单线程函数调用提交所有证书。提交所有证书花费了283.225847秒。但是,IPTM Sealer节点只能在622.296601秒内写入(确认)整个交易。这是因为每个以太坊区块都有一个交易执行限制(区块gas限制)。除此之外,挂起的交易将写入下一个块。平均而言,每个IPTM块确认了80个证书写入交易。使用授权证明(PoA)共识,每5秒以固定的持续时间挖掘(发现)每个IPTM的区块。因此,可以粗略估计addCertificate()addCertificate()函数的性能为每秒16个交易(TPS)。要检查智能合约中的可用证书总数,可以调用getListCertificateStates()getListCertificateStates() 函数来检索证书计数器。

表2.使用并行多线程请求读取10000个证书的性能

图5.使用并行多线程请求读取10000个证书的性能移植

在智能合约中提供所有证书后,实验继续使用readCertificatePublic()readCertificatePublic()函数读取所有10000个证书。表2和图5列出了此函数的性能执行。性能测量的基线是单线程执行,它花费168秒读取整个证书,平均性能为59 TPS。测试机与IPTM Sealer节点的CPU消耗比为1:12,因此与请求证书验证的远程客户端相比,区块链节点执行了大量计算。从九(9)个线程及以上线程开始,多线程的性能执行达到最大效率限制。执行耗时28秒,读取整个证书,平均性能为355 TPS。测试机与IPTM Sealer节点的CPU消耗比为1:7。这反映了并行线程已达到IPTM Seader节点端的最佳服务性能上限。IPTM Sealer节点的平均CPU使用率未超过90%,因为geth客户端有一种机制来限制其执行,以免消耗整个CPU资源。如果任何人有兴趣将交易性能提高一倍355 TPS,可以添加一个具有相同硬件规格的额外geth节点来满足需求。如果一个新节点加入区块链网络,它将通过使用P2P协议从其他节点复制所有块来自动同步和复制整个区块链。因此,通过添加充当镜像数据库的多个节点,很容易扩展区块链系统性能。与集中式系统相比,这就是去中心化技术的优点。

讨论

实验结果部分展示了IPTM的证书验证系统的性能,该系统使用最经济的设置,每月成本约为7.26美元,用于维护组织中的区块链节点。对于马来西亚大学的小规模或初始私有区块链部署,iExploTech建议至少三(3)个连接的区块链节点作为永久节点24/7运行,以维护去中心化模型。可以使用旧桌面计算机将其他节点添加为本地镜像数据库机器。

参考相关工作部分,有许多现有工作已经使用区块链技术实现了证书验证系统。是的,这不是一个新话题,因为本章与读者分享知识。然而,之前的所有工作都没有明确的意图传播区块链知识,尤其是当他们没有发布智能合约供公众查看以及审查时。其中一些工作只分享实验结果,而不允许其他研究人员复制和改进现有工作。这不是我们创始人Vitalik Buterin和Gavin Wood认为的区块链从业者的精神。为了保持创始人的愿景,iExploTech将智能合约和Android移动DApps共享为开源代码。iExploTech希望其他人复制和改进工作,并对其进行修改,以满足其组织要求和实践。通过这样做,iExploTech鼓励其他人通过开源许可向公众贡献他们的发现。

结论

区块链技术是非常便宜和方便的,如果任何大学都有足够的技术知识和经验,而不仅仅是擅长撰写高影响力的论文。IPTM合作的主要目的是缩小学术界和行业实践之间的差距。通过IPTM合作,该大学的讲师和研究员将能够更快地适应区块链,并能够培养具有行业所需的良好技能的研究生。


原文链接:https://arxiv.org/abs/2108.04125


---煤油灯科技victorlamp.com翻译整理---

你可能也喜欢这些文章

科技互联网,科技,资讯,动态,洞察,量子,计算,AI,人工智能,机器人,区块链,Web3,分布式,操作系统,OS,芯片,视频,深度,论文