FISCO BCOS 国密版的哈希函数

本文探讨了FISCOBCOS国密版区块链如何利用SM3算法替代标准keccak256函数进行哈希运算。通过智能合约测试证实,在国密版中keccak256底层实际上调用了SM3算法。

FISCO BCOS既可以部署国密版的区块链,又可以部署非国密版的区块链,同时两者都支持solidity语言编写的智能合约。但让我好奇的是,在国密版的链上有没有实现对应的国密版哈希函数,验签函数?

例如,在非国密版的区块链上,可以用solidity写keccak256函数来对一段内容做哈希运算。那在国密版中是不是有对应的sm3函数来做这样的哈希运算?还是国密版的keccak256函数底层使用了sm3函数?为了弄清楚这一点,我写了一些测试代码进行测试

智能合约代码如下:

pragma solidity >=0.4.0 <0.7.0;

contract HelloWorld2 {
    
	string hello = "hello, world";

	function sayHello() public view returns (string memory) {
		return hello;
	}

    function hashTest(bytes memory _input) public pure returns(bytes32) {
        bytes32 result = sha256(_input);
        return result;
    }
    
    function kehashTest(bytes memory _input) public pure returns(bytes32) {
        bytes32 result = keccak256(_input);
        return result;
    }
}

在webase平台上部署运行kehashTest函数,如下图所示:

运行结果如下图

### FISCO BCOS 区块链中的码学实现与应用 #### 码学基础组件 FISCO BCOS采用了一系列先进的码学算法和技术来保障系统的安全性。其中包括但不限于椭圆曲线加(ECC)[^1]、哈希函数(SHA256, SM3)以及数字签名机制(ECDSA)[^2]。 #### 加通信协议 为了确保节点间通讯的安全性和私性,FISCO BCOS实现了基于TLS(Transport Layer Security)的传输层安全协议[TLS][^3],这不仅能够防止数据在网络上传输过程中被窃听或篡改,同时也支持客户端和服务端的身份验证过程。 #### 数字证书管理 在身份认证方面,FISCO BCOS引入了PKI(Public Key Infrastructure)公钥基础设施框架下的X.509标准格式数字证书来进行用户及节点的身份确认工作[X.509].每个参与方都需要持有由CA(Certificate Authority)签发的有效期内的合法凭证才能加入网络并发起交易请求. #### 合约层面的安全措施 对于智能合约而言,FISCO BCOS提供了一套完整的权限控制系统,允许开发者定义谁可以调用特定方法;此外还集成了形式化验证工具帮助检测潜在漏洞[Formal Verification Tools]. ```solidity // Solidity code example demonstrating access control within smart contracts on FISCO BCOS. pragma solidity ^0.4.2; contract AccessControl { address public owner; modifier onlyOwner() { require(msg.sender == owner); _; } } ``` #### 隐私保护特性 考虑到实际应用场景中可能存在的敏感信息处理需求,FISCO BCOS也加入了零知识证明(ZKP),同态加(Homomorphic Encryption)等前沿技术手段[ZKP & HE],从而让用户能够在不暴露原始数据的前提下完成某些类型的计算操作.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值