更新时间:2024-07-12 GMT+08:00
概述
合约主要用于操作账本上的数据。作为运行在区块链上的、特定条件下自动执行的代码逻辑,合约是用户利用区块链实现业务逻辑的重要途径,基于区块链特点,合约的运行结果是可信的,其结果是无法被伪造和篡改的。
- 智能合约由用户自行编写上传并保证安全,请务必注意命令注入等相关安全问题。
- 为了确保代码在不同用户之间的一致性运行,华为云区块链引擎服务参考了成熟的开源社区方案(如Hyperledger Fabric)。用户在部署智能合约时,使用预配置的容器镜像进行处理,通过预配置的开发/编译工具(例如:javac、cpp、gcc等)减少环境差异带来的问题,确保智能合约能够在区块链网络上正确运行。华为云区块链引擎服务通过资源隔离等方式,降低了由此带来的安全风险。
- 为了保障链上数据的机密性,建议采用以下手段进行防护:
- 数据加密:对链上存储的数据进行加密,只允许授权的参与方解密和查看数据。常用的加密方法包括对称加密和非对称加密。
- 访问控制:实施严格的访问控制机制,确保只有被授权的用户或节点才能访问敏感数据。例如:不接入公网或使用VPC安全组等网络隔离手段限制访问。
- 链下数据存储:对于特别敏感的数据,可以采用链下存储的方式,将数据存储在链下,并在区块链上记录其哈希值等摘要信息,以便在需要时验证数据的一致性和完整性。
基于合约SDK开发合约的流程如下:
- 下载对应的合约SDK文件。
- 配置SDK文件到本地合约项目。
- 基于SDK提供的库函数进行合约开发。
华为云区块链提供Go、Solidity类型的合约示例供开发者使用,示例下载和开发参考如下:
父主题: 合约开发